Kraty

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.

StrategyBehavior
fill_with_botsPad up to lobby capacity with bot participants and start.
start_shortStart the lobby with whatever players matched, even underfilled.
wait_fullDo 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.