Entities come from three definition files, all loaded by the Morrowind game configuration:
| File | Holds |
|---|---|
Morrowind.fgd | The map itself, brush-built objects, lights and leveled lists: the TES3 records Morrobroom writes. |
Nif.fgd | Mesh properties and structural nodes, covered in NIF authoring. |
MorrowindObjects.fgd | A catalog of your load order’s records, generated by morrobroom fgd, to place as they are. |
Properties named ESM3_… become fields of the TES3 record. You rarely need to set any: an entity
with no properties compiles to something sensible.
The map: worldspawn#
Every map has exactly one worldspawn. Its brushes become one static mesh, and its properties
describe the cell the map compiles into. It needs no brushes of its own: a map built only from
brush entities and placed records, like the ones nif2map writes, still compiles into its cell,
and so does a map with no brushes anywhere, a room furnished entirely from the catalog.
| Property | Default | Effect |
|---|---|---|
ESM3_Name | the map’s name | The cell’s name. The Map-to-Engine profile starts OpenMW in the cell named after the map, so change both or neither. |
ESM3_FakeExterior | off | Show the sky, as an interior pretending to be outdoors. |
ESM3_Region | The region whose weather a fake exterior uses. | |
ESM3_HasWater, ESM3_WaterHeight | off, 0 | A water plane at that height. |
ESM3_RestIsIllegal | off | Resting here is a crime. |
ESM3_Ambient_color, ESM3_Sun_color, ESM3_Fog_color | 15 15 15 | The cell’s lighting colors. |
ESM3_FogDensity | 0 | Fog from 0 to 1. |
Built from brushes#
Select brushes, right-click, and pick one of these under Create Brush Entity. Each brush entity compiles into its own mesh, a record of its type, and a reference placing it in the cell. Brush entities also accept every property in NIF authoring.
| Entity | Record | Also takes |
|---|---|---|
world_Detail | Static | |
world_Activator | Activator | ESM3_Script |
world_Container | Container | ESM3_Script, ESM3_Encumbrance, ESM3_ContainerFlags, and up to eight ESM3_Item<n>_Id with ESM3_Item<n>_Count |
item_Misc | Miscellaneous item | |
item_Book | Book | ESM3_BookType |
item_Apparatus | Apparatus | ESM3_ApparatusType, ESM3_Quality |
item_Alchemy | Potion | ESM3_Auto_Calculate, and its magic effects |
item_Ingredient | Ingredient | its magic effects |
item_Light | Light, with a mesh built from the brushes | ESM3_Radius, ESM3_light_color, ESM3_LightFlags, ESM3_Time, ESM3_Sound, ESM3_Script |
item_Armor | Armor | ESM3_ArmorType, ESM3_ArmorRating, ESM3_Health, ESM3_Enchantment, ESM3_EnchantmentPoints, and its body parts |
item_Clothing | Clothing | ESM3_ClothingType, ESM3_Enchantment, ESM3_EnchantmentPoints, and its body parts |
The brushes of armor and clothing are the item as it lies in the world. What someone wearing it
shows comes from its body parts: up to eight slots, each an ESM3_SlotType<n> with the ID of a
body part record (BODY, made in OpenCS or taken from the game) in ESM3_male_part<n> and
ESM3_female_part<n>. A slot that names no part is left out.
Every one of them also takes these:
| Property | Effect |
|---|---|
ESM3_RefId | The record’s id. Leave it empty and Morrobroom makes one from the map’s name. Two entities with the same id are two placements of one object, built once. |
ESM3_Name | The name shown in game. |
ESM3_Model | Where the generated mesh is written, under Meshes/. By default <map name>/<id>.nif. |
ESM3_Script, ESM3_Value, ESM3_Weight, ESM3_Icon | For items: what the record says. A script is shared by every placement of that id. |
mangle | Rotation as pitch, yaw and roll, kept by TrenchBroom as you rotate the entity. The object gets the same rotation in game, its own axes included. |
Brushes in a TrenchBroom group or layer compile the same way as world_Detail: one mesh, one
static, one placement.
Placed as points#
| Entity | Compiles into |
|---|---|
Light_Point64 … Light_Point1024 | A light record and a placement, and light in the baked lightmap. The number is the radius; ESM3_Radius overrides it for both the record and the bake. Also takes ESM3_light_color, ESM3_LightFlags, ESM3_Sound and ESM3_Script. |
world_CreatureList | A leveled creature list, placed where you put it. Needs ESM3_RefId. Up to ten ESM3_Creature_<n>_Id with ESM3_Creature_<n>_PlayerLevel, plus ESM3_Chance_None and ESM3_Spawn_From_All_Levels. |
world_ItemList | A leveled item list record, not placed: put its id in a container. Needs ESM3_RefId. Items are ESM3_Item_<n>_Id with ESM3_Item_<n>_PlayerLevel. |
info_player_start | Nothing. It is a player-sized box for judging scale in the editor. |
| Anything from the catalog | A placement of that record, where you put it and turned the way TrenchBroom shows it. |
Records from the catalog#
The catalog (MorrowindObjects.fgd, from morrobroom fgd)
lists your load order’s statics, doors, containers, lights, items and leveled lists, each as a box
the size of its model. Place one and the compiler places that record: a reference in the cell,
nothing more. It writes no new record, so the entity’s other properties change nothing, and the
record stays whatever your load order says it is.
What the compiler reads is ESM3_RefId, which the catalog fills in with the record’s ID. Any
point entity with an ESM3_RefId and a class Morrobroom does not otherwise know is placed the
same way, so you can also type the ID of a record the catalog does not list.
The plugin does not name the record’s plugin as a master. OpenMW finds the record as long as a plugin that defines it is loaded.
Lights from the catalog light the game as OpenMW’s ordinary lights, but they are not in the
baked lightmap; use the Light_Point entities for light the bake should see.
Not compiled yet#
These are in the entity browser, marked “preview, not compiled” in their descriptions, and placing
one does nothing yet: the compiler prints <class> is an editor preview and is not compiled yet
and moves on.
nif_fx_fire, a planned fire preset. Its properties describe the particles, but nothing builds them yet. For fire today, place a light and a fire mesh from the catalog.- The VFX catalog (
vfx_kurp_…): previews of the effects in Kurpulio’s VFX Meshbank, for seeing what each one looks like. Turning them into meshes is not built yet.