All Mods Resource Packs Data Packs Shaders Modpacks Plugins
NexusLib

NexusLib

by Hecco • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

NexusLib

NexusLib is a library mod that contains some useful functions, helpers, and systems utilized by my mods.

Features

- Loader-agnostic registry helpers for Multiloader projcts

- Public classes

- Utility methods

- Easily make families of blocks with automatic models, recipes, loot tables, and tags

- Create recipe trees for the Stonecutter

- Loader-agnostic tool action registry (stripping, tilling, pathing, etc)

- Registry for removing tint from specific blocks' particles

- Dripstone conversion registry

- Fluid interactions registry

- Easy code-based conditional item model overrides

- Easily create compatibility with other mods with automatic disabling

- Palette-template matrix sprite sources - a dynamic and compatibility-friendly version of paletted permutations

Credits

Code Help - @Yirmiri, @Artyrian

Other projects

Biomes of Bountiful Fares Bountiful Fares appledog!

Contact

Bluesky logo Twitter / X logo

You can report bugs on GitHub.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.x
Neoforge
1d ago 1
1.21.x
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
[1.2.0] NexusLib 1.2.0 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.2.0

## Fixes
  • Fixed an issue where planks blocks weren't being added to the axe_mineable tag
  • Fixed particles using the PARTICLE_SHEET_CLOUD particle render type rendering as black when any particle with the CUSTOM render type is being rendered as well (picking up items, Elder Guardian jumpscare, etc.) on neoforge
  • Fixed NullPointerExceptions related to NexusLib services that could occur intermittently

## Changes
  • Added argument ofThisMod to generateBlockFamilyModels in NLModelProvider, generateBlockFamilyBlockTags in NLBlockTagProvider, and generateBlockFamilyItemTags in NLItemTagProvider
  • When true, only files of the matching mod id will be generated (default behavior in previous versions)
  • Added argument woodSuffix to the method logs in BlockFamilyCreator
  • When false, the "_wood" suffix on wood log blocks will not be added (for when a wood type already has the word wood in it, for example Redwood)
  • Added map LOG_TO_WOOD which the method logs adds to
  • Added toggleable model generation for logs
  • Changed private fields in BlockFamilyCreator to be protected
  • Tags for a block family block to be added to in addExistingBlock is now a function which passes in the block family to allow non static block lists to be accessed
  • Reworked addItemsToItemGroup in REGISTRY service
  • Item origin and the stack to add are now handled through a ItemGroupAddition record
  • Position relative to the origin item can now be specified through the ItemGroupAdditionType value:
  • ADD_AFTER adds the item stack after the specified origin
  • ADD_BEFORE adds the item stack before the specified origin
  • ADD_LAST ignores the origin and force adds the item to the end of the item group

## New Features
  • Added a contributor cape switcher settings option (thanks to Yirmiri)
  • Those who have contributor capes can now enable/disable/switch between available capes in a new menu item in "Skin Customization"
  • Added contributor capes "Subterrous" and "Subterrous Super"
  • Added NLFluidInteractionRegistry
  • For defining interactions of a fluid when spreading, such as when cobblestone is made when water and lava meet
  • Supplies the fluid type, level, and block position, should return true (interaction was a success), or false
  • Added NLDripstoneConversionRegistry
  • For adding custom dripstone block conversion interactions
  • Takes in the input block, the fluid type (what kind of particles the pointed dripstone should drip) and the resulting block state
  • Added the Palette Template Matrix ("nexuslib:palette_template_matrix") sprite source, a dynamic and compatibility-friendly version of paletted permutations
  • Similarly to paletted_permutations, this applies a set of given color palettes to a set of given template textures
  • Can be defined as such:
  • "id" - the identifier for the specific use case
  • "palette_key" the template color palette sprite directory
  • "palette_definition_directory" the directory to search for palette definition files
  • "template_definition_directory" the directory to search for template definition files
  • Instead of defining permutations in the sprite source definition, separate json files within specified directories are used
  • For palettes:
  • "definition" - a resource location used to id the palette or link it back to some definition
  • "palette_location" - the location of the palette resource
  • For template textures:
  • "template_location" - the location of the template resource
  • Additional json elements in these providers can be read through PTMEvents for specific functionality of features that use this sprite provider
  • Textures are saved to the location assets/[template modid]/[template path]/[template texture name]_[palette modid]_[palette path]
  • Event listeners for additional functionality/reading additional json elements in definition files can be done through PTMEvents
  • registerPaletteDiscoveryCondition - function that adds a condition to whether or not a certain palette should be discovered, provides the sprite source id, palette provider path, palette resource location, and the JsonObject
  • registerTemplateDiscoveryCondition - function that adds a condition to whether or not a certain template should be discovered, provides the sprite source id, template provider path, template resource location, and the JsonObject
  • registerOnPaletteDiscoveryEvent - runs when discovering palette definition files, provides the sprite source id, palette resource location, and the JsonObject
  • registerOnTemplateDiscoveryEvent - runs when discovering template definition files, provides the sprite source id, template resource location, and the JsonObject
