All Mods Resource Packs Data Packs Shaders Modpacks Plugins
FrozenLib

FrozenLib

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

FrozenLib

A library that contains many tools for modders. May grow in the future.

This library lets you:

  • Have advanced configs

  • Add custom scheduledTick methods to any block

  • Allow Dripstone to trigger a scheduledTick on any block

  • Easily let Dripstone dry out and drip from any block

  • Decrease time from item cooldowns

  • Use moving looping sounds, use custom flyby sounds, and set up a custom interface to control when they should stop playing

  • Disable Hopper usage on any given BlockEntity

  • Use advanced math operations and noise sampling

  • Set up datafixers to convert old data to newer formats

  • Override entity textures

  • Add screen shaking effects

  • Modify gravity

  • Add new mobCategories

  • Use and extend a wind system

  • Modify advancements on runtime

  • Add MobEffects to Beacons

  • And much more!

Includes a Fabric implementation of The Quilt Project's DataFixerUpper API.

Use code FROZENBLOCK with Kinetic Hosting for 15% off your first month!

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3
Fabric
9h ago 1
26.3
Neoforge
9h ago 1
26.2
Fabric
9h ago 1
26.2
Neoforge
9h ago 1
26.3
Fabric
9h ago 1
26.3
Neoforge
9h ago 1
26.2
Fabric
9h ago 1
26.2
Neoforge
9h ago 1
26.3
Fabric
9h ago 1
26.3
Neoforge
9h ago 1
26.3
Neoforge
9h ago 1
26.3
Fabric
9h ago 1
26.2
Fabric
9h ago 1
26.2
Neoforge
9h ago 1
26.2
Fabric Quilt
9h ago 1
26.2
Fabric
9h ago 1
26.2
Fabric
9h ago 1
26.2
Fabric
9h ago 1
26.2-snapshot-6
Fabric Quilt
9h ago 1
26.2-snapshot-5
Fabric Quilt
9h ago 1
26.1.x
Fabric Quilt
9h ago 1
26.2-snapshot-1
Fabric Quilt
9h ago 1
26.1.x
Fabric Quilt
9h ago 1
26.1
Fabric Quilt
9h ago 1
26.1
Fabric Quilt
9h ago 1
26.1-rc-3
Fabric Quilt
9h ago 1
26.1-rc-2
Fabric Quilt
9h ago 1
26.1-pre-3
Fabric Quilt
9h ago 1
26.1-pre-2
Fabric Quilt
9h ago 1
26.1-pre-2
Fabric Quilt
9h ago 1
26.1-snapshot-11
Fabric Quilt
9h ago 1
26.1-snapshot-9
Fabric Quilt
9h ago 1
26.1-snapshot-9
Fabric Quilt
9h ago 1
26.1-snapshot-8
Fabric Quilt
9h ago 1
26.1-snapshot-7
Fabric Quilt
9h ago 1
26.1-snapshot-6
Fabric Quilt
9h ago 1
26.1-snapshot-5
Fabric Quilt
9h ago 1
26.1-snapshot-4
Fabric Quilt
9h ago 1
26.1-snapshot-3
Fabric Quilt
9h ago 1
26.1-snapshot-2
Fabric Quilt
9h ago 1
26.1-snapshot-1
Fabric Quilt
9h ago 1
1.21.11
Fabric Quilt
9h ago 1
1.21.10
Fabric Quilt
9h ago 1
1.21.9
Fabric Quilt
9h ago 1
26.1-snapshot-1
Fabric Quilt
9h ago 1
1.21.11
Fabric Quilt
9h ago 1
1.21.11
Fabric Quilt
9h ago 1
1.21.10
Fabric Quilt
9h ago 1
1.21.9
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w44a
Fabric Quilt
9h ago 1
25w43a
Fabric Quilt
9h ago 1
1.21.10
Fabric Quilt
9h ago 1
1.21.9
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w42a
Fabric Quilt
9h ago 1
1.21.10
Fabric Quilt
9h ago 1
1.21.9
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w42a
Fabric Quilt
9h ago 1
25w41a
Fabric Quilt
9h ago 1
1.21.10
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.9
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w21a
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w20a
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w19a
Fabric Quilt
9h ago 1
25w18a
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w15a
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.5
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.5-pre3
Fabric Quilt
9h ago 1
1.21.5-pre2
Fabric
9h ago 1
1.21.4
Fabric
9h ago 1
1.21.2
Fabric
9h ago 1
1.21.1
Fabric
9h ago 1
1.21.5-pre2
Fabric
9h ago 1
1.21.4
Fabric
9h ago 1
1.21.2
Fabric
9h ago 1
1.21.1
Fabric
9h ago 1
25w02a
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
25w02a
Fabric
9h ago 1
1.21.4
Fabric
9h ago 1
1.21.2
Fabric
9h ago 1
1.21.1
Fabric
9h ago 1
25w02a
Fabric
9h ago 1
1.21.4
Fabric
9h ago 1
1.21.2
Fabric
9h ago 1
1.21.1
Fabric
9h ago 1
25w02a
Fabric
9h ago 1
1.21.4
Fabric
9h ago 1
1.21.2
Fabric
9h ago 1
1.21.1
Fabric
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.2
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.4
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.6
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.6
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.6
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.6
Fabric Quilt
9h ago 1
1.21.1
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric
9h ago 1
1.21.x
Fabric
9h ago 1
1.21.x
Fabric
9h ago 1
1.21
Fabric
9h ago 1
1.21
Fabric
9h ago 1
1.21
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.21
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
1.21
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
1.20.6
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
24w10a
Fabric
9h ago 1
1.20.4
Fabric
9h ago 1
1.20.2
Fabric
9h ago 1
1.20.1
Fabric
9h ago 1
24w07a 24w06a
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
24w05b
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w51a
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.3-pre2
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w45a
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w44a
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w43b
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2
Fabric Quilt
9h ago 1
1.20.2-rc2
Fabric Quilt
9h ago 1
1.20.2-rc1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.2-pre4
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w33a
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
23w31a
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20.1
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20-pre7
Fabric Quilt
9h ago 1
1.20-pre5
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w14a
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.4-pre3
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w07a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w07a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w07a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w07a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w05a
Fabric Quilt
9h ago 1
23w04a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w04a
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w03a
Fabric
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
23w03a
Fabric
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
[3.0.3-mc26.3-fabric] 3.0.3 by Unknown on Oct 14, 2026
Download
  • Added the frozenlib:mob Entity Sub Predicate, returning true if an entity is an instance of the Mob class.
  • Added the #frozenlib:spiders Entity Type Tag.
  • Added the #frozenlib:horses Entity Type Tag.
  • Added the #frozenlib:equines Entity Type Tag.
  • Added the #frozenlib:camels Entity Type Tag.
  • Added the #frozenlib:nautili Entity Type Tag.
  • Added the #frozenlib:golems Entity Type Tag.
  • Fixed an issue that caused FrozenLib's overworld biome parameter cache and config entry loading to produce inconsistent results when accessed from multiple threads. ([#87](https://github.com/FrozenBlock/FrozenLib/issues/87), [#88](https://github.com/FrozenBlock/FrozenLib/pull/88))
  • Added the frozenlib:mob Entity Sub Predicate, returning true if an entity is an instance of the Mob class.
  • Added the #frozenlib:spiders Entity Type Tag.
  • Added the #frozenlib:horses Entity Type Tag.
  • Added the #frozenlib:equines Entity Type Tag.
  • Added the #frozenlib:camels Entity Type Tag.
  • Added the #frozenlib:nautili Entity Type Tag.
  • Added the #frozenlib:golems Entity Type Tag.
  • Fixed an issue that caused FrozenLib's overworld biome parameter cache and config entry loading to produce inconsistent results when accessed from multiple threads. ([#87](https://github.com/FrozenBlock/FrozenLib/issues/87), [#88](https://github.com/FrozenBlock/FrozenLib/pull/88))
