Cobblemon datapack scanner
Drop in a datapack or a mod jar and see every spawn, drop and species it defines, plus the fields Cobblemon will silently ignore. Runs entirely in this tab: nothing is uploaded anywhere.
Or drag files here. You can drop several at once to scan a whole pack folder.
No file loaded yet.
What it checks
Reading a pack is the easy half. The useful half is catching the mistakes that produce no error at all, because Minecraft's JSON parser drops any field it does not recognise and carries on. A pack with a misspelled condition loads perfectly and does nothing, which is the single most common "my custom spawns are not working" cause.
- Unknown condition fields. Checked against the real condition class, so a
weatheror a misspelledcanSeeSkygets named rather than ignored. - Entries that can never be picked. Both
weightandpercentagedefault to -1, so an entry with neither is dead. - Legacy key names.
contextandlevelRangestill work as aliases, but the current names arespawnablePositionTypeandlevel. - Species that do not exist. A typo in a
pokemonfield fails quietly. Anything outside the base game's 1,025 species is called out so you can confirm it comes from your pack rather than a slip. - Duplicate spawn ids, files with
"enabled": false, invalid JSON, and species marked"implemented": false.
Where the field names come from
The Cobblemon source, at the tag this site's data is built from. Cobblemon is not hosted on GitHub:
the canonical repository is GitLab, and the condition fields, the drop table shape and the
spawnablePositionType rename are all read from there rather than from documentation that may
have moved on. If a field is listed as valid here, a class in the mod declares it.
What a datapack needs to look like
Cobblemon reads spawn files from data/<namespace>/spawn_pool_world/ and species
from data/<namespace>/species/, with biome tags under
data/<namespace>/tags/worldgen/biome/. The namespace is yours to pick and only has to
be consistent. If the scanner reports no Cobblemon data at all, the usual cause is an extra folder level:
zipping the folder rather than its contents puts mypack/data/... in the archive, and
Minecraft will not look there.
Reading the drop numbers
Each entry has its own percentage chance, and the table has an amount.
That amount is a budget in quantity units across the whole table rather than a per-entry count, and it is
not measured in stacks, so a table listing six items with an amount of two will only ever hand out two
items' worth. A form's drop table replaces the base table completely instead of adding to it, which is
worth knowing before you wonder why a regional form drops nothing it should.
Datapack scanner FAQ
Are my files uploaded anywhere?
No. The archive is read with the browser's own file APIs and decompressed in the page, so the data never leaves your machine. There is no upload endpoint to send it to.
Can it read a mod jar as well as a datapack?
Yes. A jar is a zip, and Cobblemon addon mods put their species and spawn files in the same data/<namespace>/ paths, so the scanner treats both the same way. Large jars work too, including ones with more than 65,535 files.
Why does it say my species is not a base game species?
That is a note, not an error. It means the name is not one of the base game's species, which is expected for a pack that adds its own. It is there to catch typos, because a misspelled species name in a spawn file produces no error at all.
It found no Cobblemon data in my pack. What is wrong?
Almost always the zip has one folder too many. The archive must contain data/ and pack.mcmeta at its top level, so select the contents of your pack folder and compress those rather than compressing the folder itself.
Does it check that my datapack works with a specific Cobblemon version?
Not directly. It validates field names against one Cobblemon version, named on this page. If you are building for an older release, treat the legacy key notes as information rather than something to fix, since both spellings are accepted.