Skip to content

trial_spawner_randomizing_processor

finnsetchell edited this page Aug 15, 2026 · 3 revisions

trial_spawner_randomizing_processor

Points a placed trial spawner at a trial spawner config, and clears the runtime state left over from the build world so every placement starts fresh.

Minimal example

{
  "processor_type": "moogs_structures:trial_spawner_randomizing_processor",
  "normal_config": "mmr:desert_mineshaft/normal",
  "ominous_config": "mmr:desert_mineshaft/ominous"
}

Fields

Field Type Required Notes
normal_config resource location yes Points at data/<namespace>/trial_spawner/<path>.json.
ominous_config resource location no Used when the spawner's ominous blockstate is set. Omit if the structure has no ominous spawners.

The config files

The configs are vanilla trial spawner configs, not an MSL format. See the minecraft wiki. They live at data/<namespace>/trial_spawner/<path>.json, so mmr:desert_mineshaft/normal resolves to data/mmr/trial_spawner/desert_mineshaft/normal.json:

{
  "simultaneous_mobs": 2.0,
  "simultaneous_mobs_added_per_player": 0.5,
  "total_mobs": 6.0,
  "total_mobs_added_per_player": 2.0,
  "ticks_between_spawn": 40,
  "spawn_potentials": [
    { "weight": 3, "data": { "entity": { "id": "minecraft:husk" } } },
    { "weight": 1, "data": { "entity": { "id": "minecraft:zombie" } } }
  ],
  "loot_tables_to_eject": [
    { "data": "mmr:desert_mineshaft/trial_spawner", "weight": 1 }
  ]
}

Version handling

The processor JSON and the config file paths are the same on every MC version MSL supports. How the config reaches the block entity differs, and MSL handles that for you:

  • 1.21 to 1.21.4 the block entity wants the config inline, so MSL loads your JSON itself and writes it into the NBT.
  • 1.21.5 and later vanilla has its own minecraft:trial_spawner registry, so MSL writes the id and lets vanilla resolve it.

One set of files works across the whole range.

Gotchas

  • The ominous blockstate comes from the build world. Set ominous on the trial spawner when you save the NBT. The processor preserves it and vanilla picks ominous_config from there. Supplying ominous_config does not by itself make a spawner ominous.
  • Runtime state is stripped. Any cooldown or spawn progress baked into the saved NBT is cleared, so a spawner you already triggered in the build world still generates unused.
  • On 1.21 to 1.21.4, a config id that does not resolve logs a warning and leaves that key unwritten rather than failing placement, so a typo shows up as a default-behaving spawner in game rather than an error at load.

See also

Clone this wiki locally