[1.2.0] NexusLib 1.2.0 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.2.0

## Fixes
  • Fixed an issue where planks blocks weren't being added to the axe_mineable tag
  • Fixed particles using the PARTICLE_SHEET_CLOUD particle render type rendering as black when any particle with the CUSTOM render type is being rendered as well (picking up items, Elder Guardian jumpscare, etc.) on neoforge
  • Fixed NullPointerExceptions related to NexusLib services that could occur intermittently

## Changes
  • Added argument ofThisMod to generateBlockFamilyModels in NLModelProvider, generateBlockFamilyBlockTags in NLBlockTagProvider, and generateBlockFamilyItemTags in NLItemTagProvider
  • When true, only files of the matching mod id will be generated (default behavior in previous versions)
  • Added argument woodSuffix to the method logs in BlockFamilyCreator
  • When false, the "_wood" suffix on wood log blocks will not be added (for when a wood type already has the word wood in it, for example Redwood)
  • Added map LOG_TO_WOOD which the method logs adds to
  • Added toggleable model generation for logs
  • Changed private fields in BlockFamilyCreator to be protected
  • Tags for a block family block to be added to in addExistingBlock is now a function which passes in the block family to allow non static block lists to be accessed
  • Reworked addItemsToItemGroup in REGISTRY service
  • Item origin and the stack to add are now handled through a ItemGroupAddition record
  • Position relative to the origin item can now be specified through the ItemGroupAdditionType value:
  • ADD_AFTER adds the item stack after the specified origin
  • ADD_BEFORE adds the item stack before the specified origin
  • ADD_LAST ignores the origin and force adds the item to the end of the item group

## New Features
  • Added a contributor cape switcher settings option (thanks to Yirmiri)
  • Those who have contributor capes can now enable/disable/switch between available capes in a new menu item in "Skin Customization"
  • Added contributor capes "Subterrous" and "Subterrous Super"
  • Added NLFluidInteractionRegistry
  • For defining interactions of a fluid when spreading, such as when cobblestone is made when water and lava meet
  • Supplies the fluid type, level, and block position, should return true (interaction was a success), or false
  • Added NLDripstoneConversionRegistry
  • For adding custom dripstone block conversion interactions
  • Takes in the input block, the fluid type (what kind of particles the pointed dripstone should drip) and the resulting block state
  • Added the Palette Template Matrix ("nexuslib:palette_template_matrix") sprite source, a dynamic and compatibility-friendly version of paletted permutations
  • Similarly to paletted_permutations, this applies a set of given color palettes to a set of given template textures
  • Can be defined as such:
  • "id" - the identifier for the specific use case
  • "palette_key" the template color palette sprite directory
  • "palette_definition_directory" the directory to search for palette definition files
  • "template_definition_directory" the directory to search for template definition files
  • Instead of defining permutations in the sprite source definition, separate json files within specified directories are used
  • For palettes:
  • "definition" - a resource location used to id the palette or link it back to some definition
  • "palette_location" - the location of the palette resource
  • For template textures:
  • "template_location" - the location of the template resource
  • Additional json elements in these providers can be read through PTMEvents for specific functionality of features that use this sprite provider
  • Textures are saved to the location assets/[template modid]/[template path]/[template texture name]_[palette modid]_[palette path]
  • Event listeners for additional functionality/reading additional json elements in definition files can be done through PTMEvents
  • registerPaletteDiscoveryCondition - function that adds a condition to whether or not a certain palette should be discovered, provides the sprite source id, palette provider path, palette resource location, and the JsonObject
  • registerTemplateDiscoveryCondition - function that adds a condition to whether or not a certain template should be discovered, provides the sprite source id, template provider path, template resource location, and the JsonObject
  • registerOnPaletteDiscoveryEvent - runs when discovering palette definition files, provides the sprite source id, palette resource location, and the JsonObject
  • registerOnTemplateDiscoveryEvent - runs when discovering template definition files, provides the sprite source id, template resource location, and the JsonObject