[3.0.3-mc26.2-fabric] 3.0.3 by Unknown on Oct 14, 2026
Download
  • Added the frozenlib:mob Entity Sub Predicate, returning true if an entity is an instance of the Mob class.
  • Added the #frozenlib:spiders Entity Type Tag.
  • Added the #frozenlib:horses Entity Type Tag.
  • Added the #frozenlib:equines Entity Type Tag.
  • Added the #frozenlib:camels Entity Type Tag.
  • Added the #frozenlib:nautili Entity Type Tag.
  • Added the #frozenlib:golems Entity Type Tag.
  • Fixed an issue that caused FrozenLib's overworld biome parameter cache and config entry loading to produce inconsistent results when accessed from multiple threads. ([#87](https://github.com/FrozenBlock/FrozenLib/issues/87), [#88](https://github.com/FrozenBlock/FrozenLib/pull/88))
  • Added the frozenlib:mob Entity Sub Predicate, returning true if an entity is an instance of the Mob class.
  • Added the #frozenlib:spiders Entity Type Tag.
  • Added the #frozenlib:horses Entity Type Tag.
  • Added the #frozenlib:equines Entity Type Tag.
  • Added the #frozenlib:camels Entity Type Tag.
  • Added the #frozenlib:nautili Entity Type Tag.
  • Added the #frozenlib:golems Entity Type Tag.
  • Fixed an issue that caused FrozenLib's overworld biome parameter cache and config entry loading to produce inconsistent results when accessed from multiple threads. ([#87](https://github.com/FrozenBlock/FrozenLib/issues/87), [#88](https://github.com/FrozenBlock/FrozenLib/pull/88))
