▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/InsaneLib
InsaneLib

InsaneLib

A set of common classes and utilities used by Insane's mods

988.8K
24

2.4.9.2-beta

beta15 марта 2026 г.

2.4.9.2-beta

Technical

  • Allow ObjTag to use dynamic registries

2.4.9.1-beta

Technical

  • Added JsonFeature#loadAndReadJson overloads for specifying the registry

2.4.9.0-beta

Technical

  • Added back json utilities (ILGsonHelper and 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 difficulty
      {
        "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"
      }
      
      Items are progressively purged the closer to spawn the loot generates. At start_range the survival chance is multiplier_at_start, at end_range it is 1. apply_to_damageable damages 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 (tag minecraft: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 (tag minecraft: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_PROVIDERS to 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.computeFoodFormula using EvalEx
  • Added back all the events

2.4.4.0-beta

Technical

  • Added back feature_enabled neoforge condition and loot condition

2.4.3.0-beta

Technical

  • Added back PlayerUseItemMovSpeedEvent and PlayerSprintEvent

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 /insanelib command, 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

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.
  • 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. in data/<namespace>/item_definitions/strong_diamond_sword.json will 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"
                    }
                ]
            }
        }
    }
    

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 IdTagValue as ObjTagValue
  • 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 ILModConfig to 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 ILModConfig constructor
        public 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");
        }
      
      Features in single module mods can now omit the module parameter in @LoadFeature
  • 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_type tag, neoforge already does that with neoforge:spawn_type NBT 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)

2.4.9.1-beta

beta14 марта 2026 г.

2.4.9.1-beta

Technical

  • Added JsonFeature#loadAndReadJson overloads for specifying the registry

2.4.9.0-beta

Technical

  • Added back json utilities (ILGsonHelper and 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 difficulty
      {
        "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"
      }
      
      Items are progressively purged the closer to spawn the loot generates. At start_range the survival chance is multiplier_at_start, at end_range it is 1. apply_to_damageable damages 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 (tag minecraft: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 (tag minecraft: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_PROVIDERS to 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.computeFoodFormula using EvalEx
  • Added back all the events

2.4.4.0-beta

Technical

  • Added back feature_enabled neoforge condition and loot condition

2.4.3.0-beta

Technical

  • Added back PlayerUseItemMovSpeedEvent and PlayerSprintEvent

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 /insanelib command, 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

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.
  • 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. in data/<namespace>/item_definitions/strong_diamond_sword.json will 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"
                    }
                ]
            }
        }
    }
    

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 IdTagValue as ObjTagValue
  • 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 ILModConfig to 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 ILModConfig constructor
        public 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");
        }
      
      Features in single module mods can now omit the module parameter in @LoadFeature
  • 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_type tag, neoforge already does that with neoforge:spawn_type NBT 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)

2.4.9.0-beta

beta13 марта 2026 г.

2.4.9.0-beta

Technical

  • Added back json utilities (ILGsonHelper and 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 difficulty
      {
        "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"
      }
      
      Items are progressively purged the closer to spawn the loot generates. At start_range the survival chance is multiplier_at_start, at end_range it is 1. apply_to_damageable damages 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 (tag minecraft: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 (tag minecraft: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_PROVIDERS to 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.computeFoodFormula using EvalEx
  • Added back all the events

2.4.4.0-beta

Technical

  • Added back feature_enabled neoforge condition and loot condition

2.4.3.0-beta

Technical

  • Added back PlayerUseItemMovSpeedEvent and PlayerSprintEvent

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 /insanelib command, 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

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.
  • 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. in data/<namespace>/item_definitions/strong_diamond_sword.json will 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"
                    }
                ]
            }
        }
    }
    

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 IdTagValue as ObjTagValue
  • 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 ILModConfig to 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 ILModConfig constructor
        public 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");
        }
      
      Features in single module mods can now omit the module parameter in @LoadFeature
  • 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_type tag, neoforge already does that with neoforge:spawn_type NBT 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)

2.4.8.0-beta

beta8 марта 2026 г.

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 difficulty
      {
        "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"
      }
      
      Items are progressively purged the closer to spawn the loot generates. At start_range the survival chance is multiplier_at_start, at end_range it is 1. apply_to_damageable damages 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 (tag minecraft: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 (tag minecraft: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_PROVIDERS to 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.computeFoodFormula using EvalEx
  • Added back all the events

2.4.4.0-beta

Technical

  • Added back feature_enabled neoforge condition and loot condition

2.4.3.0-beta

Technical

  • Added back PlayerUseItemMovSpeedEvent and PlayerSprintEvent

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 /insanelib command, 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

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.
  • 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. in data/<namespace>/item_definitions/strong_diamond_sword.json will 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"
                    }
                ]
            }
        }
    }
    

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 IdTagValue as ObjTagValue
  • 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 ILModConfig to 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 ILModConfig constructor
        public 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");
        }
      
      Features in single module mods can now omit the module parameter in @LoadFeature
  • 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_type tag, neoforge already does that with neoforge:spawn_type NBT 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)

2.4.7.1-beta

beta7 марта 2026 г.

2.4.7.1-beta

Technical

  • Fixed self() methods not being @Unique

2.4.7.0-beta

Technical

  • Added ItemComponentsReloadListener.PROGRAMMATIC_PROVIDERS to 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.computeFoodFormula using EvalEx
  • Added back all the events

2.4.4.0-beta

Technical

  • Added back feature_enabled neoforge condition and loot condition

2.4.3.0-beta

Technical

  • Added back PlayerUseItemMovSpeedEvent and PlayerSprintEvent

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 /insanelib command, 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

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.
  • 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. in data/<namespace>/item_definitions/strong_diamond_sword.json will 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"
                    }
                ]
            }
        }
    }
    

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 IdTagValue as ObjTagValue
  • 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 ILModConfig to 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 ILModConfig constructor
        public 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");
        }
      
      Features in single module mods can now omit the module parameter in @LoadFeature
  • 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_type tag, neoforge already does that with neoforge:spawn_type NBT 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)

Совместимость

Minecraft: Java Edition

1.21.x1.20.x1.19.x1.18.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Создатели

Детали

Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:3 года назад
Обновлён:4 дня назад
Главная