Become Legend

A Destiny style perks and origin traits system for tools and weapons.

A weapon perks project and framework inspired by Destiny 2 for Minecraft. Every sword, axe, pickaxe, shovel, hoe, bow, crossbow, trident and mace you find, craft, loot or trade for can roll two perks and one origin trait, so a diamond sword isn't just a diamond sword, it's your diamond sword.

Details

  • Rolled perks — two per weapon, from a pool of 60+, ranging from always-good to only-good-in-the-right-moment. Rampage stacks damage on kills. Nightstalker only works in the dark. Glass Cannon hits harder but costs you health.
  • Origin traits — a third trait tied to where or how the weapon was obtained. A pickaxe crafted in the Badlands might carry Mesa and drop bonus gold from ore. A weapon taken from a mob might be Bloodbound to that creature.
  • Material-locked perks — a few perks only roll on one material. A wooden sword can splinter into a bleeding wound; you'll never see that on netherite.
  • Synergies — perks and origins can share themes (fire, crowds, low health…).
  • The Arsenal — press K to inspect every weapon you're carrying, or browse the Codex for every perk and origin in the game with plain-English descriptions.

Requirements

  • Minecraft 1.21.1
  • NeoForge 21.1.x

Config

config/becomelegend-common.toml — roll chance, perks per item, whether origins roll, and whether old/unrolled items get picked up automatically. Every perk can be disabled if you find them too strong or it doesn't fit your mod list.

Become Legend is a fan-made project inspired by Destiny 2. It is not affiliated with or endorsed by Bungie.


🛠️ Building on the framework The extension API is fully public in the compiled jar. This section is the documentation for it.

Setup — reference the jar as a compile-time dependency in your own NeoForge mod:

dependencies {
    compileOnly files('libs/becomelegend-1.0.0.jar')
}

Registries — register into the shared pools like any NeoForge registry:

DeferredRegister<Perk> PERKS = DeferredRegister.create(PerkRegistries.PERK_KEY, "myaddon");
DeferredRegister<OriginTrait> ORIGINS = DeferredRegister.create(PerkRegistries.ORIGIN_KEY, "myaddon");
// register both to your mod event bus as usual

The quick way — PerkBuilder:

PERKS.register("frostbite", () -> PerkBuilder.create(WeaponCategory.MELEE, 8)
        .damageWhen(30, (attacker, target) -> target.isFullyFrozen())
        .provides("cold")
        .build());

Restricting to specific gear:

PERKS.register("splinter_frost", () -> PerkBuilder.create(WeaponCategory.ALL, 8)
        .materials("wooden")   // or .onlyOn(ItemFilter.tag(...) / .items(...) / .material(...))
        .onHit((attacker, weapon, target, source, dmg) -> { /* ... */ })
        .build());

WeaponCategory has SWORD, AXE, PICKAXE, SHOVEL, HOE, BOW, CROSSBOW, TRIDENT, MACE, plus the grouped sets ALL, MELEE, RANGED, ATTACK, GATHERING, HANDHELD.

Full control — extend Perk or OriginTrait directly and override any hook from Trait: onApplied, addAttributeModifiers, modifyDamageDealt, onHit, modifyDamageTaken, onDamageTaken, onProjectileLaunched, onKill, modifyExperience, onBlockBroken, modifyBreakSpeed, onHeldTick.

Useful statics on TraitHelper: chance, repair, duplicateDrops, stacks/addStack, isDark, isDaylight, countHostiles, isAfflicted, cooldownReady/startCooldown, isProjectileHit, isHeadshot, isSmash, aoeTargets/isAoeTarget, sharedTheme/synergiesOf/pairsWith/themeName.

Origin sources — pure JSON. Drop a file at data/<yournamespace>/becomelegend/origin_sources/<name>.json:

{
  "origin": "myaddon:frostbitten",
  "priority": 10,
  "weight": 20,
  "biomes": ["#minecraft:is_taiga"],
  "methods": ["crafted", "chest_loot"],
  "items": ["#becomelegend:material/wooden"]
}

Supported filters: methods, biomes, dimensions, loot_tables, entities, min_y/max_y, categories, items.

New weapon categories or materials for modded items — also no code. Add your item to data/<yournamespace>/tags/item/category/<name>.json or .../material/<name>.json. Vanilla materials already tagged: wooden, stone, iron, golden, diamond, netherite.

Become Legend Team

profile avatar
  • 2
    Projects
  • 59
    Downloads

It was my name on D2, if you're wondering.

Donate

More from rawrXDnuzzlesyou

  • Plentiful Poultry project image

    Plentiful Poultry

    Seven kinds of realistic backyard birds, each with several breeds and a separate look for males, females and chicks

    • 25
    • October 14, 2026
  • Plentiful Poultry project image

    Plentiful Poultry

    Seven kinds of realistic backyard birds, each with several breeds and a separate look for males, females and chicks

    • 25
    • October 14, 2026