Repository navigation
Writing Your Own Events
Every NeroEvents event is a JSON file in a data pack, so a server owner can tune the shipped events, switch them off or add new ones without writing code. This page is the short guide. The full reference — every field, every payload setting and a complete example for each event type — is EVENT-DEFINITIONS.md.
<world>/datapacks/my_events/
pack.mcmeta
data/my_events/neroevents/events/night_drop.json
The file's id is its namespace and path: my_events:night_drop. The shipped events live in the
neroevents namespace (for example neroevents:core/supply_drop); a file with the same namespace and
path in your pack replaces the shipped one.
A night-time supply drop for busy servers:
{
"type": "neroevents:supply_drop",
"category": "reward",
"display": {
"title": "event.my_events.night_drop.title",
"what_to_do": "event.my_events.night_drop.what_to_do",
"announce": "event.my_events.night_drop.announce"
},
"weight": 4,
"cooldown_ticks": 72000,
"announce_ticks": 3600,
"duration_ticks": 12000,
"location_public": true,
"conditions": {
"dimensions": ["minecraft:overworld"],
"min_online": 3,
"time_of_day": { "from": 13000, "to": 23000 }
},
"bounds": { "kind": "radius", "radius": 96 },
"payload": { "tier": 2, "loot_rolls": 3 },
"rewards": {
"budget": 400,
"lines": [
{ "kind": "currency", "amount": 200 },
{ "kind": "xp", "amount": 200 }
]
}
}-
typeis what the event does. The types areneroevents:supply_drop,meteor_shower,debris_crash,solar_storm,planetary_storm,pirate_raid,alien_invasion,boss,market_shock,faction_waranddebug_marker. A type whose mod is not installed does not exist, and a definition using it is skipped. -
categorydecides which switches and limits apply (reward,hazard,combat,raid,invasion,boss,economy,war). An event that changes blocks must say"destructive": true, and a destructive event can never skip the vote. -
weight(0 to 1000) is how often the scheduler picks it;0means only an operator starts it. - Times are in ticks: 20 = 1 second, 1200 = 1 minute, 72000 = 1 hour.
The display entries are translation keys. Put them in a resource pack for your players
(assets/my_events/lang/en_us.json):
{
"event.my_events.night_drop.title": "Night Drop",
"event.my_events.night_drop.what_to_do": "Find the pod in the dark and open it first.",
"event.my_events.night_drop.announce": "A supply pod is coming down in %1$s in about %2$s min. %3$s",
"event.my_events.night_drop.todo": "Find the pod — %s"
}In announce, %1$s is the dimension, %2$s the minutes until it starts and %3$s where it is. The
optional .todo line is the short instruction on the console and the HUD; %s is the time left.
-
/reload. -
/neroevents list— your event is listed; the skipped count tells you if a file was rejected. -
/neroevents preview my_events:night_drop— every scheduling rule with a tick or a cross, a sample place (or which protection refused one), whether it would open a vote, its reward budget and every warning about the file. -
/neroevents start my_events:night_dropin a test world.
A file with a mistake never stops the server: the log names the file and the key. A missing required field, an unknown type or a payload value outside its range skips the file; an out-of-range optional field falls back to its default with a warning.
Your events follow every rule the shipped ones do: the kill switches, the protection rules, the calm window, the concurrency caps and the daily reward budget. See Protection and fair play.
- How events work
-
Configuration —
schedulerBands,eventsDisabled,schedulerDefinitionsCap