Sign in as the admiral to enter.
Break-glass password sign-in:
Maintenance actions for tidying up leftover data after system changes. These are safe to run any time and only touch stale records.
Removes campaign components from every account whose id is no longer in the master component library — leftovers from an earlier catalog. They're invisible in the ship designer (the catalog filters them out) and only clutter inventory and reward weighting.
Cancels open or running AI matches that are not attached to a StarMap encounter. StarMap battle attempts and player-vs-player matches are left alone; stored game logs are preserved.
Re-titles battle encounters to match the latest edits to
battle_name_pool.csv, without regenerating the whole world (placement, rewards, and AI
seats are untouched). Use the first button after editing the CSV; use the second to push those new
names onto players' already-generated maps — only tiles that haven't been fought yet are touched, so
no one's in-progress or completed battles change names underneath them.
Card side text uses the keyword language (e.g. Move 2,
Targeted Attack Damage +1, Turn Left, Move 3). Saving validates the whole
deck set and reports the exact problem if a card can't be parsed. Changes apply to new games.
Players' starting cards now come from the component library — a
ship's deck is built from the components placed on it. Edit those under
Component library above. base_deck.toml remains only as the seed
template for the default components and is no longer edited here.
A keyword is a regex over normalized card text plus a Python snippet that assigns
a FaceSpec to spec. Custom keywords run before the built-ins, so you can
override existing text. Use Copy on any keyword to start a new one from its implementation.
Pit the AI captains against each other with no human at the wheel. Single battles are replayable; batch runs create aggregate analysis entries for deck lethality, complexity, and AI-style balance.
| When | Kind | Deck | AI level | Damage | Kills | Vaults | Winner | Total VP | Rounds | Actions |
|---|
The master library of ship components and their matching starting-deck cards. Pick a component below to edit it in the breakout editor above the list. The card row is the same editor used by the normal Deck Editor: each side's type, face text, alternate text, and orientation choices run through the same keyword/mod system. Each component has a 1- or 2-point cost and a reward Tier (0–4). Tier 0 components are starter-only — seed them into starting decks; players never win more of them. Tiers 1–4 are the rewards for beating a Deck Hand, Buccaneer, Pirate King, and StarBreach boss respectively. New players start with one copy of every component/card on the admin's starting ship; the master library is also the pool future rewards draw from.
The campaign currency: battles, boss fights, and salvage fields pay it out; StarDocks spend it on components and textures. Nothing here is applied automatically — a component, texture, or encounter with no configured StarCoin value simply pays or sells nothing. Default values (entry cost, per-tier component cost, texture cost, salvage payout, dock stock) live on the Account & Project tab's Site settings, alongside the other play limits.
Prices every component/texture with no StarCoin cost at the defaults above, stamps salvage/boss/dock config onto encounters missing it, and rewrites already-generated captains' map tiles to match. Never overwrites a value someone already set. Safe to re-run — a second push reports nothing left to do.
Testing tool: credits the currently signed-in profile (not the login account) with StarCoins, same split as the component/texture award tools on the StarDock tab.
Every player- or admin-uploaded hull texture and decal mirrors here automatically when that ship is saved (a moderation view — the ship itself keeps its own copy regardless), including an AI opponent's ship saved through the admin Ship Designer. Check Free and click Save Page to publish assets into the gallery StarDock's "📚 Browse…" picker offers to every captain (one click applies every row currently on screen); check Pool or use ⧉ Clone to pool on a Custom row to make a texture winnable without publishing it as Free; deleting a mirrored asset also clears it from the live ship.
| Name | Owner | Ship | Free | Pool | ⭑ Cost | Actions |
|---|
| Name | Owner | Ship | Free | Actions |
|---|
Every account on the server. Ban name adds the player's current display name to the illegal list — they're hidden and unmatched immediately, and forced to pick a new name next time they reach the lobby. The toggles control player matchmaking and leaderboard listing per account; names that trip the profanity screen are hidden/unmatched automatically until renamed.
| Username | Display Name | W/L | Battles | Enlisted | Status | Matchmaking | Leaderboard | Actions |
|---|
Latest rating per player is shown in the list. Click a player to scan their submitted review text and timestamps.
| Player | Latest | Replies | Submitted |
|---|
This mirrors docs/context/ai_changelog.md. AI agents should append a dated summary after every repo update.
Loading...
Checking analytics configuration…
This controls whether StarShot broadcasts events. PostHog filters only affect which received events you see there; they do not stop StarShot from sending.
Pulls the latest code from GitHub; the app auto-reloads once the pull lands.
Zips the current project source (excluding databases, secrets, and caches).
Admin rights live on the account. They're granted to a verified Google or
Discord identity listed in STARSHOT_ADMIN_EMAILS, so admin
sign-in inherits that provider's two-factor authentication. The last
admin can't be revoked.
Signing out everywhere else is how you evict a stolen session. This browser stays signed in.
Only for when the identity provider is unreachable. Use at least 16 characters (or 12 with a mix of upper, lower, digits, and symbols). Saving it signs out every other device.