promotional banner

FrozenLib

FrozenBlock's Giant Library of Shelves
Back to Files

3.0-mc26.3-neoforge

File nameFrozenLib-3.0-mc26.3-neoforge.jar
Uploaded
Sep 21, 2026
Downloads
75
Size
2.4 MB
Mod Loaders
NeoForge
File ID
8936981
Type
R
Release
Supported game versions
  • 26.3

Curse Maven Snippet

NeoForge

implementation "curse.maven:frozenlib-709773:8936981"

Learn more about Curse Maven

What's new

- Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
- Added `ConfigEntryGetter`, a serializable way to access values from `ConfigEntry`s.
- Added the `frozenlib:config_predicate_provider` Dynamic Registry, used to register `ConfigPredicate`s.
- All implementation of `ConfigPredicate`s have been updated to now use `Holder`s and `HolderSet`s, allowing modders to refer to `ConfigPredicate`s via their registered id or tags.
- Added the `frozenlib:fabric` Config Predicate, returning whether the current mod loader is Fabric.
- Added the `frozenlib:neoforge` Config Predicate, returning whether the current mod loader is NeoForge.
- Added the `frozenlib:mod` Config Predicate, returning whether a mod with the given id (defined via the `id` field) is loaded.
- Added the `frozenlib:biome_environment_attribute_modification` Dynamic Registry, with the following format:
- `biomes`: The id, a list of ids, or a tag of Biomes to modify.
- `attributes`: A map of Environment Attributes to merge into the given `biomes`.
- `enabled_when`: A Config Predicate, determining whether this instance can be used or should be skipped.
- Migrated Serializable Item Cooldowns to Data Attachments and optimized its network performance.
- Added the `frozenlib:variant_spawn_injection` Dynamic Registry, with the following format:
- `registry`: The id of the variant registry.
- `variant`: The id of the variant to inject custom spawn conditions into.
- `spawn_conditions`: The spawn conditions to inject into the variant, using the same format as the `spawn_conditions` field in other mob variants.
- Removed the `WolfVariantBiomeRegistry` class, as Variant Spawn Injections supersede its functionality.
- Added the following new Spawn Conditions (used for selecting mob variants within the `spawn_conditions` field,) with the following formats:
- `frozenlib:config`: A Config Predicate, determining whether the condition was met.
- `frozenlib:compound`
- `conditions`: A list of Spawn Conditions that all must be met.
- Added the `frozenlib:visual/lightmap_brightness` Environment Attribute, controlling the brightness of the lightmap.
- Can be any value between 0 and 1.
- Added the `PistonEvents` class, containing the following events:
- `DETERMINE_BLOCK_ENTITY_PUSH_RESULT`: Determines whether a Block with a Block Entity can be pushed by a Piston.
- `DETERMINE_BLOCK_STICKINESS`: Determines whether a Block is considered sticky when pushed by a Piston.
- This will not enable any behavior on its own, and must be used in tandem with the `TRY_STICK_BLOCKS_TOGETHER` event to achieve the intended behavior.
- `TRY_STICK_BLOCKS_TOGETHER`: Determines whether two Blocks can stick together when pushed by a Piston.
- This will not enable any behavior on its own, and must be used in tandem with the `DETERMINE_BLOCK_STICKINESS` event to achieve the intended behavior.
- `ON_MOVING_BLOCK_SET`: Triggers when a moved Block is placed.
- `ON_PUSH_FAIL`: Triggers when Piston structure resolution fails.
- Renamed `PushableBlockEntityUtil` to `PistonPushUtil` and added a few new methods to help with `PistonEvents` usage.
- Updated and renamed `BooleanPropertySculkBehavior` to `BlockStatePropertySculkBehavior`, with the additional functionality of being able to use any Block State Property.
- Added the `frozenlib:selector` Config Predicate, with the following format:
- `selector`: The Config Predicate used to determine which predicate to select.
- `when_true`: The Config Predicate to select when `selector` returns true.
- `when_false`: The Config Predicate to select when `selector` returns false.
- Added the `frozenlib_with_fallback` Config Predicate, with the following format:
- `entry`: The required Config Entry's id.
- `predicate`: The Config Predicate to use if the required Config Entry is present.
- `fallback`: The fallback value to use if the required Config Entry is not present.
- Removed `BlockStateRenameFix` and `FrozenEntityRenameFix`, as Vanilla provides the same functionality.
- Renamed `SplashTextAPI` to `SplashTextEvents` and migrated its functionality to events.
- Added the following fields to Fire Types:
- Additions to `damage_settings`:
- `vulnerable_mob_effects`: A Mob Effect's id, a list of Mob Effect ids, or a Mob Effect Tag, defining which Mob Effects will make an Entity vulnerable to this Fire Type's damage.
- `damage_immune_mob_effects`: A Mob Effect's id, a list of Mob Effect ids, or a Mob Effect Tag, defining which Mob Effects will make an Entity immune to this Fire Type's damage.
- Additions to `spread_settings`:
- `always_apply_to_mob_effects`: A Mob Effect's id, a list of Mob Effect ids, or a Mob Effect Tag, defining which Mob Effects will make an Entity use this Fire Type if caught on fire.
- `cannot_apply_to_mob_effects`: A Mob Effect's id, a list of Mob Effect ids, or a Mob Effect Tag, defining which Mob Effects will make this Fire Type unable to be applied to an Entity.
- If conflicting Mob Effects are present, their total power will be summed by category (`always_apply` vs. `cannot_apply`) and the category with the highest power will be chosen.
- If their power is equal, the `cannot_apply` category will be chosen.
- Fire Types now work as intended on Blazes, Fireballs, and Small Fireballs.
- Added the `#frozenlib:on_fire` Entity Type Tag, defining which Entity Types are fire-like.
- Contains `#frozenlib:blazes`, `minecraft:fireball`, and `minecraft:small_fireball` by default.
- Entities in this Tag will:
- Set their Fire Type upon spawning, instead of waiting to be set on fire.
- Not remove their attached Fire Type if their `remainingFireTicks` field is zero or less, unlike other entities.
- Added the `#frozenlib:spawner` Item Tag, used to define which Items should display the `Interact with Spawn Egg: Sets Mob Type` tooltip.
- Added the `frozenlib:damage` Consume Effect Type, with the following format:
- `amount`: How much damage (must be above 0) to inflict upon the user.
- `sound` (Optional): The id of the Sound to play upon damaging the user.
- `type`: The id of the Damage Type to damage the user with.
- Removed `DamageOnUseItem` and `DamageOnUseBlockItem`, as their functionality has been superseded by the `frozenlib:damage` Consume Effect Type.
- Added Block Attachments, allowing data to be injected into Blocks for quick retrieval.
- Only the `REGISTER` event in `BlockAttachmentEvents` should be used to attach new data to Blocks.
- Are cleared each time Tags are loaded/reloaded.
- The `REGISTER` event is called whenever this occurs, as to keep attachments that may depend on Tags up-to-date.
- Condensed `BlockScheduledTicks`, `BlockRandomTicks`, and `BlockAnimateTicks` into the new `BlockTickEvents` and `BlockTickRegistry` classes.
- `BlockTickEvents` provides events that trigger regardless of the Block.
- `BlockTickRegistry` uses the new Block Attachment system, and provides a simple way to add new Block-specific behavior.
- Reworked the implementation of modded DataFixers, now allowing modders to register any amount of DataFixers per-mod as they'd like.
- Added `DataFixerEntrypoint` (using the identifier `frozenlib:data_fixer`,) allowing modders to register custom Entities and Block Entities to Vanilla's DataFixers.
- This resolves a long-standing issue that caused many modded Entities and Block Entities to lose data across versions, without the need to use mixins.
- Fixed an issue that required Minecraft to run for an entire minute before finally shutting down. ([#81](https://github.com/FrozenBlock/FrozenLib/issues/81) - Fixed in pull request [#82](https://github.com/FrozenBlock/FrozenLib/pull/82))
- Fixed a major issue that caused certain DataFixers to not work as intended.
- Fixed a crash that could occur on clients when trying to sync Wind Manager Extensions with the server.
- Wind Manager Extensions now support modification as a method of syncing, instead of replacement.
- Fixed an issue that could cause the number of Wind Manager Extensions on the client to increase dramatically over time.

### 26.3+
- Added the `frozenlib:leaf_litter_provider` and `frozenlib:flower_bed_provider` Block State Providers, with the following format:
- `block`: The id of the Block to generate.
- `min_segment` (Optional): The minimum amount of segments to provide, in a range of 1-4.
- Provides 1 if empty.
- `max_segment`: The maximum amount of segments to provide, in a range of 1-4.
- Added `BlockTransformerEvents`, enabling the modification of `BlockTransformers` for Shovel, Axe, and Hoe items.
- This replaces the previous `ShovelApi` and `AxeApi` classes.
- Added `PropertyTestingPredicate`, a new abstract `BlockPredicate` used to compare Property values.
- Added `HasMatchingAxisPredicate`, used to compare the `AXIS` Property of a Block.
- Added `ShearsDispenseItemBehaviorApi`, used to register custom behaviors for Shears being used by a Dispenser.
- Added the experimental `BlockRegistryModificationEvents` class, used to modify the Properties and Factory used to create Blocks.
- Moved Wilder Wild's Potent Sulfur Geyser Wind Disturbance into FrozenLib.
- Added `StructureProcessorListAddition`s, replacing `StructureProcessorApi` in a more stable and data-driven manner.
- Added the `frozenlib:structure_processor_list_addition` Dynamic Registry with the following format:
- `structures`: A Structure's ID, a list of Structure IDs, or a Structure Tag that `processors` will be added to.
- `processors`: A list of `StructureProcessor`s to add to `structures`.
- `config_predicate`: An optional field, determining whether this can be used.
- `serialization_requirement`: A `ConfigPredicate`, determining whether this can be serialized (useful for mod compat.)
- Added the `frozenlib:pathfinding_damaging_blocks` Block Tag, denoting extra Blocks to be considered as damaging while pathfinding.
- Migrated `StructureGenerationConditionApi` to an event.
- Migrated `StructurePlacementExclusionApi` to an event.
- Added the `StructureSetApi` class, allowing modders to easily add or remove `Structure`s to/from `StructureSet`s.
- Added `MaterialRuleAddition`s, replacing the previous API used to add new `MaterialRules`s to Levels.
- Added the `frozenlib:material_rule_addition` Dynamic Registry, with the following format:
- `dimensions`: A Dimension Type's ID, a list of Dimension Type IDs, or a Dimension Type Tag that `rule` will be added to.
- `has_preliminary_surface`: Whether `rule` can only generate on the world's surface. (i.e., the surface of the Overworld.)
- `rule`: The `MaterialRules` to add to `dimensions`.
- `serialization_requirement`: A `ConfigPredicate`, determining whether this can be serialized (useful for mod compat.)
- Removed `SurfaceRuleEvents`, `DimensionBoundRuleSource`, and `SurfaceRuleUtil` as they are no longer needed.
- Added the `#frozenlib:overworld`, `#frozenlib:nether`, and `#frozenlib:end` Dimension Type Tags.
- Added `PlayerDamageTypeSound`s, used to play a custom sound when a Player is damaged by a specific `DamageType`.
- Added the `frozenlib:player_damage_type_sound` Dynamic Registry with the following format:
- `damage_types`: A Damage Type's ID, a list of Damage Type IDs, or a Damage Type Tag that `sound_event` will be used for.
- `sound_event`: The Sound Event to play when a Player is damaged by `damage_types`.
- `config_predicate`: An optional field, determining whether this can be used.
- Removed the initial implementation, as this new data-driven implementation is far more stable.
- Added the `frozenlib:config_predicate` Tree Decorator, with the following format:
- `decorator`: The Tree Decorator to generate.
- `predicate`: The Config Predicate to test, determining whether `decorator` can generate.
- Added the `frozenlib:probability` Tree Decorator, with the following format:
- `decorator`: The Tree Decorator to generate.
- `probability`: The probability for `decorator` to generate.
- `DataMarkerProcessableSinglePoolElement` and `DataMarkerProcessableLegacySinglePoolElement` are now both abstract classes.
- This change allows for easy handling of Data Markers without the need for mixins.
- Added the `ParticleSpawner` class, assisting in setting up client-sided particle spawners, e.g., Pollen particles spawning from Pollen blocks.
- Added new implementations of `BlockRenameFix` and `BlockPropertyRenameAndFix` that work on 26.3-snapshot-7+.

This mod has no additional files