Repository navigation
Mob Forms and Parts
TL;DR: A mob's body is a set of forms (what kind of creature it is) and parts (what it has). Forms grant parts, flags, immunities and movement style. Parts decide worn slots, which skills work, what falls off at death and what can be chopped off. A race lists forms, and a mob prototype adds or removes bits on top. Use when: you pick a race or forms for a mob, add or remove a body part, wonder why a mob cannot kick, wear a ring or leave a corpse, or read
formandpartsinmedit. Source of truth:dreamland_world/fight/mob_forms.json(the model),src/core/body.cpp(Body::resolve, steps 0 to 11),src/core/mobindexbody.cpp(resolveBody,deriveNumbers),src/bits.conf(form_flags,part_flags),plug-ins/fight/fight_death.cpp,plug-ins/movement/walkment.cpp,plug-ins/movement/exitsmovement.cpp. Verified: 2026-11-02 against dreamland_code 88da8302, dreamland_world 43880467. Formless-race rule and the meditBodyline re-verified 2026-11-05 against dreamland_code 11240f72 (resolveBody,deriveNumbers,medit.cppshow)
- A form is a named kind of body:
biped,quadruped,mammal,skeletal,hoofedand so on. The model has 27 forms. - A part is a body part bit:
head,legs,wings,claws,cold_bloodand so on. 30 parts exist. - A race (see
raceedit) lists forms. A race with aformslist uses the body model described here. A race without forms (today onlyunique) keeps an authored body, and the resolver does not run for it. Each flag set is the race's flags plus the mob's additions minus its removals, with the samereviewedgate on removals of affect, detection, immunity, resistance and vulnerability bits. The authored form and part bits are kept and the runtime rules below still read them, but no parts, slots, tricks, flag bits or movement style are derived from them. Worn slots are the race's slots. The tier does not pick off bits by count for it, but off bits a tier grants outright are added as they are (a slow mob still never turns fast). AC comes from the tier curve like for any mob, with an armor factor of 1.0. - A mob prototype adds or removes forms, parts and flags on top of its race. The XML for that is
<form add="..." del="..."/>,<parts add del/>,<act add del/>and so on. Typing a flag inmedittoggles it and the editor records the difference.
Everything is computed again each time a mob prototype is built, at boot and at done in medit.
| Group | Rule |
|---|---|
lower |
The lower body: biped, quadruped, insect, spider, snake, fish. At most one. |
upper |
The upper body, stacks on a lower body: mammal, winged, crustacean. Several allowed. |
full |
A whole body, replaces lower and upper forms: worm, blob, bird, dragon. |
functional |
Stacks freely: poison, magical, instant_decay, nonadoptable, sentient, skeletal, vampire, construct, hoofed, mist, canine, feline, amphibian, reptile. |
dragon is a full form made of quadruped, reptile and winged. skeletal brings instant_decay with it.
For one mob, Body::resolve runs these steps:
- Collect forms: the race's, plus the prototype's additions, minus its removals. Rename old forms, drop deleted ones, add implied forms. Warn when two lower bodies or a full body plus other bodies are mixed.
- Base body: a full form gives exactly its
parts_onlylist. A lower form adds and removes parts. - Hooves:
hoofedswaps feet fortwo_hooveson a biped and forfour_hooveson a quadruped (and drops fingers and claws). - Upper body: parts of all upper forms are added, then their removals are applied, then their "always" parts are added again, so the always parts win. A
mammalalways has head, arms, hands, brains, fingers, body, guts, heart, ears and eyes. - Functional forms: additions, removals, then "late removals" (
constructandmistdrop heart, brains, guts and ears after everything else, andmistdoes that for mobs only, never for player races). - The race's own part additions and removals, then the prototype's.
- Flag bits (act, off, aff, detection, imm, res, vuln) from the forms, then the bits implied by parts, then the
rideablerule, then the race's changes, then the prototype's. - Worn slots from the parts.
- Movement style.
- Armor factor.
- Derived rules (below).
An old prototype del on affect, detection, immunity, resistance and vulnerability bits is ignored unless the prototype lists that set in reviewed.
Plus means the form grants it, minus means it takes it away. off is the set of combat tricks, aff affect bits, det detection, imm, res, vuln are immunities, resistances and vulnerabilities. A form grants the bits in its aff, det, imm, res and vuln lists.
- biped: parts legs, feet. Off kick. Walks.
- quadruped: parts legs, claws, fingers, heart, guts, tail, brains, head, ear, eye. No arms, no hands. Off berserk, crush. Not kick_dirt. Moves at a trot. Its legs fill the wrist slots instead of the leg slot.
- insect: parts head, legs, eye, wings. No feet, arms, hands, fingers, ears. Off dodge, fast. Detection acute vision. Resists mental and sound, vulnerable to fire. Crawls.
- spider: parts head, legs, eye, fangs. No feet, arms, hands, fingers, ears. Off dodge. Immune to poison, resists mental, vulnerable to fire. Detection acute vision. Crawls.
- snake: parts head, brains, eye, tail, guts, heart, fangs. No feet, arms, legs, hands, fingers, ears. Off tail. Detection hidden. Slithers.
- fish: parts head, eye, guts, brains, scales, fins, tail, cold_blood. No feet, legs, arms, hands, fingers, ears. Resists cold, vulnerable to sound and energy. Swims, and cannot use the float slot.
- mammal: the human torso, see step 4. Gives the hair slot.
- winged: part wings.
- crustacean: parts eye, eyestalks, pincers, guts, shell, cold_blood. No arms, hands, fingers, head, ears, feet. Off parry. Aff slow. Resists pierce and slash, vulnerable to fire. Crawls.
- worm: only head, tail, scales, cold_blood. Off tail, no dodge. Aff slow, regeneration, blind. Resists light. Slithers.
- blob: only guts, eye, eyestalks, tentacles, cold_blood. Act sentinel. Off area_attack. Aff slow, regeneration. Immune to charm, mental, disease and sound. Resists weapon and energy damage, vulnerable to fire, cold and acid. Oozes.
- bird: only wings, legs, fingers, claws, head, brains, heart, guts, beak, eye, tail. Off fast, dodge. Detection acute vision. Resists sound, vulnerable to acid and disease. Walks.
-
dragon: off area_attack, plus the forms
quadruped,reptile,winged.
- poison: resists poison. The parts chopped off it are poisonous food.
-
magical: detection invisible. May cast and speak without being
sentient. - instant_decay: no corpse, no body parts, the items drop.
- nonadoptable: cannot be charmed, dominated or befriended.
- sentient: talks, casts, takes part in quests and random drops. Unlocks the extra slots of every part (face, tattoo slots, sheath). A sentient mob with hands can hold cards.
-
skeletal: parts lose brains, eye, guts, ear, heart, long_tongue, eyestalks, tentacles, cold_blood. Act undead. Detection life. Immune to disease, poison, negative. Resists pierce, vulnerable to holy and fire. Brings instant_decay. Shows as "skeleton" on
look. - vampire: act vampire, undead. Aff infrared. Immune to negative, charm, disease. Resists poison and cold. Vulnerable to light, holy, silver.
- construct: loses heart, brains, guts, ears (late). Immune to mental, negative, holy. Vulnerable to sound.
- hoofed: off kick, no berserk, no crush. Hooves as in step 3.
- mist: loses heart, brains, guts, ears (late, mobs only). Aff flying, pass door. Resists slash, vulnerable to lightning. Tears webs twice as easily.
- canine: parts fangs, claws, tail. Resists drowning and poison, vulnerable to fire and charm. Hair slot.
- feline: parts fangs, claws, tail. Resists cold, vulnerable to fire and drowning. Hair slot.
- amphibian: parts fins, cold_blood. Immune to drowning, resists disease, vulnerable to fire.
- reptile: parts long_tongue, scales, tail, cold_blood. Aff regeneration. Resists cold and acid.
| Old | Now |
|---|---|
undead |
skeletal |
centaur |
quadruped |
animal |
hoofed |
bird (as upper form) |
winged. bird is now a full form. |
edible |
derived (see below) |
other |
construct |
intangible |
instant_decay. The fire elemental uses mist. |
cold_blood |
now a part. Forms grant it. |
Old names still parse in files and are renamed with a warning in the log. The form bits edible and cold_blood are kept only so old race files load. Do not use them in new work.
| Part | Worn slots it gives | Also |
|---|---|---|
head |
head, neck 1, neck 2. A sentient mob also gets face and tattoo slots. | |
arms |
arms, wrist l, wrist r, shield. A sentient mob also gets tattoo slots for them. | |
legs |
legs. A quadruped's legs give wrist l and wrist r instead. | |
hands |
hands, wield, second wield, hold. | |
feet |
feet. | |
fingers |
finger l, finger r, only on a body that also has hands. | |
ear |
ears (mobs only). | |
body |
body. | Torso only. |
tail |
tail. | Implies off tail. |
tentacles |
hold. | Implies off area_attack. |
two_hooves |
hooves. | Implies off kick. |
four_hooves |
hooves, horse. | Implies off kick. |
fins |
none | Implies aff swim. |
wings |
none | Implies aff flying. |
spines |
none, and forbids body and about slots. | Implies off area_attack. |
brains |
none | Without brains the mob is immune to mental attacks. |
eye |
none | Without eyes the mob is immune to light. It does not become blind. |
heart, guts, long_tongue, eyestalks, claws, fangs, horns, tusks, scales, cold_blood, beak, pincers, shell
|
none | Used by skills, death effects and the rules below. |
Every body also has the slots light, waist, about and float (a fish has no float).
| Rule | Definition |
|---|---|
| Rideable | The form is quadruped, and also hoofed or of size large or bigger. Sets the act flag rideable. |
| Edible | Not construct, skeletal, mist, instant_decay or magical. |
| Can hold cards |
sentient and has hands. |
| Bloodless | No heart and no cold_blood part, or form skeletal, construct or mist. |
| Armor | Each form has an armor factor (default 3). The body factor is the highest of its forms and scales the armor of the mob: 1 + 0.07 * (factor - 3). A blob is 0.86, a human 1.0, a crustacean 1.49. A race without forms gets 1.0. |
Movement style follows the forms. The engine picks flying for a flying creature, riding for one with hooves, slinking for one with no legs and swimming where a mob swims. The words in the messages come from the most specific form, in this order: blob, worm, bird, snake, fish, insect, spider, crustacean, quadruped, biped. A mob with hooves that walks on its own "gallops" (four hooves) or "clatters" (two hooves). A race can override the word with moveverb.
Mechanics, apart from the words, do not change with the form. A mist mob and a flying mob move as flyers, and a fish cannot leave the water.
Verified in code:
- A
fishcannot leave water. It stops at the water's edge with a message. - A
mistcreature tears a web with twice the usual chance. -
instant_decay: the mob turns to dust and leaves no corpse. - Parts chopped from a corpse become food items. If the creature's form is
poisonthe food is poisonous. If it is not edible, the part is a trash item. - A
skeletalNPC, or any NPC with the undead act, shows as undead to someone who detects undead. - A character with infravision in a dark room gives itself away by glowing eyes only if it has
eyeoreyestalksparts. - Hooves decide the movement verb of a walking mob: galloping for four hooves, clattering for two.
- Heart and brains decide whether a mob is
bloodless.
Read from the game's skill and death scripts (described by behaviour):
-
Death. Killing blows can detach a part with 80 percent chance when the victim has any parts and is not ethereal. Slashing can cut off the head, heart, an arm, the legs, the guts or the brains. Piercing opens the heart or the guts. Blunt weapons, sound, energy and lightning can burst the brains. Cold freezes off an arm or a leg. Fire and acid have a 30 percent chance to destroy all the parts. The part falls to the floor as an item. A
bloodlessvictim spills no blood. - Chopping. A corpse keeps its part bits until they are cut off. The chop, butcher and trophy skills work only for parts the corpse still has. Slice in combat cuts off an arm.
- Kick needs legs or hooves. Bare hooves add half to the damage, and a four-hoofed kicker can follow with a double kick. Rear kick needs four hooves. Tail needs a tail. Claw needs claws, and the victim needs guts and must not be mist. Crush is used with the foot, the hoof or the whole body depending on the form. Trip needs legs on the tripper and on the victim, and a creature on four hooves can neither trip nor be tripped. Dirt kicking needs the victim to have eyes and not eyestalks. Blackjack needs the victim to have brains. Bow headshots need a head and leg shots need legs. Caltrops do not work on mist and need feet, legs or hooves on the victim. Smash picks its attack from tentacles, fins, wings, claws or tail.
- A mob must be
sentientormagicalto talk, teach, sell or serve through the standard helpers.
This second list comes from reading the game's scripts and is not exhaustive. A skill that needs a part says so in its help text.
race wolf
form sentient
part tail
reviewed aff
? form_flags
? part_flags
- The mob's race gives the starting body. Add only what makes this mob different.
-
formandparttoggle. A bit that the race gives and you toggle off is recorded as a removal. - A removal of an affect, detection, immunity, resistance or vulnerability bit works only after
reviewednames that set. - After
donethe editorshowlineBodylists the worn slots, the movement word, the armor factor and the allowed tricks.
See also: OLC-Mobiles, OLC-Other-Editors, Data-Configs, Mechanics-World.
Start here
Get running
Contribute
- Contribute
- Contributing Workflow
- Code Style
- Accessibility
- Writing Player Text
- Game Design Principles
Build areas
- Building
- OLC
- OLC Rooms
- OLC Mobiles
- OLC Objects
- OLC Resets
- OLC Line Editor
- OLC Other Editors
- Area Format
- Area Quests
- Mob Forms and Parts
Fenia
- Fenia
- Fenia Language
- Fenia Triggers
- Fenia Gotchas
- Fenia API
- Fenia Scripts
- Fenia Behaviors
- Fenia Skills and Spells
- Fenia Cookbook
- Fenia Grammar
Engine
- Engine Architecture
- Engine Time and Pulses
- Output Format
- Mechanics Combat
- Mechanics World
- Data Configs
- Item Power
Localization
Clients
More