COWMODSКаталог модов

Nanite Library

Bespoke library mod for the mods in the Nanite family

Автор: ErrorMikey71,7 тыс.12обновлён 27 сент. 2026 г.
Библиотеки

Описание

Nanite Libary is a general use library providing abstraction around various Mod Loader differences, essential features for cross mod loader mods and some helpful utilities for modding Minecraft.

 

Features

  • Abstractions
    • Registries
    • Networking
    • Resource loading
  • Features
    • Config system
      • Server -> Client syncing
      • Json5 based
      • Familiar builder like pattern to defining configs

More is planned to come, this is a very early feature set for the use of our mods currently.

BisectHosting

Usage

Although this mod is designed to primarily work with the Nanite Family mods, we recommend this mod to anyone building cross-platform mods. We'll aim to preserve existing API's whilst, on occasion breaking them if needed to keep the library simple and lean

Documentation

In progress! Yes yes, we know, all libraries should have documentation but whilst we're in our early versions, we're focusing more on features & stability.

License

We're an open source license under Mozilla Public License Version 2.0 and all contributes, issues and feature requests are welcome

Последние версии

Все версии →
beta

Nanite Library Neoforge 26.1.2.7

26.1.2.7
27 сент. 2026 г.756Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Fabric 26.1.2.7

26.1.2.7
27 сент. 2026 г.2 тыс.Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Neoforge 26.1.2.7

26.1.2.7
27 сент. 2026 г.17Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Fabric 26.1.2.7

26.1.2.7
27 сент. 2026 г.30Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Neoforge 26.1.2.7

26.1.2.7
27 сент. 2026 г.15Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Fabric 26.1.2.7

26.1.2.7
27 сент. 2026 г.30Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Neoforge 26.1.2.7

26.1.2.7
27 сент. 2026 г.10Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Fabric 26.1.2.7

26.1.2.7
27 сент. 2026 г.21Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## [26.1.2.7] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Neoforge 26.2.0.2

26.2.0.2
27 сент. 2026 г.384Minecraft: 26.2neoforge
Скачать
Что нового
## [26.2.0.2] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value
beta

Nanite Library Fabric 26.2.0.2

26.2.0.2
27 сент. 2026 г.6,3 тыс.Minecraft: 26.2fabric
Скачать
Что нового
## [26.2.0.2] ### Added - `NetworkRegistry#versioned(String)` and `NetworkRegistry#optional()` to set a packet's network version and optionality on NeoForge - Both are no-ops on Fabric as it has no version negotiation and never refuses connections over missing packets - `Config#restoreFromDisk()` and `ConfigManager#restoreSyncedConfigs()` to drop values synced from a server ### Changed - Fabric registries are now deferred until `initialize()` is called, matching NeoForge's `DeferredRegister` - Registering an entry after its registry has been initialized now throws on both platforms instead of silently doing nothing - Accessing a Fabric registry entry before its registry is initialized now throws with the entry's id - Common configs now load as soon as they're registered, and reload when a server starts - Registering a config after its type has loaded now loads it immediately instead of throwing - Server configs on NeoForge now load before the world loads, matching Fabric - The config sync packet is now optional, so clients with the library can join servers without it (and vice versa) - The config sync packet no longer sends comments and supports much larger configs (256K characters, up from 32K) - `ConfigValue#set` now saves the config file - Config files now keep values in the order they're declared - `CreativeModeTabBuilder#populateFromRegistry` now reads the registry's entries when the tab is populated instead of when it's called ### Deprecated - `ExecutionTarget` and the `NetworkRegistry` overloads that take one, handlers always run on the main thread ### Fixed - Dedicated Fabric servers loading client-only networking classes when packets were registered - `NetworkRegistry#playBidirectional` crashing on NeoForge due to the payload being registered twice - `Platform#sendPacketToAllPlayers` doing nothing on NeoForge - `PlatformClient#registerResourcePackReloadListeners` never registering the listeners on NeoForge - Server configs never loading on Fabric - Sending an optional packet to a side without it throwing on NeoForge - Values synced from a server sticking around after disconnecting, and being able to be written to disk - Config keys removed from the file keeping their old value on reload - Duplicate config keys silently replacing each other, they now throw - `CreativeModeTabBuilder` crashing when no icon was set - `Lazy#invalidate` holding onto the old value