GamebeastDocs
Dashboard

Configurations

Change your game's values from the dashboard without shipping an update. A configuration is a JSON document your game reads through the Gamebeast SDK. Edit it, deploy it, and every running server picks up the change.

A configuration is a JSON document of values your game reads at runtime: prices, rewards, drop rates, feature switches, event dates. You edit it in the dashboard, and when you save, connected game servers get the new values within seconds. You don't need to publish a new version of your game or restart servers.

Configurations are also what experiments change: an experiment gives different groups of players different values from the same configuration.

Try the editor

This is the dashboard's editor, running on a sample configuration. Change a value, hover a row for its ⋯ menu, drag a row by its handle to reorder it, or use Open to drill into an object. Then switch to JSON, or press Save to see exactly what would be deployed. Nothing here is saved.

No unsaved changes
OBJECT
NUMBER
NUMBER
OBJECT
2 keys
OBJECT
STRING
ARRAY
private
BOOLEAN
InteractiveThe dashboard's configuration editor. Hover a row for its menu, drag the grip to reorder, and use Open to drill into an object. Nothing is saved.

Create a configuration

Go to Configurations in the project sidebar, then:

  • Click New configuration to start from an empty document, name it, and add keys.
  • Click Import JSON file, or drag a .json file onto the list, to create one from a file. The file's name becomes the configuration's name, and the file must contain a JSON object.

A new configuration isn't saved until you click Create. It needs a name that's unique in the environment and at least one key.

Importing from Roblox

To turn an existing Lua table into a file you can import, encode it with HttpService:

local HttpService = game:GetService("HttpService")
print(HttpService:JSONEncode({
    Sizes = { Jimbo = { SizeMulti = 1 } },
}))
-- Copy the output into a .json file and import it

Roblox types that aren't JSON, like Color3, Vector3, NumberRange, and Enums, encode as null. Store them as plain values instead, for example a color as "#ff8800" or { "r": 255, "g": 136, "b": 0 }.

Edit values

A configuration is any JSON object. Each key holds one of:

TypeHoldsExample
PrimitiveA string, number, boolean, or null"Dragon Sword", 1.5, true
ArrayA list of values, including lists of objects[99, 199, 499]
ObjectMore keys, nested as deep as you need{ "coins": 50, "streak": true }

When you type a primitive, its type is inferred: 12 becomes a number, true a boolean, and anything else a string. An empty value is null. Each row shows the type it inferred as a badge (NUMBER, STRING, BOOLEAN, NULL, OBJECT, or ARRAY), so you can check it before you save. Make sure your game reads each key as the type you stored.

Hover a row to add a key below it with +, or open its ⋯ menu to:

  • Duplicate it, including everything inside it.
  • Make private or Make public. See Private keys.
  • Change type between Primitive, Array, and Object.
  • Delete it.

Drag a row by its handle to reorder it. The order is saved, and it's the order you see in the JSON. Arrays open in their own editor from the entries button, where you can add, edit, reorder, and remove values.

A key with no name is tagged missing name, and two keys with the same name are tagged duplicate. Fix those before you save.

Three views

Switch between views at the top of the editor:

  • Tree shows nested objects as a collapsible tree. Hover an object and click Open to focus on just that part of the configuration. The breadcrumb shows where you are, and the URL links straight to it.
  • List shows every value on one row with its full path, for scanning a large configuration.
  • JSON shows the whole document. Switch it to Raw to edit the text directly.

Search finds keys and values in any view. Expand all and Collapse all open or close every object. In the Tree and List views, the button opens a JSON preview next to the editor, and a dot on it means you have unsaved changes.

Review and deploy changes

Edits aren't live until you save them. While you have unsaved changes, changed keys are highlighted: green for added, amber for changed, and blue for reordered.

  • Show changes only hides everything you haven't changed.
  • Revert all changes discards your edits, after showing you what will be undone.
  • Save shows the full diff first, in a Deploy configuration? dialog. Nothing changes until you confirm.

