# Level settings Every level has one set of global settings: its name, the TestLevel chapter it goes into, the size of the grid, the death plane and a few engine flags. You edit them in the **Level settings** dialog; all values are also visible in the Inspector. ## Opening the settings * **Level → Level settings…** opens the dialog. * The **Level settings** node at the top of the Outliner selects the settings, so the Inspector shows them as normal properties (including the lighting values used for brushes, see [below](#settings-in-the-inspector)). Clicking **OK** applies all changes as one undo step called *Level settings*; **Cancel** changes nothing. ![The Level settings dialog of Village chapter 1](img/env_settings.jpg) ## Level | Field | Meaning | |---|---| | **Name** | Shown in LlamaMod's mod list and on the loading screen. | | **Author** | Your name, shown in LlamaMod. | | **Description** | A few sentences for the mod list. | | **Project** | *new level* or *changes to an original level* (read only). | | **Base level** | The original level the project is built on – it provides the object code, textures, sounds, sky and music (read only). | | **TestLevel chapter** | New levels only: the chapter of world 9 (TestLevel: 32–49, or 1) the level replaces when its mod is on. Chapters 2–31 are not offered: the game would store this level's coins over other game data. | Below the chapter field the dialog lists which chapters other level projects in your `levels` folder already use, so you can pick a free one. Each level needs its own chapter; chapter 1 is also used by LlamaMod's Test World mod. Players can change the chapter later in the level mod's options in LlamaMod (see [Sharing levels](17-sharing.md)). ## Base level The base level is chosen when you create a level (**File → New level…**) and cannot be changed afterwards, because the project stores only the differences to it. It decides: * which **object types** you can place – only types whose code is in the base level exist (a Llama, coins, the enemies of that world …); * the **textures** you start with, the **sky** models, sounds, the default fog and music (its start zone) and the sun (its directional lights); * the engine data layout (the read-only feature flags below). For new levels the default base is Village chapter 1, which has the widest choice of objects. ## Grid | Field | Meaning | |---|---| | **Width (cells, x)** | Columns. Growing adds cells in the east. | | **Height (cells, z)** | Rows. Growing adds cells at the far end (higher z). | The note shows the current size and the minimum the content needs – you cannot shrink the grid below what the level uses. New cells get visibility region 0 (see [Visibility regions](13-visibility.md)). > **Engine limit:** tiles, objects and teleport targets must stay inside the grid. Collision is > looked up per grid cell, so geometry outside it has no collision. ## Death plane The death plane is an invisible floor with collision material **30**: touching it, or falling below it, costs the llama a life (it respawns at the last checkpoint). | Field | Meaning | |---|---| | **Height** | Height of all death planes of the level. Changing it moves the death-plane and sea brushes and, in original levels, the "no floor" tiles (material 30) together. | | **Add a death plane over the whole grid** | Only shown when the level has none: adds one death-plane brush covering the grid. | The note lists the death planes found (brushes and no-floor tiles). **Geometry → Death plane height…** does the same from the Geometry menu. ## Feature flags The *WFPC* value of the level is a set of engine flags, shown as check boxes with their hex value: | Flag | Meaning | Editable | |---|---|---| | `0x00000010` | MAP has a path buffer size (block 14) | no (layout) | | `0x00000100` | STPC has an extra model block | no (layout) | | `0x00000800` | Fog flag of the renderer | yes | | `0x00010000` | Tile swaps (doors / bridges) | no (layout) | | `0x00080000` | Script flag (read by object scripts) | yes | | `0x00100000` | TRPS chunk has extra entries | no (layout) | | `0x00200000` | MAP has a path block | no (layout) | | `0x04000000` | Path entries with an extra word | no (layout) | | `0x08000000` | Collision materials 17/18 are ignored | yes | | `0x10000000` | Two vertex colour pointer tables (light states) | no (layout) | Layout flags change how the level data is stored and are fixed by the base level, so they are greyed out. Set bits whose meaning is unknown are listed as *(unknown)* – keep them unless you know better. ## Objects | Field | Meaning | |---|---| | **Strat pool extra** | Slots for objects = this value + 30. The pool also has to hold objects that are spawned during play (projectiles, effects). Raise it if you place many more objects than the base level had. | ## Settings in the Inspector With the **Level settings** node selected, the Inspector shows the same values as properties, grouped into *Level*, *Grid*, *Objects*, *Lighting* and *Raw*. The **Lighting** group holds the lighting that brushes and meshes get when they are built: texture rotation, sun azimuth, elevation, strength and colour, sky and ground light, ambient occlusion, AO radius and shadow. The **Lighting** tab of the Environment panel can fill these in for you (option *Also light brushes* when baking, see [Baking the lighting](12-environment.md#baking-the-lighting)). ![The level settings shown as properties in the Inspector](img/ui_settings.jpg)