Tags
Creators
Details
Licensed ARR
Published 4 years ago
All versions
2.4.12.2-beta
Beta
2.4.12.2-beta3 months ago 179
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Server-side
Client and server
Changes
2.4.12.2-beta
- Crash fix
2.4.12.1-beta
- Crash fix
2.4.12.0-beta
Technical
- Added
SerializableMobEffectInstance
2.4.11.0-beta
- Added
insanelib:enchantabilityitem component
2.4.10.0-beta
- Added
merge_componentsarray for item_components- Arrays are concatenated, objects are recursively merged, and primitives are overridden.
This is useful for adding entries to a list component (e.g. appending attribute modifiers) without discarding the item's existing values
- Arrays are concatenated, objects are recursively merged, and primitives are overridden.
2.4.9.3-beta
- Optimized ModNBTData path parsing to avoid regex overhead on every NBT access
2.4.9.2-beta
Technical
- Allow
ObjTagto use dynamic registries
2.4.9.1-beta
Technical
- Added
JsonFeature#loadAndReadJsonoverloads for specifying the registry
2.4.9.0-beta
Technical
- Added back json utilities (
ILGsonHelperand validators)
2.4.8.0-beta
Technical
- Added loot modifiers:
insanelib:replace_loot— replaces items in a loot table with another item, optionally copying components (durability, enchantments) and scaling the count{ "type": "insanelib:replace_loot", "conditions": [...], "original_item": "minecraft:iron_sword", "replacement_item": "minecraft:diamond_sword", "copy_components": true, "count_multiplier": 1.0 }insanelib:inject_loot_table— injects the contents of another loot table into the current one{ "type": "insanelib:inject_loot_table", "conditions": [...], "loot_table": "minecraft:chests/simple_dungeon" }insanelib:drop_multiplier— multiplies the count of matching items in loot{ "type": "insanelib:drop_multiplier", "conditions": [...], "item": "minecraft:wheat", "multiplier": 2.0 }insanelib:loot_purger— removes or damages items based on distance from world spawn; useful for progressive loot difficultyItems are progressively purged the closer to spawn the loot generates. At{ "type": "insanelib:loot_purger", "conditions": [...], "end_range": 5000, "start_range": 0, "multiplier_at_start": 0.0, "apply_to_damageable": false, "blacklisted_items_tag": "insanelib:loot_purger_blacklist", "blacklisted_entity_type_tag": "insanelib:loot_purger_entity_blacklist" }start_rangethe survival chance ismultiplier_at_start, atend_rangeit is 1.apply_to_damageabledamages items proportionally instead of removing them.insanelib:disenchant— removes enchantments from all items; enchanted books become plain books{ "type": "insanelib:disenchant", "conditions": [...], "blacklisted_items_tag": "insanelib:disenchant_blacklist" }
- Added loot functions:
insanelib:enchant_randomly_weightless— enchants an item with a given number of random enchantments, each chosen with equal probability (no weight). Supports books.{ "function": "insanelib:enchant_randomly_weightless", "conditions": [...], "count": 2, "max_lvl": false, "treasure": false }count: number of enchantments to apply (supports number providers).max_lvl: always apply the maximum level.treasure: allow treasure enchantments (tagminecraft:treasure).insanelib:enchant_with_treasure— applies a single random treasure enchantment to the item. Supports books.{ "function": "insanelib:enchant_with_treasure", "conditions": [...], "allow_curses": true, "allow_treasure": true }allow_curses: include curse enchantments (tagminecraft:curse).allow_treasure: include non-curse treasure enchantments.
- Added loot conditions:
insanelib:block_tag_match— passes if the broken block is in the given tag (returns true if no block state is in context){ "condition": "insanelib:block_tag_match", "block_tag": "minecraft:logs" }insanelib:killer_has_advancement— passes if the killing player has completed the given advancement{ "condition": "insanelib:killer_has_advancement", "advancement": "minecraft:story/mine_diamond" }insanelib:non_player_arised_drop— passes if the drop was not caused by a player, explosion, or tool (i.e. natural mob death without a player killer){ "condition": "insanelib:non_player_arised_drop" }
2.4.7.1-beta
Technical
- Fixed self() methods not being @Unique
2.4.7.0-beta
Technical
- Added
ItemComponentsReloadListener.PROGRAMMATIC_PROVIDERSto change stacks programmatically
2.4.6.2-beta
Technical
- Attached sources in the .jar
2.4.6.1-beta
Technical
- Changed MCUtils.computeFoodFormula variables
- Removed effectiveness
- Renamed hunger to nutrition
2.4.6.0-beta
Technical
- Added back
InsaneLib.ONE_DECIMAL_FORMATTER
2.4.5.0-beta
Technical
- Added
MCUtils.computeFoodFormulausing EvalEx - Added back all the events
2.4.4.0-beta
Technical
- Added back
feature_enabledneoforge condition and loot condition
2.4.3.0-beta
Technical
- Added back
PlayerUseItemMovSpeedEventandPlayerSprintEvent
2.4.2.0-beta
- Moved Attack Speed Based Invincibility feature to ISO
2.4.1.1-beta
Technical
- Fixed concurrent modification exception
2.4.1.0-beta
Technical
- Ported back
ClientUtils
2.4.0.1-beta
- Attack invincibility frames are now reduced by 10%
- Fixed invincibility frames not shown on entities if damage was not from an entity or from non-weapon
2.4.0.0-beta
- Added insanelib:knockback_multiplier data component
- 0~1 that can reduce the knockback of an item
2.3.1.1-beta
- Fixed invincibility feature erroring when installed server side only
2.3.1.0-beta
- Added config option to limit invincibility frames to only faster attack speeds
2.3.0.0-beta
- Added Attack Speed Based Invincibility feature
- Makes attack change invincibility frames based off attack speed, so faster attacks will give less invincibility frames and vice versa
- If installed on the client, they will actually see the red invincibility frames correctly based off attack speed
2.2.2.0-beta
- Added back
/insanelibcommand, but, more importantly, added a new subcommand get_data_components- With
/insanelib get_data_components <item>you can get a list of all the data components that are currently applied to the item
- With
2.2.1.0-beta
- Renamed Item Definitions to Item components (the data pack folder has also changed to
item_components)- Added
remove_components, a list of components to remove from the item - Added
priority, integer value. When multiple json target the same item, components are merged — higher priority wins per component type.
- Added
- A higher-priority remove overrides a lower-priority set, and vice versa.
2.2.0.0-beta
- Added Item Definitions feature
- Use data packs to change items' data components
E.g. indata/<namespace>/item_definitions/strong_diamond_sword.jsonwill make diamond swords have 50 Attack Damage and 2000 durability
{ "item": "minecraft:diamond_sword", "components": { "minecraft:max_damage": 2000, "minecraft:attribute_modifiers": { "modifiers": [ { "type": "minecraft:generic.attack_damage", "id": "minecraft:attack_damage", "amount": 50.0, "operation": "add_value", "slot": "mainhand" } ] } } } - Use data packs to change items' data components
2.1.3.0-beta
- Ported Push Resistance attribute from Enhanced AI
2.1.2.5-beta
- Crash fix when saving a parsed effect instance
2.1.2.4-beta
- Fix Network messages again
2.1.2.3-beta
- Fix Network messages being sent to clients with no mod installed
2.1.2.2-beta
- Fix ObjTag resolving unknown registry entries as fallback objects
2.1.2.1-beta
- Fixed missing
ObjTagValue.LIST_TYPE
2.1.2.0-beta
- Added back
IdTagValueasObjTagValue - Added
ObjTag#asHolder
2.1.1.0-beta
- Added
MCUtils.createPotionStackFromEffectInstances
2.1.0.1-beta
- Fixed startup crash
2.1.0.0-beta
- Modules now require Resource Location as identifier
- You can now use
ILModConfigto prevent having to create a config class each mod- In the mod class
public static ILModConfig CONFIG; public YourMod(IEventBus modEventBus, ModContainer modContainer) { CONFIG = new ILModConfig(MOD_ID, ModConfig.Type.COMMON, modEventBus, Modules::init, InsaneLib.class.getClassLoader()); modContainer.registerConfig(ModConfig.Type.COMMON, CONFIG.spec, MOD_ID + "/common.toml"); } - You can also create a single module mod via
ILModConfigconstructorFeatures in single module mods can now omit the module parameter inpublic static ILModConfig CONFIG; public YourMod(IEventBus modEventBus, ModContainer modContainer) { CONFIG = new ILModConfig(location("main"), "Main", ModConfig.Type.COMMON, modEventBus, Modules::init, InsaneLib.class.getClassLoader()); modContainer.registerConfig(ModConfig.Type.COMMON, CONFIG.spec, MOD_ID + "/common.toml"); }@LoadFeature
- In the mod class
- Ported more MCUtils functions
2.0.4.0-beta
- Ported Better Falling Blocks
2.0.3.0-alpha
- Added Fix Swimmers Swimming Attribute, making Drowned and Fishes use the neoforge swimming speed attribute instead of the vanilla movement speed
2.0.2.1-alpha
- Player attributes are now empty by default
2.0.2.0-alpha
- Added Player Attributes feature
- Directly from Insane's Survival Overhaul, change players attributes with a json in the config folder.
- By default, it will slightly reduce movement speed and block reach
- Added back JsonFeature (needed for Player Attributes)
2.0.1.0-alpha
- Added back MessageCreeperDataSync
- Creeper data is now automatically synced client-side (if the mod is installed on the client).
2.0.0.5-alpha
- Fixed "Fix Air Speed.Sprinting Jump Slowdown" being ignored
2.0.0.4-alpha
Port to 1.21.1
This version contains most of the player features (missing Better Falling Blocks) + everything needed to make MPR work.
- Removed
spawn_typetag, neoforge already does that withneoforge:spawn_typeNBT Tag - Follow range fix now applies to any entity that uses vanilla NearestAttackableTargetGoal and will update everytime the mob tries to find a new target instead of only on spawn
- Enhanced Fix Air Speed (aka Fix Jump Movement Factor)
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:USZyvOJq:IUidKlvm"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:USZyvOJq:IUidKlvm"
}