[3.0.2-mc26.3-fabric] 3.0.2 by Unknown on Oct 14, 2026
Download
  • Fixed an issue that caused newer versions of NeoForge to crash.
  • Fixed an issue that caused newer versions of NeoForge to crash.
[3.0.1-mc26.2-fabric] 3.0.1 by Unknown on Oct 14, 2026
Download
  • Fixed an issue that caused Data Attachments created with FrozenLib to always use the frozenlib namespace on NeoForge.
  • Likely fixed an issue that prevented non-host Players on LAN servers from receiving Photographs taken with Freeze Frame.

### 26.3+
  • Fixed an issue that caused Data Attachments created with FrozenLib to always use the frozenlib namespace on NeoForge.
  • Likely fixed an issue that prevented non-host Players on LAN servers from receiving Photographs taken with Freeze Frame.

### 26.3+
[3.0.1-mc26.3-fabric] 3.0.1 by Unknown on Oct 14, 2026
Download
  • Fixed an issue that caused Data Attachments created with FrozenLib to always use the frozenlib namespace on NeoForge.
  • Likely fixed an issue that prevented non-host Players on LAN servers from receiving Photographs taken with Freeze Frame.

### 26.3+
  • Fixed an issue that caused Data Attachments created with FrozenLib to always use the frozenlib namespace on NeoForge.
  • Likely fixed an issue that prevented non-host Players on LAN servers from receiving Photographs taken with Freeze Frame.

### 26.3+
  • Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
  • Added ConfigEntryGetter, a serializable way to access values from ConfigEntrys.
  • Added the frozenlib:config_predicate_provider Dynamic Registry, used to register ConfigPredicates.
  • All implementation of ConfigPredicates have been updated to now use Holders and HolderSets, allowing modders to refer to ConfigPredicates 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 StructureProcessorListAdditions, 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 StructureProcessors 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 Structures to/from StructureSets.
  • Added MaterialRuleAdditions, replacing the previous API used to add new MaterialRuless 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 PlayerDamageTypeSounds, 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+.
  • Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
  • Added ConfigEntryGetter, a serializable way to access values from ConfigEntrys.
  • Added the frozenlib:config_predicate_provider Dynamic Registry, used to register ConfigPredicates.
  • All implementation of ConfigPredicates have been updated to now use Holders and HolderSets, allowing modders to refer to ConfigPredicates 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 StructureProcessorListAdditions, 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 StructureProcessors 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 Structures to/from StructureSets.
  • Added MaterialRuleAdditions, replacing the previous API used to add new MaterialRuless 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 PlayerDamageTypeSounds, 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+.
  • Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
  • Added ConfigEntryGetter, a serializable way to access values from ConfigEntrys.
  • Added the frozenlib:config_predicate_provider Dynamic Registry, used to register ConfigPredicates.
  • All implementation of ConfigPredicates have been updated to now use Holders and HolderSets, allowing modders to refer to ConfigPredicates 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 StructureProcessorListAdditions, 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 StructureProcessors 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 Structures to/from StructureSets.
  • Added MaterialRuleAdditions, replacing the previous API used to add new MaterialRuless 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 PlayerDamageTypeSounds, 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+.
  • Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
  • Added ConfigEntryGetter, a serializable way to access values from ConfigEntrys.
  • Added the frozenlib:config_predicate_provider Dynamic Registry, used to register ConfigPredicates.
  • All implementation of ConfigPredicates have been updated to now use Holders and HolderSets, allowing modders to refer to ConfigPredicates 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 StructureProcessorListAdditions, 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 StructureProcessors 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 Structures to/from StructureSets.
  • Added MaterialRuleAdditions, replacing the previous API used to add new MaterialRuless 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 PlayerDamageTypeSounds, 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+.
  • 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.
  • Fixed a crash when trying to access Fire Types on servers without FrozenLib.
[2.5.1-mc26.2] 2.5.1 (26.2) by Unknown on Oct 14, 2026
Download
  • Fixed a major issue with Config Syncing.