[1.1.5] NexusLib 1.1.5 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.5

## Changes
  • BlockFamilyCreator now takes a block behaviors as a supplier instead of straight behaviors
  • Added NLMath util class
  • added berp method, which creates a smooth interpolation that goes from one value to another and back
  • Added biome tags nexuslib:has_wolf_[variant]_variant
  • Adding biomes to a specific wolf variant's tag will override the spawn conditions and force that variant to be selected when spawning in that biome
  • Only works for vanilla variants
[1.1.5] NexusLib 1.1.5 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.5

## Changes
  • BlockFamilyCreator now takes a block behaviors as a supplier instead of straight behaviors
  • Added NLMath util class
  • added berp method, which creates a smooth interpolation that goes from one value to another and back
  • Added biome tags nexuslib:has_wolf_[variant]_variant
  • Adding biomes to a specific wolf variant's tag will override the spawn conditions and force that variant to be selected when spawning in that biome
  • Only works for vanilla variants
[1.1.4] NexusLib 1.1.4 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.4

## Changes
  • Added a registry method for PoI types
  • Fixed log spam when a custom post shader is applied
  • Fixed addItemsToItemGroup not doing anything on neoforge
  • Added a method variant of 'createBlockEntity' that takes in a list of blocks instead of using varargs
  • Fixed NLCompatAPI causing insane memory leaks (oops!)
  • Added registry methods for structure types, structure pieces, and structure processors
  • Fixed a typo in the method name of generateBlockFamilyRecipies
[1.1.4] NexusLib 1.1.4 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.4

## Changes
  • Added a registry method for PoI types
  • Fixed log spam when a custom post shader is applied
  • Fixed addItemsToItemGroup not doing anything on neoforge
  • Added a method variant of 'createBlockEntity' that takes in a list of blocks instead of using varargs
  • Fixed NLCompatAPI causing insane memory leaks (oops!)
  • Added registry methods for structure types, structure pieces, and structure processors
  • Fixed a typo in the method name of generateBlockFamilyRecipies
[1.1.3] NexusLib 1.1.3 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.3

## Changes
  • Refactored NLFuelRegistry and NLToolActions
  • Added a registry for default entity attributes
  • Added a registry for post-process shader effects
  • Provide the condition for when to apply the shader, the directory to the core shader json, and when it can be disabled by the f4 key
  • Fixed a vanilla issue where post-process effects would be disabled when opening the gamemode switcher
  • Fixed a typo in the method name of "sendToServer" (previously sentToServer)
  • Fixed an issue on neoforge where if two different mods that use Nexuslib for registry are loaded together, the former will register its content under the latter's id
  • Added a registry method for non-simple particle types
  • Added a registry for force loading models
  • Added a registry for item model overrides
  • Added a registry for commands
  • Added a registry method for command arguments
  • Added NLParticleRenderTypes
  • Adds PARTICLE_SHEET_CLOUD particle render type
  • Translucent render type that doesn't have some visual glitches that normal translucent particles do when rendering over each other, is typically used for "clouds" of one type of particle or when many are meant to overlap each other. It does have issues with depth sorting though, so its not great for other applications.
[1.1.3] NexusLib 1.1.3 by Hecco on Oct 18, 2026
Download
# Nexuslib version 1.1.3

