#Admin & Tools
#Who counts as an admin
AdminService.isAdmin grants access to Config.Admin.UserIds ({ [3637282149] = true }) and, when Config.Admin.ALLOW_PLACE_OWNER is true, to the place owner. ALLOW_IN_STUDIO keeps the console usable during development.
| Setting | Value |
|---|---|
MAX_COMMAND_LENGTH | 160 characters |
MAX_LOG_LINES | 80 lines kept in the console panel |
| Rate limit | adminCommand — 12 calls per 5 seconds |
Commands are typed into the in-game console (StarterPlayerScripts.UI.Panels.Admin), sent through the adminCommand action and executed by AdminService.execute.
#Commands
| Command | Usage | Description | ||
|---|---|---|---|---|
help | help | List commands | ||
stats | stats | Server status: players, bases, nests, active guardians, DataStore availability | ||
speed | speed <amount> [player] | Sets Speed | ||
cash | cash <amount> [player] | Adds money | ||
testanim | `testanim <pet> [idle\ | walk] [loops]` | Previews a pet animation (testanim off clears) | |
give | give <petId> [weight] [mutation] | Creates a pet | ||
egg | egg <petId> | Plants a growing egg in your base | ||
zone | zone <id> [player] | Teleports to a zone | ||
unlockall | unlockall [player] | Sets Speed to the last zone's requirement | ||
pen | pen <level 0-11> [player] | Sets the pen level | ||
treadmill | treadmill <id> | Grants a treadmill | ||
trail | trail <id> | Grants a trail | ||
discover | `discover <petId\ | all>` | Registers Index discoveries | |
clearpets | clearpets | Removes all of your pets | ||
resetnests | resetnests | Resets every nest immediately | ||
seed | seed <number> | Deterministic RNG (Studio only) | ||
flag | `flag <name> <on\ | off>` | Toggles a feature flag at runtime | |
tutorial | `tutorial <reset\ | skip> [player]` | Resets or fast-forwards the tutorial | |
datastore | datastore | Runs the DataStore read/write self-test | ||
save | save [player] | Forces a profile save | ||
bring | bring <player> | Brings a player to you | ||
goto | goto <player> | Teleports you to a player | ||
kick | kick <player> [reason] | Kicks a player (never another admin) | ||
list | `list <pets\ | zones\ | flags>` | Lists ids |
#Tools
Features.Tools.GIVE_ON_SPAWN hands out the bat and the bear trap at spawn. Both are client-driven and validated on the server.
| Bat setting | Value |
|---|---|
COOLDOWN | 1.2 s |
RANGE | 10 studs |
CONE_DOT | 0.35 (hit cone) |
KNOCKBACK | 45 studs |
OVERLORD_DAMAGE | 100 |
Damage, knockback and stun per bat come from Config.Bats — see the table in Index, Rewards & Leaderboards.
| Bear trap setting | Value |
|---|---|
MAX_PLACED | 3 |
STUN_SECONDS | 7 |
REQUIRES_CARRIED_EGG | true |
REQUIRES_CHASED | true |
BLOCKED_IN_SAFE_ZONE | true |
INFINITE_SUPPLY | true |
| Arm delay / lifetime / trigger radius | 1 s / 600 s / 2.5 studs |
ToolService exposes placeTrap, pickUpTrap, stepTraps, swingBat, knockback and refreshBat, and keeps a per-player per-tool cooldown table (__resetCooldowns clears it for tests).
#Anti-abuse
Config.Security is the server-side guard rail. Every remote action passes through Guard.checkRate and suspicious input calls Guard.flag, which accumulates on the player record.
| Guard rail | Value |
|---|---|
| Rate limits | per action, mostly 3–15 calls per 5 seconds (fusion 4, growAll 3 per 10 s, sellAllPets 2) |
MAX_STRING_LENGTH | 64 characters |
MAX_TABLE_ENTRIES | 32 entries per request |
SUSPICION_KICK_THRESHOLD | 400 |
SUSPICION_LOG_INTERVAL | 30 s |
Guard also owns the shared RNG (Guard.number, Guard.weighted, Guard.random), the deterministic Studio seed (Config.RNG.STUDIO_SEED) and uid generation, which is what makes the test harness reproducible.
#Test harness
Services.TestHarness (~2,000 lines) exercises data, economy, growth, hatching, fusion, index, tools, events and the feature modules. Run it from Studio with the SAE_RunTests attribute on Workspace (optionally naming a section) or through SAE_TestApi:Invoke("runTests", section). TestHarness.firstPlayer, findFreeEgg, fleeToPlot and plantFirstItem exist to drive the real services instead of mocks.