Huntera's bestiary as the game statblocks it — 116 rows on the capture being
served, 113 of them creatures the game statblocks and 3 of them boss doors'
bosses, which it statblocks nowhere. ?filter[is_boss]=false is the old 113.
The loot table is opt-in here and comes unasked on the detail route. Ask for
it with ?include=loot.item and every creature carries its lines, each line
naming the item it drops. It is left out by default because it was three
quarters of a page's bytes — 55,575 against 14,585 for a page of 25 — and a
client that only wants statblocks should not pay for it.
resistances gives a signed percentage per element, negative being a
weakness, and ?filter[weak_to]=fire and ?filter[resists]=fire are the
two queries that read it. Both take any of the nine elements this API
prices damage in — physical, energy, earth, fire, lifedrain,
ice, holy, death, manadrain — the same nine the item catalogue's
filter[resists] takes, because one enum names the columns on both tables.
Eight of them can match a creature. manadrain is an item's alone: the
capture's creature statblocks name eight element spellings across all 113
rows and that is not one of them, so ?filter[weak_to]=manadrain is a
valid query that answers nothing, and resistances never carries the key.
A creature the capture recorded no figure for is in neither answer, because
a null is not a zero.
meta.unresolved_references is how many creatures the capture's own tracks
name and this table has no row for. Two numbers and not one:
by_key counts the creatures referenced by the key the game files them
under — 27 against 113 captured at the time of writing, 24 of them from
prey groups and three from a boss door — and by_name counts those
referenced by name, 60, every one of them a boss on an arena pit's
ladder.
by_name was 6 and is 60, and the capture changed rather than the
game. The six were the pits' final bosses, which was every arena
reference the capture held: the committed dump of that panel had been taken
with no pit selected, so the ten-rung ladder behind each one was read by
nothing. It is read now, and the six are its six tenth rungs. A client that
stored the old figure is reading a number that was true of the capture and
never of the game.
Do not add them. Nothing in the capture establishes whether one of the
60 names is one of the 27 keyed creatures or a 28th, so 87 would be an
assertion nobody measured. This shipped as a single number and became two
the moment a track started referencing creatures by name; the same will
hold for any third way of naming one.
The game publishes no statblock for any of them, so they cannot be served;
what the field buys is that a client asking for the bestiary is told the
bestiary is short rather than left to assume it is whole.
Where a creature turns up is opt-in the way its loot is: ?include=hunts,
preyGroup, quests and bosses answer which places field it, which prey
group offers it, which quests count kills of it and which boss doors demand
them. Every one of the 113 bestiary creatures is fielded by a hunt — none of the
3 bosses is, a boss being behind a door rather than on a hunt — 80 of the 104 prey
entries resolve to one, and the quest and boss edges are narrow: 12 creatures and 6.
Four fields moved into two objects, which is a breaking change on this endpoint.
bestiary_class is bestiary.class and is a {slug, name} pair rather than a bare
string; kills_required is bestiary.kills_required; outfit_id is outfit.id and
outfit_colors is outfit.colors. Nothing was renamed beyond that and no value
changed. bestiary holds what describes the Bestiary entry rather than the creature,
which is what Tibia's own group of that name holds; outfit holds the looktype and the
colours that recolour it, which are meaningless apart. ?filter[bestiary_class]= is
unchanged and takes either spelling.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||