LootJS: KubeJS Addon

LootJS: KubeJS Addon

Mod

A Minecraft mod for packdevs to easily modify the loot system with KubeJS.

Client and server Utility

396.6k downloads
29 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...
Filter channels...
  • Added matchAnyInventorySlot(itemFilter) and matchAnyHotbarSlot(itemFilter)
  • Fix loot modification being skipped when loot table doesn't contain any entries
  • Fix print method for loot tables. Will now print the entries correctly.
  • Fix matchCustomCondition and jsonFunction using wrong codec.
  • Remove addItem for loot pools. Prefer to use addEntry
  • Deprecate addTypeModifier in LootJS.modifiers and will be removed in future updates, use addTableModifier with a LootType instead.
  • Deprecate modifyLootTypeTables in LootJS.lootTables and will be removed in future updates, use modifyLootTables with a LootType instead.
  • Fix .create in loot tables event
  • Bump kubejs version
  • Add quick way to negate simple ItemFilters like tag or id filter by using !, e.g. !#c:tools
  • Fix regex handling with id filters
  • Rename removeGlobalModifier to removeGlobalModifiers in LootJS.modifiers event.

Fixes

  • Fix error Tag does not exist when using ItemPredicates with tags

Changes

  • New wiki https://docs.almostreliable.com/lootjs/
  • Now on neoforge
  • Added LootJS.loot_tables event for direct loot table modification
  • Add LootBucket as wrapper class for loot for easier execute some helper functions
  • LootEntry does not only represent single items anymore. It now represents all different loot entries vanilla minecraft has.
    • LootEntry.of(item): Single item
    • LootEntry.empty(): Empty entry
    • LootEntry.tag(tag): Tag entry
    • LootEntry.reference(lootTable): Reference to another loot table. For example, LootEntry.reference("minecraft:chests/abandoned_mineshaft")
    • LootEntry.alternative(lootEntries...): Alternative loot
    • LootEntry.sequence(lootEntries...): Sequence loot
    • LootEntry.group(lootEntries...): Grouped loot
  • Changes to LootJS.modifiers event:
    • Loot modifiers are not executed in order anymore. It will now work like a loot table. First check for conditions and if it contains matching loot, then apply all actions and then apply loot functions.
    • addLootTableModifier, addLootTypeModifier, addBlockLootModifier, addEntityLootModifier renamed into addTableModifier, addTypeModifier, addBlockModifier, addEntityModifier
    • .functions(itemFilter, (f) => {}) removed. Better to just use group now
    • Added .group((group) => {...}) or .group(itemFilter, (item) => {...}). Second one will pre-filter current loot for further modifications.
      • .group() can use .rolls(numberprovider) to execute the group multiple times
    • .pool() now actually consumes a vanilla LootPool
    • Removed addWeightedLoot(), use .pool() instead now
    • matchLoot renamed into containsLoot
    • .dropExperience can now use a number provider instead of a fixed amount
    • LootContextJS wrapper removed. Using LootContext instead but added all helper methods from LootContextJS too
  • Renamed some loot functions
  • Renamed some loot conditions
  • Changes to ItemFilter:
    • .hasEnchantments(...) only works for item enchantments now. For stored enchantments use .hasStoredEnchantments(...)
    • Removed some filters as they are no longer needed with the new data components.
    • Renamed ALWAYS_TRUE into ALL and ALWAYS_FALSE into NONE
  • Added vault, block_use and shearing LootType
  • And probably more stuff I may missed, sorry! :D Feel free to ask in our discord.

Added

  • Added randomTableBonus(enchantment, chances) for vanillas table_bonus condition

Added

  • Added LootEntry.of("#tag"), LootEntry.of("@modid") to select a random entry from a tag or modid.
  • Added LootEntry.ofJson(json) to create a loot entry from JSON to support custom entries from other mods

Fixed

  • Crash with newest kubejs version

Fixed

  • Fixed null pointer exception when using addLootTableModifier and an entity dies

Add

  • Add custom loot function customFunction(json)

Project members

Lytho

Owner

Relentless

Member

Details

Licensed LGPL-3.0-only
Published 2 years ago
Updated 2 months ago