Перейти к содержимому
Mineforgian

Nexus API

Bulk of common platform-agnostic utilities aimed at reducing boilerplate/compatibility issues, thereby streamlining mod development on MultiLoader and other platforms.

Загрузки
760
Подписчики
0
Обновлён
5 августа 2026 г.
Лицензия
BSD-3-Clause

Опубликован 17 сентября 2025 г.

Nexus API

Nexus is a library mod whose core purpose is to simplify the development process as much as possible while being efficient and optimized, particularly in Multiloader project setups. It introduces a fairly large collection of abstractions and other conveniences without forcing developers to adhere to conventions strictly present on a higher level. Simply put, it gives developers tools that largely simplify/eliminate redundant tasks without baby-ing them to the extent that they can't do anything besides work with what it has to offer.

Features

  • Comprehensive platform-agnostic registrar system: Allows for object registration cross-platform. However, unlike other registrar-based libraries, Nexus API's registrar provides extensive functionality for other aspects beyond simple registry hooks.
  • Practical platform-agnostic utilities: Provides methods to retrieve ample information of different loader-specific implementations. Think mod data, environment side, etc.
  • Straightforward platform-agnostic networking: Abstracts different networking oddities, thus allowing developers to focus on writing packets to sync information without worrying about internal quirks.
  • Overarching platform-agnostic data generation system: Datagen is an often-untouched component of modding on multi-platform project setups, mainly due to the fact that picking a single loader (usually Neo/Forge) and outputting its generated data to your common sourceset suffices. Nexus API offers loader-agnostic data generation that works deterministically across all supported loaders, with its own easily-configurable system to make a typically-tedious aspect of writing code seamless and efficient.
  • Property wrappers: An exhaustive utility that blends ease-of-use with efficiency. Property wrappers describe a system offered by Nexus API that allows developers to properly template and write all types of objects and any shared/associated properties.
  • Fresh, easy-to-use and powerful event system: Nexus API adds its own non-intrusive yet powerful event system that cleanly interfaces across all loaders and holds its own without imposing negative performance impacts.

Developers should refer to the Nexus API Wiki for a proper overview and detailed description of all features offered by Nexus API.

Requisites

F.A.Q

Q. Who is Nexus API for?

A. Nexus API targets developers who often use a Multiloader (or similar) project setup. It additionally provides substantial benefits when used by developers working with 1 specific loader, particularly when used in medium-sized or larger projects.

Q. Why use Nexus API? Why not opt for an already-existing platform like Architectury?

A. Nexus API provides its own feature set to save developers time writing otherwise annoying boilerplate code that may have compatibility issues across different loaders. Unlike Architectury, Nexus API doesn't have a platform ecosystem that you'd prefer working with in order to maximize efficiency - it's more of a one-stop shop for devs that want to get things done quickly and efficiently while maintaining compatibility and quality.

Q. How heavy is Nexus API?

A. The majority of "performance-taxing" operations in Nexus API are done during startup. Even then, Nexus API itself only adds a negligible amount of ms to startup time for standard packs (between 4 - 10s in heavier packs with larger content mods on Forge, and 10 - 20s on Fabric with similarly-heavy packs on a Xeon e5 2620 v4 CPU - tested with ~390 mods across both loaders, including content-heavy mods such as Cataclysm and Cobblemon. Times are effectively halved on more modern hardware). As for in-game runtime performance, Nexus API is heavily optimized to make virtually no noticeable performance impact at all on all fronts. In other words, it's optimized enough to where you (as a user and/or end-developer) don't need to worry about it, with or without performance optimization mods.

Ченджлог

1.1.6Релиз1.20.1 · 5 августа 2026 г.

Nexus API Changelog (Forge)

v1.1.6 (1.20.1)

Internal Changes

  • Changed DatapackEntriesSyncPacket to DatapackEntriesSyncChunkPacket. As the packet class's new name implies, datapacks are now synced in chunks of around 512 KiB through NAPI, with a single entry being allowed a maximum size of ~1.75 MiB on its own (the default packet size limit is roughly 2 MiB).
  • Updated Javadocs in ResourceReloadListenerConfig accordingly.

New Features

  • Added EntityEventBlueprint and PlayerEventBlueprint. Only PlayerEventBlueprint has actual events at the moment (said events being PLAYER_LOGIN, PLAYER_LOGOUT, and PLAYER_DISCONNECT).
1.1.6Релиз1.20.1 · 5 августа 2026 г.

Nexus API Changelog (Fabric)

v1.1.6 (1.20.1)

Internal Changes

  • Changed DatapackEntriesSyncPacket to DatapackEntriesSyncChunkPacket. As the packet class's new name implies, datapacks are now synced in chunks of around 512 KiB through NAPI, with a single entry being allowed a maximum size of ~1.75 MiB on its own (the default packet size limit is roughly 2 MiB).
  • Updated Javadocs in ResourceReloadListenerConfig accordingly.

New Features

  • Added EntityEventBlueprint and PlayerEventBlueprint. Only PlayerEventBlueprint has actual events at the moment (said events being PLAYER_LOGIN, PLAYER_LOGOUT, and PLAYER_DISCONNECT).
1.1.5Релиз1.20.1 · 26 июля 2026 г.

Nexus API Changelog (Forge)

v1.1.5 (1.20.1)

Bug Fixes

  • Fixed faulty implementation of ModelUtil#standardBow and ModelUtil#standardCrossbow (which didn't properly prefix "item/" to the base model definition).
  • Fixed generic types for static template registration method overloads in BlockEntityTypePropertyWrapperTemplates and EntityTypePropertyWrapperTemplates.
  • Fixed ItemModelDefinition#constructJson incorrectly replacing the predicates property entirely for each new individual predicate added.
  • Made RecipeUtil#materialBlockFrom consider the _ingot suffix when looking for corresponding block material.

