Game settings
Per-game defaults applied when an event, bot, or grant does not specify its own value.
Every game in Kraty has a Settings page under its nav. The fields here are defaults: Kraty uses them when a specific event, bot binding, or grant does not carry its own value. Leaving a field blank means "use the platform-wide default", which lets us ship a global tweak later that picks up automatically.
Basics
Display name and URL slug. The slug is used in shareable links and the public marketing surface (when a game is opted in); changing it invalidates old URLs, so do it deliberately.
Defaults
Grant default TTL
How long a grant lives before auto-expiring, in days. Per-grant
expiresAt always overrides this. Use a short TTL (e.g. 14
days) for event rewards where players who skipped the event are
not entitled to the spoils; use a long TTL (90+ days) for
promotional and IAP-related grants.
Default bot identity pool
UUID of an identity pool. Bot bindings without their own
identityPoolId draw from this one. Pools are sets of generated
player identities that make bot rows look like real players in
leaderboards.
Default lobby fill strategy
When an auto-matched lobby hits its timeout without filling, what happens? Pick once at the game level so individual events can stay focused on their score formula and reward policy.
| Strategy | Behavior |
|---|---|
fill_with_bots | Pad up to lobby capacity with bot participants and start. |
start_short | Start the lobby with whatever players matched, even underfilled. |
wait_full | Do not auto-start; ops decides via the lobby admin surface. |
Display timezone
IANA timezone (e.g. America/Los_Angeles) used when the portal
renders timestamps.
This does not affect storage; all timestamps stay UTC server-side. This is purely a display preference.
Test environment
The Test environment card at the bottom of Settings has a
Reset test data button. Clicking it wipes every player
created by an environment=test API key for this game, along
with their attempts, grants, inventory, wallet, and leaderboard
meta. Configuration (events, items, bots, reward tables, API
keys) is preserved.
Live data (anything created by an environment=live key) is
never touched. The partition is enforced server-side: a
players column records the originating credential's environment
at row creation, and the reset only deletes rows where that column
is test. There is no way for the button to wipe production data.
Test and live are fully isolated
Environment isn't just a tag on players; the two environments run on
separate runtime data. Each event occurrence opens a test window
and a live window, so test traffic gets its own leaderboards,
lobbies, and rankings; a test player never appears on a live board and
vice-versa. Leaderboards keep one configuration but rank test and
live on separate boards, and each environment rolls its periods over
independently. The event schedule and configuration are shared (you
define an event once); only the data players generate is split. This is
what lets the Test tooling dev triggers
fast-forward your test environment without touching anything live.
Reserved for GAME_ADMIN. Audit-logged as
game.test_data.reset. The action is irreversible; Kraty
does not keep a snapshot before deletion.
Resetting a field
Each field with a stored value shows an inline reset link that removes the key from the settings blob and falls back to the platform default. Resets are audited the same as any other game update.