promotional bannermobile promotional banner

Meritum Engine - (For add-on creators)

Experimental
Meritum Engine is a modular achievement framework for Minecraft Bedrock add-ons. It enables developers to create customizable achievements with flexible triggers, rarity tiers, rewards, and seamless integration for building scalable progression systems.

File Details

Meritum Engine - v1.1 [ 1.21.100+ ]

  • R
  • May 13, 2026
  • 59.77 KB
  • 10
  • 26.20+19

File Name

Meritum Engine - v1.1 [ 1.21.100+ ].mcaddon

Supported Versions

  • 26.20
  • 26.13
  • 26.12
  • 26.11
  • 26.10
  • 26.3
  • 26.0.02
  • 26.0
  • 1.21.132
  • 1.21.131
  • 1.21.130
  • 1.21.124
  • 1.21.123
  • 1.21.122
  • 1.21.121
  • 1.21.120
  • 1.21.114
  • 1.21.111
  • 1.21.101
  • 1.21.100

Changelog — v1.1


Latest Update

โœจ New Features

  • Multi-category logic (logic field)
    Achievements can now define how multiple categories interact. Setting logic: "and" requires all categories to be completed before unlocking. The default behavior ("or") remains unchanged — any category completing the achievement is enough.
    registerAchievement("example.warrior", {
      logic: "and",
      category: {
        obtaining: { target: { armor: { ... } } },
        combat:    { target: { victim: "minecraft:zombie", isDead: true, ... } }
      }
    });
  • External achievement registration via script event
    Other add-ons can now register achievements into Meritum Engine at runtime, without modifying any engine file. Send a meritum_engine:register_achievement script event with a JSON payload on world load.
    MC.world.afterEvents.worldLoad.subscribe(() =>
      MC.system.sendScriptEvent(
        "meritum_engine:register_achievement",
        JSON.stringify(achievements)
      )
    );
  • Combat: origin field
    The combat category now supports an origin field to explicitly define which entity owns the achievement — the attacker or the victim. Defaults to attacker if not set.
    combat: { target: { origin: "attacker", attacker: "minecraft:player", victim: "minecraft:wither", isDead: true } }

๐Ÿ› Bug Fixes

  • Eventual: dimension check was inverted
    The condition !target?.dimension incorrectly allowed the achievement to fire in any dimension when no dimension was specified, but blocked it when one was. The logic has been corrected to target?.dimension &&, so the check is only applied when a dimension is explicitly configured.

๐Ÿ“„ Documentation

  • Eventual category description expanded
    The three supported fields (beforeTime, dimension, nextEntity) are now individually documented with their types and behavior, including the timer reset that occurs when nextEntity leaves range.
  • Mining: block exceptions documented
    The exception field in the mining target was previously undocumented. It now appears in the description with a clear explanation: any block whose typeId contains one of the listed substrings is excluded from triggering the achievement.
  • Obtaining: item + armor coexistence clarified
    The description now explicitly states that item and armor can be defined together in a single obtaining target, and that both conditions must be satisfied simultaneously.
  • Performance: flush interval specified
    The description now notes that dynamic property writes occur approximately every 10 seconds (200 ticks), instead of the vague "periodically".
  • Important Considerations: logic: "and" persistence caveat added
    Multi-category progress is held in memory only. If the player disconnects before completing all categories, progress resets on the next session.