[2.5-mc26.2] 2.5-mc26.2 by Unknown on Oct 14, 2026
Download
  • Removed the permanent field from FireData.
  • Revamped FireTypes to be much more flexible. Their new data structure and functionality is as follows:
  • source_settings:
  • fire_source_blocks: A block's ID, a list of block IDs, or a Block Tag defining which blocks use this Fire Type. (i.e, Fire, Campfire, Torch.)
  • supporting_blocks: A block's ID, a list of block IDs, or a Block Tag defining which blocks support this Fire Type on top of them.
  • damage_settings:
  • damage: The amount of damage to inflict while burning.
  • vulnerable_damage The amount of damage to inflict while an entity who is vulnerable to this Fire Type is burning.
  • vulnerable_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types are vulnerable to this Fire Type.
  • damage_immune_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types are immune to damage from this Fire Type.
  • spread_settings:
  • spreads_from_zombie_attack: Whether this Fire Type can be spread to the victim of a burning Zombie's attack.
  • spreads_from_ignite_enchantments: Whether this Fire Type can be spread to the victim of an attack of a burning entity using an enchantment that ignites entities.
  • replaceable_by_other_fire_types: Whether this Fire Type can be replaced by another Fire Type while burning.
  • always_apply_to_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types will always use this Fire Type while burning.
  • cannot_apply_to_entity_types: An entity type ID, a list of entity type IDs, or an Entity Type Tag defining which entity types cannot use this Fire Type.
  • textures:
  • texture_0: The first texture to use for this Fire Type.
  • texture_1: The second texture to use for this Fire Type, also used for the first-person burning overlay.
  • particle_settings:
  • smoke_particle: The ParticleOptions to use for this Fire Type's smoke.
  • large_smoke_particle: The ParticleOptions to use for this Fire Type's large smoke.
  • smoke_config_predicate: A ConfigPredicate, optionally used to dictate whether smoke_particle and large_smoke_particle can be used.
  • campfire_cosy_smoke_particle: The ParticleOptions to use for this Fire Type's campfire cosy smoke.
  • campfire_signal_smoke_particle: The ParticleOptions to use for this Fire Type's campfire signal smoke.
  • campfire_smoke_config_predicate: A ConfigPredicate, optionally used to dictate whether campfire_cosy_smoke_particle and campfire_signal_smoke_particle can be used.
  • lava_particle: The ParticleOptions to use for this Fire Type's lava particle (Used for campfires.)
  • lava_config_predicate: A ConfigPredicate, optionally used to dictate whether lava_config_predicate can be used.
  • config_predicate: A ConfigPredicate, optionally used to dictate whether this Fire Type can be used.
  • Removed the built-in frozenlib:soul_fire FireType.
  • Added a builder for Fire Types to make their creation much simpler.
  • Added the FireEvents class, containing the following Events:
  • SELECT_FIRE_TYPE
  • Is triggered when an Entity is catching on fire and the FireType is being selected.
  • Is used to modify the FireType to be set.
  • AFTER_FIRE_TYPE_SET
  • Is triggered after the FireType is set on an Entity.
  • ON_ENTITY_BURN_TICK
  • Is triggered each time an Entity is burnt from a fire lingering on them.
  • SELECT_FIRE_BLOCK_STATE
  • Is triggered when a Fire block is selecting which BlockState to place as.
  • Is used to modify the BlockState to be set.
  • Added ClipGroups.
  • Clip Groups define a list of blocks that crosshair clipping can pass through, while inside one of their blocks.
  • For example, while inside Wilder Wild's Mesoglea, Mesoglea blocks are no longer selected and you can attack entities and place/break blocks as normal.
  • Added the frozenlib:clip_group dynamic registry.
  • Each Clip Group simply contains a block's ID, a list of block IDs, or a Block Tag.
  • Added the WaterLikeBlock interface.
  • Is used to create blocks that have water-like properties, such as Wilder Wild's Mesoglea.
  • Can optionally support Bubble Columns.
  • Provides different particles and a fog color to use in place of Water's.
  • Added the frozenlib:water_like_type dynamic registry.
  • Provides a block's ID, a list of block IDs, or a Block Tag that list the blocks within a specific Water-Like Type.
  • Provies swimming, splashing, enter, exit, and ambient loop sounds to use for the Water-Like Type.
  • Added ConfigPredicates!
  • Provides a way to utilize config from a data-driven context.
  • These are modeled after Mojang's BlockPredicates, aiming to be easy to utilize in Data Packs.
  • Multiple predicate types are available, including:
  • any_of: Returns true if any of the contained ConfigPredicates returned true.
  • all_of: Returns true if all the contained ConfigPredicates returned true.
  • all_match: Returns true if all the contained ConfigPredicates returned the same value.
  • not: Returns true if the contained ConfigPredicate returns false.
  • exists: Returns true if the a ConfigEntry with the provided ID exists.
  • true: Always returns true.
  • The primary five predicate types are as follows:
  • equal_to: Returns true if the ConfigEntry's value matches the target value.
  • greater_than: Returns true if the ConfigEntry's value is greater than the target value.
  • greater_than_or_equal_to: Returns true if the ConfigEntry's value is greater than or equal to the target value.
  • less_than: Returns true if the ConfigEntry's value is less than the target value.
  • less_than_or_equal_to: Returns true if the ConfigEntry's value is less than or equal to the target value.
  • These all share the same two fields:
  • entry: The target ConfigEntry's ID.
  • target: The value the target ConfigEntry's value is being compared with.
  • Can be used as a BlockPredicate via the asBlockPredicate method.
  • Can be used as a PlacementFilter via the asPlacementFilter method.
  • Can be used as a LootItemCondition via the asLootCondition method.
  • Can be used as a ConditionSource via the asConditionSource method.
  • Added the ConfigSelector Configured Feature, configured with ConfigSelectorFeatureConfiguration:
  • config_predicate: The ConfigPredicate to use.
  • feature_if_true: The PlacedFeature to be placed if config_predicate returns true.
  • feature_if_false: The PlacedFeature to be placed if config_predicate returns false.
  • Refactored and renamed many worldgen-related classes to be more consistent with Vanilla.
  • ColumnWithDiskFeatureConfiguration now uses two BlockStateProviders instead of a BlockState and Block Tag.
  • Renamed the block_state_provider field to block_state and the stop_when_encountering_unreplaceable_block field to stop_at_unreplaceable_block in ColumnFeatureConfiguration.
  • Removed FrozenLibGrassColorModifiers, as this functionality is redundant thanks to Enum Extensions in Fabric Loader 0.19+.
  • Block Sound Type Overwrites have been removed, and replaced with a newer version that utilizes Dynamic Registries.
  • We understand this may upset some players, but the Resource Pack functionality would cause sound type desyncs between the server and client.
  • The new system will allow players to accomplish the same results, but via Data Pack!
  • Added the SoundTypeOverride, containing the following fields:
  • blocks: A block's ID, a list of block IDs, or a Block Tag that the sound_type applies to.
  • sound_type: The SoundType to be used.
  • volume: The volume to use.
  • pitch: The pitch to use.
  • break_sound: The break sound to use.
  • step_sound: The step sound to use.
  • place_sound: The place sound to use.
  • hit_sound: The hit sound to use.
  • fall_sound: The fall sound to use. Notice a pattern?
  • config_predicate: An optional field, supplying a ConfigPredicate that determines whether the override can be used.
  • Added the frozenlib_sound_type_override Dynamic Registry.
  • The frozenlib_config reload Command now provides completion suggestions and requires Game Master permissions to use.
  • Added the frozenlib_config_client Command, allowing clients to use config commands locally without affecting the server.
  • Renamed FrozenClothConfig to FrozenLibClothConfigGuiHelper.
  • Added multiple new helper methods to FrozenLibClothConfigGuiHelper.
  • Renamed PlayerStructureStatus to StructureStatus.
  • Revamped the way StructureStatuses are handled and sent to the client.
  • These now rely on Fabric's Attachment system, ultimately leading to the removal of custom networking & mixins related to syncing them.
  • Added a debug text entry option to display current statuses.
  • Revamped Structure-based Music.
  • StructureMusic is now serializable and its contents have changed, containing the following fields:
  • structures: A structure's ID or a list of structure IDs that music will play within.
  • background_music: The BackgroundMusic to play.
  • must_be_inside_piece: Whether the Player must be located inside a StructurePiece for music to play.
  • config_predicate: An optional field, supplying a ConfigPredicate that determines whether the music can be played.
  • Added the frozenlib:structure_music Dynamic Registry.
  • Added the frozenlib:controlled_note Particle Type, which takes an Integer as a parameter to use for the particle's color.
  • Added colored variants of Smoke and Campfire Smoke Particles, using ColoredSmokeParticleOptions.
  • These particles will start off with a tint, and fade back into their Vanilla coloration.
  • Removed the frozenlib:biome_tag_condition_source and frozenlib:optimized_biome_tag_condition_source Surface Rule ConditionSources, as they are redundant.
  • Added SulfurCubeUtilAndEvents, containing the following events:
  • ON_INTERACT
  • ON_ARCHETYPE_DATA_REMOVE
  • ON_ARCHETYPE_APPLY
  • ON_POWER_CHANGED
  • ON_PUSH_SOUND_PLAYED
  • ON_PUSH
  • ON_HIT
  • ON_SQUISH
  • Added the AbstractBlockLikeMob, used to create Mobs that render like Blocks and rotate as they move.
  • Based upon 26w14a's implementation.
  • Renders using the model of the provided BlockState it is given.
  • Added the NoOpModel, in cases a LivingEntityRenderer is required but no Model is wanted.
  • Revamped Spotting Icons.
  • Refactored all classes into the entity package.
  • Spotting Icons now render as part of the game's HUD.
  • Removed the frozenlib:spotting_icon_predicate Registry.
  • Removed SpottingIconPredicates.
  • Spotting Icons now use Fabric's Data Attachment system, using the SpottingIcons class.
  • This class contains methods to add, remove, and check a predicate against its Spotting Icons.
  • An Entity can now have multiple Spotting Icons at once.
  • Spotting Icons a much more flexible fading system.
  • A custom start and end value can now be defined.
  • Fades can be used for both the Icon's scale and transparency.
  • Migrated server texture packets to use Fabric's packet splitter.
  • Revamped FrozenLib Cape implementation.
  • Migrated to Fabric's Data Attachment system and Render State Data Keys.
  • Fixed a bug that caused a Player's FrozenLib Cape to not sync to clients when joining a server.
  • Revamped Screen Shake implementation.
  • Migrated to Fabric's Data Attachment system and Fabric's Level Tick Event instead of using separate mixins.
  • Screen Shakes can now have a "minimum distance", which will override the calculated distance to the Screen Shake if it is lower than this.
  • Added a Builder for Screen Shakes.
  • Screen Shakes no longer have separate implementation for Levels and Entities, now being universal and easy to use for both.
  • Updated the frozenlib screenshake command and its feedback.
  • Revamped Wind implementation.
  • Migrated to Fabric's Data Attachment system.
  • ClientWindManager has been removed and WindManager is now used on both the server and client.
  • Removed the ability and config option to use Wind on the client without a server that has Wind.
  • WindManagerExtensions now use a registry instead of a list.
  • WindDisturbances have been completely revamped, using Fabric's Data Attachment system and allowing for the creation of custom WindDisturbanceTypes for more dynamic usage.
  • Revamped Moving Sound Manager implementation.
  • Migrated to Fabric's Data Attachment system.
  • MovingSoundTypes can now be registered to FrozenLib's new frozenlib:moving_sound_type Registry.
  • Each MovingSoundType handles the ticking (and optionally removal) of each sound per-entity, similar to the original sound managers.
  • Thanks to these changes, multiple mixins and duplicate implementations have been removed.
  • Added the frozenlib:moving_sound_manager Dynamic Registry.
  • Removed the Warden Spawn Tracker config option, as the command can now be enabled in Vanilla via launch arguments.
  • Refactored the loot package into the item package.
  • Refactored the recipe package into the item package.
  • Added Fire Types.
  • Fire Types control the amount of damage an entity will take and the textures to use while on fire.
  • A data-driven registry is used to create Fire Types:
  • blocks: An ID, a list of IDs, or a tag of Blocks that correspond to the Fire Type. (e.g., Fire and Campfire)
  • damage: The amount of damage the Fire Type will inflict.
  • spreads_from_zombie: Whether the Fire Type can be spread from Zombie attacks.
  • spreads_from_ignite_enchantments: Whether the Fire Type can be spread from Enchantments that ignite entities.
  • replaceable: Whether this Fire Type can be overriden by another upon contact.
  • texture_0: The first Fire overlay texture.
  • texture_1: The second Fire overlay texture, also used in first-person view.
  • Added the frozenlib:default_fire_blocks Block Tag, containing the Fire and Campfire blocks by default.
  • Added the frozenlib:soul_fire_blocks Block Tag, which is empty by default.
  • Added the itemToPatternMappings method to DecoratedPotPatternRegistryEntrypoint.
  • Removed SherdRegistry.
  • Added the frozenlib:scares_piglin Entity Type tag.
  • Added the frozenlib:blazes Entity Type tag.
  • Added the frozenlib:hoglins Entity Type tag.
  • Added the frozenlib:ghost_like Entity Type tag.
  • Fixed a critical issue that prevented DataFixing from working as intended.
  • Cleaned up the implementation of multiple DataFixer helpers.
  • Fixed a critical issue that prevented DataFixing from working as intended.
  • Cleaned up the implementation of multiple DataFixer helpers.
  • Restored modmenu-specific features.
