Tags
Creators
Details
Licensed GPL-3.0-only
Created 4 years ago
Updated 18 hours ago
All versions
3.0-mc26.2-fabric
Release
3.0-mc26.2-fabric19 hours ago 368
Uploaded by
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client and server
Required content
Any compatible version
Changes
- Ported to multiloader and added plenty of new Events & Helpers for multiloader development.
- Added
ConfigEntryGetter, a serializable way to access values fromConfigEntrys. - Added the
frozenlib:config_predicate_providerDynamic Registry, used to registerConfigPredicates.- All implementation of
ConfigPredicates have been updated to now useHolders andHolderSets, allowing modders to refer toConfigPredicates via their registered id or tags.
- All implementation of
- Added the
frozenlib:fabricConfig Predicate, returning whether the current mod loader is Fabric. - Added the
frozenlib:neoforgeConfig Predicate, returning whether the current mod loader is NeoForge. - Added the
frozenlib:modConfig Predicate, returning whether a mod with the given id (defined via theidfield) is loaded. - Added the
frozenlib:biome_environment_attribute_modificationDynamic 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 givenbiomes.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_injectionDynamic 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 thespawn_conditionsfield in other mob variants.
- Removed the
WolfVariantBiomeRegistryclass, as Variant Spawn Injections supersede its functionality. - Added the following new Spawn Conditions (used for selecting mob variants within the
spawn_conditionsfield,) with the following formats:frozenlib:config: A Config Predicate, determining whether the condition was met.frozenlib:compoundconditions: A list of Spawn Conditions that all must be met.
- Added the
frozenlib:visual/lightmap_brightnessEnvironment Attribute, controlling the brightness of the lightmap.- Can be any value between 0 and 1.
- Added the
PistonEventsclass, 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_TOGETHERevent to achieve the intended behavior.
- This will not enable any behavior on its own, and must be used in tandem with the
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_STICKINESSevent to achieve the intended behavior.
- This will not enable any behavior on its own, and must be used in tandem with the
ON_MOVING_BLOCK_SET: Triggers when a moved Block is placed.ON_PUSH_FAIL: Triggers when Piston structure resolution fails.
- Renamed
PushableBlockEntityUtiltoPistonPushUtiland added a few new methods to help withPistonEventsusage. - Updated and renamed
BooleanPropertySculkBehaviortoBlockStatePropertySculkBehavior, with the additional functionality of being able to use any Block State Property. - Added the
frozenlib:selectorConfig Predicate, with the following format:selector: The Config Predicate used to determine which predicate to select.when_true: The Config Predicate to select whenselectorreturns true.when_false: The Config Predicate to select whenselectorreturns false.
- Added the
frozenlib_with_fallbackConfig 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
BlockStateRenameFixandFrozenEntityRenameFix, as Vanilla provides the same functionality. - Renamed
SplashTextAPItoSplashTextEventsand 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_applyvs.cannot_apply) and the category with the highest power will be chosen.- If their power is equal, the
cannot_applycategory will be chosen.
- If their power is equal, the
- Additions to
- Fire Types now work as intended on Blazes, Fireballs, and Small Fireballs.
- Added the
#frozenlib:on_fireEntity Type Tag, defining which Entity Types are fire-like.- Contains
#frozenlib:blazes,minecraft:fireball, andminecraft:small_fireballby 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
remainingFireTicksfield is zero or less, unlike other entities.
- Contains
- Added the
#frozenlib:spawnerItem Tag, used to define which Items should display theInteract with Spawn Egg: Sets Mob Typetooltip. - Added the
frozenlib:damageConsume 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
DamageOnUseItemandDamageOnUseBlockItem, as their functionality has been superseded by thefrozenlib:damageConsume Effect Type. - Added Block Attachments, allowing data to be injected into Blocks for quick retrieval.
- Only the
REGISTERevent inBlockAttachmentEventsshould be used to attach new data to Blocks. - Are cleared each time Tags are loaded/reloaded.
- The
REGISTERevent is called whenever this occurs, as to keep attachments that may depend on Tags up-to-date.
- The
- Only the
- Condensed
BlockScheduledTicks,BlockRandomTicks, andBlockAnimateTicksinto the newBlockTickEventsandBlockTickRegistryclasses.BlockTickEventsprovides events that trigger regardless of the Block.BlockTickRegistryuses 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 identifierfrozenlib: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 - Fixed in pull request #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_providerandfrozenlib:flower_bed_providerBlock 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 ofBlockTransformersfor Shovel, Axe, and Hoe items.- This replaces the previous
ShovelApiandAxeApiclasses.
- This replaces the previous
- Added
PropertyTestingPredicate, a new abstractBlockPredicateused to compare Property values.- Added
HasMatchingAxisPredicate, used to compare theAXISProperty of a Block.
- Added
- Added
ShearsDispenseItemBehaviorApi, used to register custom behaviors for Shears being used by a Dispenser. - Added the experimental
BlockRegistryModificationEventsclass, used to modify the Properties and Factory used to create Blocks. - Moved Wilder Wild's Potent Sulfur Geyser Wind Disturbance into FrozenLib.
- Added
StructureProcessorListAdditions, replacingStructureProcessorApiin a more stable and data-driven manner.- Added the
frozenlib:structure_processor_list_additionDynamic Registry with the following format:structures: A Structure's ID, a list of Structure IDs, or a Structure Tag thatprocessorswill be added to.processors: A list ofStructureProcessors to add tostructures.config_predicate: An optional field, determining whether this can be used.serialization_requirement: AConfigPredicate, determining whether this can be serialized (useful for mod compat.)
- Added the
- Added the
frozenlib:pathfinding_damaging_blocksBlock Tag, denoting extra Blocks to be considered as damaging while pathfinding. - Migrated
StructureGenerationConditionApito an event. - Migrated
StructurePlacementExclusionApito an event. - Added the
StructureSetApiclass, allowing modders to easily add or removeStructures to/fromStructureSets. - Added
MaterialRuleAdditions, replacing the previous API used to add newMaterialRuless to Levels.- Added the
frozenlib:material_rule_additionDynamic Registry, with the following format:dimensions: A Dimension Type's ID, a list of Dimension Type IDs, or a Dimension Type Tag thatrulewill be added to.has_preliminary_surface: Whetherrulecan only generate on the world's surface. (i.e., the surface of the Overworld.)rule: TheMaterialRulesto add todimensions.serialization_requirement: AConfigPredicate, determining whether this can be serialized (useful for mod compat.)
- Removed
SurfaceRuleEvents,DimensionBoundRuleSource, andSurfaceRuleUtilas they are no longer needed.
- Added the
- Added the
#frozenlib:overworld,#frozenlib:nether, and#frozenlib:endDimension Type Tags. - Added
PlayerDamageTypeSounds, used to play a custom sound when a Player is damaged by a specificDamageType.- Added the
frozenlib:player_damage_type_soundDynamic Registry with the following format:damage_types: A Damage Type's ID, a list of Damage Type IDs, or a Damage Type Tag thatsound_eventwill be used for.sound_event: The Sound Event to play when a Player is damaged bydamage_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
- Added the
frozenlib:config_predicateTree Decorator, with the following format:decorator: The Tree Decorator to generate.predicate: The Config Predicate to test, determining whetherdecoratorcan generate.
- Added the
frozenlib:probabilityTree Decorator, with the following format:decorator: The Tree Decorator to generate.probability: The probability fordecoratorto generate.
DataMarkerProcessableSinglePoolElementandDataMarkerProcessableLegacySinglePoolElementare now both abstract classes.- This change allows for easy handling of Data Markers without the need for mixins.
- Added the
ParticleSpawnerclass, assisting in setting up client-sided particle spawners, e.g., Pollen particles spawning from Pollen blocks. - Added new implementations of
BlockRenameFixandBlockPropertyRenameAndFixthat work on 26.3-snapshot-7+.
Optional dependencies
Any compatible version
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:9KawNmQc:dAbWrFf4"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9KawNmQc:dAbWrFf4"
}