## Changes
  • Refactored NLFuelRegistry and NLToolActions
  • Added a registry for default entity attributes
  • Added a registry for post-process shader effects
  • Provide the condition for when to apply the shader, the directory to the core shader json, and when it can be disabled by the f4 key
  • Fixed a vanilla issue where post-process effects would be disabled when opening the gamemode switcher
  • Fixed a typo in the method name of "sendToServer" (previously sentToServer)
  • Fixed an issue on neoforge where if two different mods that use Nexuslib for registry are loaded together, the former will register its content under the latter's id
  • Added a registry method for non-simple particle types
  • Added a registry for force loading models
  • Added a registry for item model overrides
  • Added a registry for commands
  • Added a registry method for command arguments
  • Added NLParticleRenderTypes
  • Adds PARTICLE_SHEET_CLOUD particle render type
  • Translucent render type that doesn't have some visual glitches that normal translucent particles do when rendering over each other, is typically used for "clouds" of one type of particle or when many are meant to overlap each other. It does have issues with depth sorting though, so its not great for other applications.
[1.1.1] HeccoLib 1.1.1 by Hecco on Oct 18, 2026
Download
# HeccoLib version 1.1.1

## Changes
  • Fixed many issues with automatic datagen of block families
  • Fixed the mod simply not working on NeoForge
  • Added a "planks" method in BlockFamilyCreator, which adds the block to the planks item and block tags
  • Fixed having no way to define block properties for block families
  • Added a method in BlockFamilyCreator to update block properties, mineable tags, and minimum tool tier
  • Added the ability for blocks manually added to a family to be added to autogenerated block tags

## New Features
  • Added contributor capes for TheHecco, Yirmiri, _Artyrian, tellio_ari, Diemond_Player, WorkGoblin, and Stellari_
  • Will only show if no other cape is enabled
  • Added a datagen class for item tags
  • Auto generates item tags for block family blocks
  • Added a datagen class for block loot tables
  • Auto generates a default loot table for all blocks in a mod
  • If a loot table is added for a block before the method runs, it will override the default one
  • Added a datagen class for recipes
  • Auto generates some blocks from block families, more functionality is planned
[1.1.1] HeccoLib 1.1.1 by Hecco on Oct 18, 2026
Download
# HeccoLib version 1.1.1

## Changes
  • Fixed many issues with automatic datagen of block families
  • Fixed the mod simply not working on NeoForge
  • Added a "planks" method in BlockFamilyCreator, which adds the block to the planks item and block tags
  • Fixed having no way to define block properties for block families
  • Added a method in BlockFamilyCreator to update block properties, mineable tags, and minimum tool tier
  • Added the ability for blocks manually added to a family to be added to autogenerated block tags

## New Features
  • Added contributor capes for TheHecco, Yirmiri, _Artyrian, tellio_ari, Diemond_Player, WorkGoblin, and Stellari_
  • Will only show if no other cape is enabled
  • Added a datagen class for item tags
  • Auto generates item tags for block family blocks
  • Added a datagen class for block loot tables
  • Auto generates a default loot table for all blocks in a mod
  • If a loot table is added for a block before the method runs, it will override the default one
  • Added a datagen class for recipes
  • Auto generates some blocks from block families, more functionality is planned
[1.1.0] HeccoLib 1.1.0 by Hecco on Oct 18, 2026
Download
# HeccoLib version 1.1.0

## Changes
  • Added a generic multiloader registry method
  • Requires the mod id, id, registry, and the entry
  • The registry methods for blocks, items, etc. are technically redundant, but are kept in for ease of use
  • Added registry methods for block entities
  • Added support for up to 5 stages in a stonecutter recipe tree
  • Added the ability to link pre-registered blocks to a block family
  • Added a system to add compatibility with other mods
[1.1.0] HeccoLib 1.1.0 by Hecco on Oct 18, 2026
Download
# HeccoLib version 1.1.0

## Changes
  • Added a generic multiloader registry method
  • Requires the mod id, id, registry, and the entry
  • The registry methods for blocks, items, etc. are technically redundant, but are kept in for ease of use
  • Added registry methods for block entities
  • Added support for up to 5 stages in a stonecutter recipe tree
  • Added the ability to link pre-registered blocks to a block family
  • Added a system to add compatibility with other mods
NexusLib Icon
Download NexusLib
Select game version
Select platform