[2.4.3-mc26.1] 2.4.3 (26.1) by Unknown on Oct 14, 2026
Download
  • Restored modmenu-specific features.
[2.4.2-mc26.1] 2.4.2 (26.1) by Unknown on Oct 14, 2026
Download
  • Fixed the structure_upgrade command.
[2.4.1-mc26.1] 2.4.1 (26.1) by Unknown on Oct 14, 2026
Download
### Server Textures
  • ServerTextures now support .jpeg files!
  • Files ending in .mcphoto will also be treated as .jpeg files.
  • All methods pertaining to finding files for ServerTextures will no longer work if a file extension is included in the fileName parameter.
  • Instead, an automatic search has been added which looks for matching file names, ending in the .png, .jpeg, and .mcphoto extensions respectively.
  • When a match is found, it will be read.
  • FileTransferPackets now require a list of file extensions for requests.
  • This lets modders request files that could have a different file extension (e.g., photos ending in .png or .jpeg.)
  • Transfers are untouched, and still require the file extension to be part of the fileName parameter.
  • Please refrain from using the fileExtensions parameter when sending transfers, only use it for requests.
  • Updated the whitelisted file extensions for file requests and transfers.
  • .png, .jpeg, .mcphoto, .json.
  • Fixed a bug that could occur when running a dedicated server from the same directory a client is running from, which is connected to the dedicated server.
  • ServerTextures would continuously request their texture file while the server would continuously send it, resulting in the file being constantly rewritten and never read as a texture.
  • Added BuiltInBlockModelRegistry, helping modders register their own built-in Block models.