Saving sends only the keys you changed. If a teammate changes a different key at the same time, both changes are kept. If you both change the same key, whoever saves second is told the configuration changed, and the editor reloads the latest version so you can re-apply your edit.

The main configuration

Each environment of a project has one main configuration. It's the one the SDK loads by default, and it's the one marked with a server icon in the list.

  • To choose it, open a configuration's ⋯ menu and pick Set as main configuration, or choose it under Configuration in the project's environment settings.
  • Saving the main configuration pushes it to every connected game server immediately. Saving any other configuration changes nothing in-game until it becomes the main one, or your game reads it by name.
  • The main configuration can't be deleted. Make another one main first.

Each environment has its own main configuration, so set it in each one.

Private keys

A private key is only sent to requests made with a server key. Requests made with an SDK key never receive it, so it never reaches players. Use it for values that shouldn't be visible to players, like thresholds, internal IDs, or tuning you don't want data-mined.

Mark a key private from its ⋯ menu. It's marked private in the editor, and everything inside it becomes private too.

Private keys keep values away from players, but a configuration is not a secret store. Don't put passwords or API tokens in one.

An experiment that changes a private key is only served to server keys as well.

Keys controlled by an experiment

While an experiment is scheduled or running, the keys it changes are locked in the configuration. They're shown read-only with a lock icon, and hovering the lock shows which experiment reserves the key. The lock covers the key and everything inside it. It's released when the experiment ends.

Keys an experiment doesn't touch stay editable, and your edits reach every group.

Environments

Every project has a Production environment and a development one: Studio for Roblox projects, Development for others. Each has its own separate set of configurations. Switch between them from the environment selector at the top of the dashboard.

  • Production is what your live game servers read.
  • Studio (or Development) is what the game reads while you're testing: on Roblox, when the game is running in Roblox Studio. Use it to try changes without affecting players.

To move a configuration between them, open its ⋯ menu and pick Copy to production (or Copy to studio). You'll see what will change in the destination first. If a configuration with the same name already exists there, you can choose to overwrite it.

To find an environment's name for the SDK or API, hover it in the environment selector, open its ⋯ menu, and pick Copy environment name.

Read configurations in your game

Your game reads configuration values through the SDK, and gets updates while it's running:

  • Roblox: Configs:Get reads a value by path, and :Observe or :OnChanged runs your code whenever it changes. The SDK reads your main configuration.
  • Unity: Configs.Get reads a value by path, starting with the configuration's ID: "MyConfig.PlayerSpeed". Unity can read any configuration, not just the main one.
  • JavaScript: in the browser, configs.get reads a value by path, starting with the configuration's ID, and configs.observe follows changes. On a server, configs.evaluate returns a configuration for a given player.

A configuration's ID is a short name made from its name, like economy-tuning. Copy it from the configuration's ⋯ menu with Copy ID. It changes if you rename the configuration, so update your game when you do.

When a player is in an experiment, the values the SDK returns already include their group's changes. Your code doesn't need to know about experiments.

Copy, duplicate, and export

From a configuration's ⋯ menu:

  • Duplicate opens a copy in the same environment, for you to rename and create.
  • Copy to project copies it into another project in your organization, in the environment you choose.
  • Export downloads it as a .json file.
  • Delete removes it. You can't delete the main configuration.

Ask the assistant

The AI assistant can find and explain values in your configurations, and propose edits. Every edit it proposes waits for your approval on a card showing exactly what will change. Use the Ask AI button in a configuration's header to start with that configuration, or the field you're viewing, already attached.

Permissions

ActionNeeds permission to
View configurations and export themView configurations
Create, import, duplicate, or copy oneCreate configurations
Edit and deploy changesUpdate configurations
Delete oneDelete configurations
Choose the main configurationUpdate project settings

On this page