Internal Changes

  • Bumped Forge version to 47.4.22.

New Features

  • Added client-side event hooks through the newly-added ClientLifeCycleEventBlueprint; more specifically, hooks for resource pack reloads.
1.1.5Релиз1.20.1 · 26 июля 2026 г.

Nexus API Changelog (Fabric)

v1.1.5 (1.20.1)

Bug Fixes

  • Fixed faulty implementation of ModelUtil#standardBow and ModelUtil#standardCrossbow (which didn't properly prefix "item/" to the base model definition).
  • Fixed generic types for static template registration method overloads in BlockEntityTypePropertyWrapperTemplates and EntityTypePropertyWrapperTemplates.
  • Fixed ItemModelDefinition#constructJson incorrectly replacing the predicates property entirely for each new individual predicate added.
  • Made RecipeUtil#materialBlockFrom consider the _ingot suffix when looking for corresponding block material.

New Features

  • Added client-side event hooks through the newly-added ClientLifeCycleEventBlueprint; more specifically, hooks for resource pack reloads.
1.1.4Релиз1.20.1 · 28 июня 2026 г.

Nexus API Changelog (Fabric)

v1.1.4 (1.20.1)

Bug Fixes

  • Fixed a few typos in Javadocs around the codebase, as well as minor log message inconsistencies.
  • Fixed an issue in NexusRegistryDataManager#populateRegistryEntriesFromMemory where duplicate entries were not properly handled by the collector used to collect all registry elements in-stream to a HashBiMap.

Internal Changes

  • Changed datapack sync to use the newly-added ServerLifeCycleEventBlueprint#DATAPACK_INDIVIDUAL_SYNC event hooks (see "New Features" below). Internal datapack sync is now handled in NexusServerLifeCycleManager.
  • Moved datapack sync to PlayerListMixin inside common to accommodate for the above change.
  • Updated dependencies to latest (required FAPI version is now 0.92.9+, Fabric Loader version is 0.19.3).
  • Added fallback Mixins (as well as NexusFabricMixinConfigPlugin) for newly-added optional reach hooks (see "New Features" below).

New Features

  • Added datapack event hooks to ServerLifeCycleEventBlueprint for datapack reload start/end and sync.
  • Added BOW, CROSSBOW, and CROSSBOW_FIREWORK to ItemPropertyWrapperTemplates.
  • Added NexusAttributes, containing common attribute hooks with cross-loader-dependency-compatibility in mind (see Javadocs for more info).
1.1.4Релиз1.20.1 · 28 июня 2026 г.

Nexus API Changelog (Forge)

v1.1.4 (1.20.1)

Bug Fixes

  • Fixed a few typos in Javadocs around the codebase, as well as minor log message inconsistencies.
  • Fixed an issue in NexusRegistryDataManager#populateRegistryEntriesFromMemory where duplicate entries were not properly handled by the collector used to collect all registry elements in-stream to a HashBiMap.

Internal Changes

  • Changed datapack sync to use the newly-added ServerLifeCycleEventBlueprint#DATAPACK_INDIVIDUAL_SYNC event hooks (see "New Features" below). Internal datapack sync is now handled in NexusServerLifeCycleManager.
  • Moved datapack sync to PlayerListMixin inside common to accommodate for the above change.
  • Updated dependencies to latest (Forge version is now 47.4.20).

New Features

  • Added datapack event hooks to ServerLifeCycleEventBlueprint for datapack reload start/end and sync.
  • Added BOW, CROSSBOW, and CROSSBOW_FIREWORK to ItemPropertyWrapperTemplates.
  • Added NexusAttributes, containing common attribute hooks with cross-loader-dependency-compatibility in mind (see Javadocs for more info).
1.1.3Релиз1.20.1 · 4 мая 2026 г.

Nexus API Changelog (Forge)

v1.1.3 (1.20.1)

Bug Fixes

  • Made ForgeRegistrar#getDynamicRegistries impl consider dimension registries via DataPackRegistriesHooks#getDataPackRegistriesWithDimensions.
  • Fixed misc. logical errors in recipe templates provided in RecipeUtil.
  • (Not really a bug fix) Bumped log level for StandardBlockStateProvider elements down to debug from info for consistency with other providers.
  • Implemented getName for StandardSoundDefinitionProvider.
  • Patched DefaultableMultiLayerPlantBlock to allow for custom level IntegerProperty spec without breaking due to superconstructor calls to Block#createBaseDefinitiom running before the pertaining property gets initialized via a pre-constructor initializer hack.
    • Deleted leftover test code in NexusRegistryDataManager.
1.1.3Релиз1.20.1 · 4 мая 2026 г.

Nexus API Changelog (Fabric)

v1.1.3 (1.20.1)

Bug Fixes

  • Made FabricRegistrar#getDynamicRegistries impl consider dimension registries via stream concatenation of DynamicRegistries#getDynamicRegistries and RegistryDataLoader#DIMENSION_REGISTRIES.
  • Fixed misc. logical errors in recipe templates provided in RecipeUtil.
  • (Not really a bug fix) Bumped log level for StandardBlockStateProvider elements down to debug from info for consistency with other providers.
  • Implemented getName for StandardSoundDefinitionProvider.
  • Patched DefaultableMultiLayerPlantBlock to allow for custom level IntegerProperty spec without breaking due to superconstructor calls to Block#createBaseDefinitiom running before the pertaining property gets initialized via a pre-constructor initializer hack.
  • Deleted leftover test code in NexusRegistryDataManager.

Комментарии

Загружаем…