### Added the brand new Config V2!
The goal of Config V2 is to substantially improve performance, memory usage, and network usage overall, while maintaining FrozenLib's unique config features.

Multiple issues that would result in players being kicked, crashing, or experiencing lag have all been fixed.

### Config Entries
  • Contain an id, Entry Type, default value, and properties.
  • The id is used for naming the Entry.
  • Entry names can be anything you'd like, with / being used as a way to "nest" entries.
  • For example, "test/sectionA/1" and "test/sectionA/2" would both be encoded to and parsed from an array in the config file, namely "sectionA".
  • However, an Entry with the id "test/sectionB/1" would be nested in its own array, "sectionB".
  • Nesting can occur recursively.
  • Do note that giving an Entry the same name as a nest array will cause issues, please avoid doing so.
  • The Entry Type is a new class, providing a Codec and Stream Codec for the Entry to use.
  • Config entries are now encoded and decoded with codecs, opposed to writing present data to a file and hoping the encode/decode will return the anticipated result.
  • As a result of this, it is now possible to use much more complex classes in configs without issues.
  • Stream codecs are now used for config syncing, instead of sending the entire config file over the network.
  • This both significantly improves network performance and also cuts down on packet sizes tremendously, eliminating an edge-case that could kick players.
  • The default value is of course, the default value the Entry will use when unchanged.
  • Entry properties contain a few fields to control the behavior of an Entry.
  • The syncable field determines whether the Entry is able to sync between clients and servers.
  • The modifiable field determines whether the config modification system can be used on the Entry.
  • The comment field provides an optional comment that can be saved alongside the Entry.
  • Depending on the file type used, this will be saved either as:
  • An array containing the Entry's value and the comment.
  • A comment, not affecting the file's structure.
  • The visibilityPredicate field is optional, and determines whether the entry will be accessible in the config screen (only implemented for Cloth Config).
  • The textSupplier field is optional, and determines what text should be used for the entry's values in the config screen (only implemented for Cloth Config).
  • The requireRestart field is optional, and determines whether the entry will prompt Cloth Config's restart screen.

