Forge Server Tools · every failure mode · guides

KubeJS recipe or tag silently does nothing

A mistyped item ID never crashes and never logs. Why these failures are invisible, and how to find them before your players do.

The failure mode nobody notices

You write a recipe, a tag, or a quest reward referencing minecraft:diamond_swrd. Nothing crashes. Nothing appears in the log. The recipe simply does not exist, and you find out when a player asks why the quest gives nothing.

This is the worst class of modpack bug precisely because it is silent. A crash tells you where to look; this tells you nothing at all.

Why it is silent

Most registry lookups resolve an ID to "absent" rather than throwing. A recipe referencing a missing item is skipped. A tag entry pointing at nothing contributes nothing. From the game's point of view nothing went wrong — you asked for a thing that does not exist, and it obliged.

Where these hide

Finding them

The reliable method is to build an index of every ID your installed jars actually register, then check everything your scripts, configs, datapacks and quests reference against it.

Two things make the difference between a useful report and noise:

Tag namespaces are not registries

forge: and c: are tag namespaces. IDs in them legitimately do not correspond to any registered item, so reporting them as missing produces pure noise. Likewise a leading # means a tag reference, not an item.

Pack Doctor does this — the free edition inventories your mods and catches duplicate jars; the full version validates every referenced ID.

Doing this automatically

Forge Server Doctor performs the whole procedure above — reads the report, finds the real cause under the wrappers, skips the vanilla frames, and names the mod jar. 24 failure modes, each with its fix. The free edition covers the six most common startup failures.