initial commit: llamamod 0.2.0 – reverse-engineered level formats (wad, map, trak, text, stpc), python tools and notes, java mod manager (iso install, mod pipeline with exe patching, save editor, wine/windows launcher) with mods (test world, debug wireframe, mirror, randomizer, fog, cheats, intro skip, practice, free camera, boot to level, level projects) and the 3d level editor (geometry, objects, cross-world import, environment, textures, play-test, manual)

This commit is contained in:
MineTec committed 2026-11-07 08:15:40 +01:00
commit b36a366240
826 files changed
+105304

No files matched your search

+112
View File
@@ -0,0 +1,112 @@
# 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, 1–49) the level replaces when its mod is on. |
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)