Environments
The three-environment model and how it lets you promote config safely from dev to production.
An environment is a named bucket of configuration inside a project. Variables, groups, permissions, addons, and servers all belong to exactly one environment.
Every Emrald project ships with three fixed environments:
| Slug | Default name | Role |
|---|---|---|
production | Production | The live config players hit. The source of truth. |
staging | Staging | A pre-prod copy where you test changes before promoting them. |
development | Development | Your sandbox. Break things freely. |
You cannot add or delete environments — the set is fixed at project creation. You can only rename them and change their color.
The inheritance chain
Environments form a parent → child chain:
Production ◀── Staging ◀── Development
(root) (child) (grandchild)- Production is the root — it has no parent and is the source of truth.
- Staging inherits from Production — anything Staging doesn't override falls back to Production.
- Development inherits from Staging — same idea, one level down.
This means you can experiment in Development, validate in Staging, then merge the changes back up to Production when ready. The reverse also works: if you want a hot-fix from Production reflected in Staging, you can merge it down.
What lives inside an environment
| Category | Per-env? | Notes |
|---|---|---|
| Variables | Yes | Overrides on gamemode/addon-declared keys. See Environment variables. |
| Groups | Yes | In-game player roles. Master + Default always exist. See Groups. |
| Permissions | Yes | In-game capabilities granted to groups. See Permissions. |
| Addons | Yes | Installed addons enabled in this env. Each env can run a different addon set. |
| Servers | Yes | Dedicated server instances. A server belongs to exactly one env. |
Navigating environments
From your project, click Environments in the left sidebar. You'll see the three environments laid out as cards with arrows showing the inheritance:
[ Production ] ─── 4 changes ───► [ Staging ] ─── 1 change ───► [ Development ]
12 vars 13 vars 14 vars
6 perms 6 perms 7 perms
3 addons 3 addons 3 addonsThe numbers between cards are the change counts — how many overrides differ from the parent. Click them to jump straight to the diff view. See Changes for the merge workflow.
Per-environment workspace
Click any environment card to open its detail view. You'll find five tabs at the top:
| Tab | Default for | Purpose |
|---|---|---|
| Changes | Staging, Development | Diff vs parent — what overrides this env carries |
| Variables | Production | The config catalog with current overrides |
| Permissions | — | Group → permission grants |
| Groups | — | In-game player roles |
| Addons | — | Installed addons (browser or manual) |
Production opens on Variables by default (no Changes because it has no parent). Non-prod envs open on Changes so you immediately see what diverges from upstream.
Customizing names and colors
In the Environments tab, click the colored dot on any card to pick a new color (used for badges across the panel). To rename, click the env card → use the edit button next to its name on the detail page.
Renaming changes only the display name. The internal slug (production/staging/development) is immutable — external systems and game configs depend on it.
Next steps
- Create a server inside an environment
- Environment variables — override gamemode defaults
- Changes — promote config between environments