113 lines
5.4 KiB
Markdown
113 lines
5.4 KiB
Markdown
# 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.
|
||
|
||

|
||
|
||
## 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)).
|
||
|
||

|