### Config Data
  • Config Data provides the base id for all config entries, as well as the file path to save the config file to.
  • Config Entries are created using an existing Config Data instance.
  • This is done to ensure Entries can be saved to their respective files, and won't get mixed up or lost.
  • Config Settings are provided, determining what file type to use for the config.
  • ServerTextures now support .jpeg files!
  • Files ending in .mcphoto will also be treated as .jpeg files.
  • All methods pertaining to finding files for ServerTextures will no longer work if a file extension is included in the fileName parameter.
  • Instead, an automatic search has been added which looks for matching file names, ending in the .png, .jpeg, and .mcphoto extensions respectively.
  • When a match is found, it will be read.
  • FileTransferPackets now require a list of file extensions for requests.
  • This lets modders request files that could have a different file extension (e.g., photos ending in .png or .jpeg.)
  • Transfers are untouched, and still require the file extension to be part of the fileName parameter.
  • Please refrain from using the fileExtensions parameter when sending transfers, only use it for requests.
  • Updated the whitelisted file extensions for file requests and transfers.
  • .png, .jpeg, .mcphoto, .json.
  • Fixed a bug that could occur when running a dedicated server from the same directory a client is running from, which is connected to the dedicated server.
  • ServerTextures would continuously request their texture file while the server would continuously send it, resulting in the file being constantly rewritten and never read as a texture.
  • Added BuiltInBlockModelRegistry, helping modders register their own built-in Block models.
  • ServerTextures now support .jpeg files!
  • Files ending in .mcphoto will also be treated as .jpeg files.
  • All methods pertaining to finding files for ServerTextures will no longer work if a file extension is included in the fileName parameter.
  • Instead, an automatic search has been added which looks for matching file names, ending in the .png, .jpeg, and .mcphoto extensions respectively.
  • When a match is found, it will be read.
  • FileTransferPackets now require a list of file extensions for requests.
  • This lets modders request files that could have a different file extension (e.g., photos ending in .png or .jpeg.)
  • Transfers are untouched, and still require the file extension to be part of the fileName parameter.
  • Please refrain from using the fileExtensions parameter when sending transfers, only use it for requests.
  • Updated the whitelisted file extensions for file requests and transfers.
  • .png, .jpeg, .mcphoto, .json.
  • Fixed a bug that could occur when running a dedicated server from the same directory a client is running from, which is connected to the dedicated server.
  • ServerTextures would continuously request their texture file while the server would continuously send it, resulting in the file being constantly rewritten and never read as a texture.
  • Added BuiltInBlockModelRegistry, helping modders register their own built-in Block models.
  • ServerTextures now support .jpeg files!
  • Files ending in .mcphoto will also be treated as .jpeg files.
  • All methods pertaining to finding files for ServerTextures will no longer work if a file extension is included in the fileName parameter.
  • Instead, an automatic search has been added which looks for matching file names, ending in the .png, .jpeg, and .mcphoto extensions respectively.
  • When a match is found, it will be read.
  • FileTransferPackets now require a list of file extensions for requests.
  • This lets modders request files that could have a different file extension (e.g., photos ending in .png or .jpeg.)
  • Transfers are untouched, and still require the file extension to be part of the fileName parameter.
  • Please refrain from using the fileExtensions parameter when sending transfers, only use it for requests.
  • Updated the whitelisted file extensions for file requests and transfers.
  • .png, .jpeg, .mcphoto, .json.
  • Fixed a bug that could occur when running a dedicated server from the same directory a client is running from, which is connected to the dedicated server.
  • ServerTextures would continuously request their texture file while the server would continuously send it, resulting in the file being constantly rewritten and never read as a texture.
  • Added BuiltInBlockModelRegistry, helping modders register their own built-in Block models.
  • ServerTextures now support .jpeg files!
  • Files ending in .mcphoto will also be treated as .jpeg files.
  • All methods pertaining to finding files for ServerTextures will no longer work if a file extension is included in the fileName parameter.
  • Instead, an automatic search has been added which looks for matching file names, ending in the .png, .jpeg, and .mcphoto extensions respectively.
  • When a match is found, it will be read.
  • FileTransferPackets now require a list of file extensions for requests.
  • This lets modders request files that could have a different file extension (e.g., photos ending in .png or .jpeg.)
  • Transfers are untouched, and still require the file extension to be part of the fileName parameter.
  • Please refrain from using the fileExtensions parameter when sending transfers, only use it for requests.
  • Updated the whitelisted file extensions for file requests and transfers.
  • .png, .jpeg, .mcphoto, .json.
  • Fixed a bug that could occur when running a dedicated server from the same directory a client is running from, which is connected to the dedicated server.
  • ServerTextures would continuously request their texture file while the server would continuously send it, resulting in the file being constantly rewritten and never read as a texture.
