How Creatures was built
Raw game files read
entities/**/*.jsonconfig/dialogue/*.json
Processing
Every living entity gets a page, not just ones with drops. The roster is every concrete entity variant that declares the "health" server behavior -- traders, villagers, and locusts with no drop table still show up (with an empty Drops section) rather than being silently excluded. Non-creature utility entities with no health behavior (boats, thrown projectiles, elevators, armor stands, ...) are correctly left out.
Each entity file is variant-expanded (every concrete code a variantgroups/
allowedVariants combination can produce), then: death drops and harvestable-behavior
drops are read (checking both a flat drops array and a glob-keyed
dropsByType map -- some entities only define the latter); stats (max health, weight,
hitbox size, tags) are resolved the same glob-aware way; spawn conditions are read from
server.spawnconditions/spawnconditionsByType specifically, not any
top-level field. Where a drop resolves to a "box" item using the ItemStackRandomizer
mechanism (e.g. the Jonas Parts&Frames Stack randomizer), the actual possible contents of that
box are shown as additional drop rows, not just the opaque container.
NPC dialogue (config/dialogue/*.json) is cross-referenced onto whichever entity's
conversable behavior points at that file, flattened to two facts: every line the NPC
side of the conversation can say, and every item its dialogue can hand over as a reward. The
underlying files are genuine branching state machines (condition/jump graphs) -- that graph
structure itself isn't rendered, only the flattened lines/rewards.
Tier is the highest damageTier/projectileDamageTier found anywhere in the entity's
server behaviors (its attack AI tasks), resolved for that exact variant -- e.g. drifters run 0 (surface) to 4
(nightmare). The game compares it with armor's protection tier. The Game logic (C#) table lists the
entity class, every behavior code and every aitasks[].code, linked through
apps/vs-wiki/src/ingest/csharpClassMap.json where vssurvivalmod implements them.