promotional bannermobile promotional banner

EventMaker

Invisible triggers for packs — datapack/KubeJS commands, shared IDs, creative-only visibility.

Event Maker turns invisible triggers into datapack-driven events. Place walk-through volumes, or paint IDs onto normal blocks. When a player activates a gate, your commands run as that player — with multiplayer-safe one-shots built in.

Built for modpacks, adventure maps, and event servers that need scripted gates without command-block spaghetti.


Features

  • Event Trigger — no collision, invisible in Survival, cyan wireframe in Creative
  • Event Wand — inject a trigger ID onto any block without replacing it
  • Shared IDs — many blocks, one logical gate (doors, corridors, floors)
  • ID inheritance — newly placed Event Triggers reuse the last ID you set
  • Three activation modes — walk through, side touch, or step on
  • One-shot or persistent — fire once per player, or re-fire after leave + re-enter
  • Server-ready — one-shots are per player; markers stay so others can still activate
  • Datapack / KubeJS — define commands in JSON under event_trigger/
  • Admin commands — reset, check, or mark one-shot progress

Quick start

  1. Creative → Event Maker tab → place Event Trigger blocks (or use the Event Wand on existing blocks)
  2. Set an ID, e.g. welcome or mypack:arena_enter
  3. Add matching datapack data (examples below)
  4. Switch to Survival and activate the gate — commands run for that player

Event Wand

  • Shift + right-click — set the wand’s trigger ID
  • Right-click a block — assign that ID (Event Trigger, or inject onto any other block)
  • Left-click an injected block — clear the ID and outline (block stays)

Activation

Field Values Default
activation walk_through, touch, stepped_on walk_through
persistent true / false false
commands list of command strings required
  • walk_through — player enters the block volume
  • touch — player bumps the block from the sides (not from above)
  • stepped_on — player stands on top of the block
  • persistent: false — fires once per player; markers stay for everyone else
  • persistent: true — markers stay; fires again after that player fully leaves, then contacts again

Commands run as the triggering player (permission 2). Chat output is suppressed. @s is that player.


Datapack / KubeJS

Put files under:

data/<namespace>/event_trigger/

Or with KubeJS:

kubejs/data/<namespace>/event_trigger/

Run /reload after editing.

All IDs in one file (recommended)

Filename is arbitrary (e.g. events.json):

{
  "welcome": {
    "activation": "walk_through",
    "persistent": false,
    "commands": [
      "title @s actionbar {\"text\":\"Welcome!\",\"color\":\"green\"}",
      "give @s minecraft:bread 1"
    ]
  },
  "pressure": {
    "activation": "stepped_on",
    "persistent": true,
    "commands": [
      "title @s actionbar {\"text\":\"Stepped\"}"
    ]
  },
  "bump": {
    "activation": "touch",
    "commands": [
      "playsound minecraft:entity.experience_orb.pickup player @s"
    ]
  }
}

Keys become IDs in that namespace (eventmaker:welcome, …). Full namespace:path keys work too.

One file per ID

data/eventmaker/event_trigger/welcome.json:

{
  "activation": "walk_through",
  "commands": [
    "title @s actionbar {\"text\":\"Welcome!\",\"color\":\"green\"}"
  ]
}

File path is the ID. For mypack:arena_enter, use data/mypack/event_trigger/arena_enter.json.


Server commands

Permission level 2. Manage per-player one-shot progress:

  • /eventmaker reset <players> [id] — clear progress for players (all IDs, or one ID)
  • /eventmaker resetall [id] — clear progress for everyone
  • /eventmaker check <player> [id] — list consumed IDs, or check one ID
  • /eventmaker mark <players> <id> — mark an ID as already consumed

IDs accept path or namespace:path. Reset also clears contact state, so a player still standing in the gate can fire again immediately.


Requirements

  • Minecraft 1.21.1
  • NeoForge

The EventMaker Team

profile avatar
  • 1
    Followers
  • 12
    Projects
  • 3.7K
    Downloads

Programmer, Streamer, Gamer, Motorbiker

More from SemSemSemView all