### Added the brand new Config V2!
The goal of Config V2 is to substantially improve performance, memory usage, and network usage overall, while maintaining FrozenLib's unique config features.

Multiple issues that would result in players being kicked, crashing, or experiencing lag have all been fixed.

### Config Entries
  • Contain an id, Entry Type, default value, and properties.
  • The id is used for naming the Entry.
  • Entry names can be anything you'd like, with / being used as a way to "nest" entries.
  • For example, "test/sectionA/1" and "test/sectionA/2" would both be encoded to and parsed from an array in the config file, namely "sectionA".
  • However, an Entry with the id "test/sectionB/1" would be nested in its own array, "sectionB".
  • Nesting can occur recursively.
  • Do note that giving an Entry the same name as a nest array will cause issues, please avoid doing so.
  • The Entry Type is a new class, providing a Codec and Stream Codec for the Entry to use.
  • Config entries are now encoded and decoded with codecs, opposed to writing present data to a file and hoping the encode/decode will return the anticipated result.
  • As a result of this, it is now possible to use much more complex classes in configs without issues.
  • Stream codecs are now used for config syncing, instead of sending the entire config file over the network.
  • This both significantly improves network performance and also cuts down on packet sizes tremendously, eliminating an edge-case that could kick players.
  • The default value is of course, the default value the Entry will use when unchanged.
  • Entry properties contain a few fields to control the behavior of an Entry.
  • The syncable field determines whether the Entry is able to sync between clients and servers.
  • The modifiable field determines whether the config modification system can be used on the Entry.
  • The comment field provides an optional comment that can be saved alongside the Entry.
  • Depending on the file type used, this will be saved either as:
  • An array containing the Entry's value and the comment.
  • A comment, not affecting the file's structure.
  • The visibilityPredicate field is optional, and determines whether the entry will be accessible in the config screen (only implemented for Cloth Config).
  • The textSupplier field is optional, and determines what text should be used for the entry's values in the config screen (only implemented for Cloth Config).
  • The requireRestart field is optional, and determines whether the entry will prompt Cloth Config's restart screen.

### Config Data
  • Config Data provides the base id for all config entries, as well as the file path to save the config file to.
  • Config Entries are created using an existing Config Data instance.
  • This is done to ensure Entries can be saved to their respective files, and won't get mixed up or lost.
  • Config Settings are provided, determining what file type to use for the config.
FrozenLib Icon
Download FrozenLib
Select game version
Select platform