Skip to main content

The file

On the first start, config.lua is copied from config.example.lua. Edit config.lua only: updates never overwrite it.
  • A key you remove uses its default. Tables merge per key, lists replace: spawn = { points = { ... } } replaces every spawn point and keeps spawn.default.
  • Every value is checked when the resource starts. Every error is logged with its path, then the resource stays idle:
  • The file runs in a sandbox: vectors, math, string, table, tonumber, tostring, type, pairs and ipairs.

Creation form

A field is { name, type, label?, min?, max?, options? }. Without label, the page shows the locale entry fields.<name> (see Language). name MUST be camelCase and unique. The page checks the same rules live, and the server checks them again.
config.lua

Scene

An animation is { dict = '...', name = '...', flag = 1 } or { scenario = 'WORLD_HUMAN_SMOKING' }.
Stand where each character should stand and use your position as the slot’s coords. Put the camera a few meters in front, facing them: its rotation.z is the heading it looks at.

Spawning

See Spawning for the rules.

Isolation and players

Cinematic

See Cinematic for each moment and to write your own intro.

Language

Every text comes from locales/<code>.json, in ug-lib’s language (settings.locale of ug-lib). English (en) and Portuguese (pt) ship with the resource. A key missing in your language falls back to English. A label in config.lua wins over every locale, for servers with one language. To add a field or a spawn point in several languages, leave label out and add its key to each locale file. Without either, the page shows the field name or the spawn point id. To add a language, copy locales/en.json to locales/<code>.json and translate the values. locales/*.json is already in files {}.