Fleet · Electric Cherry
{#snippet actions()} {/snippet} {#if $fleetError} {/if} {#if !$fleet.receivedAt} {#if !$fleetError}
Loading your fleet…
{/if} {:else} {#if servers.length}
{healthy.length ? players : '—'} players online {healthy.length}/{servers.length} healthy {campaigns} active campaigns {$fleetError ? 'Reconnecting' : 'Updated'} · {snapshotAge < 60 ? `${snapshotAge}s` : `${Math.floor(snapshotAge / 60)}m`} ago
{/if} {#if $fleetIntegrations && (!$fleetIntegrations.komodo || !$fleetIntegrations.rcon)}
Finish system setup · {!$fleetIntegrations.komodo ? 'Komodo' : ''}{!$fleetIntegrations.komodo && !$fleetIntegrations.rcon ? ' and ' : ''}{!$fleetIntegrations.rcon ? 'RCON' : ''} not configured.Review setup →
{/if} {#if problems.length || attentionOperations.length || starting || provisioning}
0 || attentionOperations.length > 0}>
{#if problems.length} {:else}{provisioning ? `${provisioning} ${provisioning === 1 ? 'server is' : 'servers are'} provisioning` : servers.length ? starting ? `${starting} ${starting === 1 ? 'server is' : 'servers are'} starting` : 'All servers healthy' : 'Preparing your fleet'}{/if}
{#if attentionOperations.length}{/if}
{/if} {#if spotlight}
Longest running match{serverTitle(spotlight.name)}
Round {currentRound(spotlight, $telemetryByServer.get(spotlight.name), $uiNow)} {spotlight.last_players} {spotlight.last_players === 1 ? 'survivor' : 'survivors'} · {elapsedSince(spotlight.game_started_at, $uiNow)}
{/if} {#if servers.length === 0} {#snippet actions()}{/snippet} {:else}
{#if viewOptionsOpen}
{/if}
{#each filters as item} {/each}
Showing {filtered.length} of {servers.length} servers{#if query || filter !== 'all' || game}{/if}
{#if filtered.length === 0}{/if} {#each groups as [key, group] (key)}
{#if grouping !== 'none'}
{#if grouping === 'map'}{group.game.toUpperCase()}{/if}

{group.title}

{group.servers.length} {group.servers.length === 1 ? 'lobby' : 'lobbies'} · {group.servers.some(s => freshServer(s, $uiNow)) ? group.servers.reduce((sum, s) => sum + (freshServer(s, $uiNow) ? s.last_players ?? 0 : 0), 0) : '—'} players · {group.servers.filter(s => freshServer(s, $uiNow) && s.last_players === 0).length} empty

{#if group.launch}{/if}
{/if} {#if view === 'cards'}
{#each group.servers as server (server.name)}
{@render serverOperations(server)}
{@render serverActions(server)}
{/each}
{:else}
{#each group.servers as server (server.name)} {@const round = currentRound(server, $telemetryByServer.get(server.name), $uiNow)} {/each}
{group.title} servers
LobbyStatusPlayersRound / matchOperationFollow
{server.health}{freshServer(server, $uiNow) ? server.last_players ?? '—' : '—'} {round !== null ? `Round ${round}` : '—'}{#if matchDuration(server) >= 0}{elapsedSince(server.game_started_at, $uiNow)}{/if} {@render serverOperations(server, true)}
{@render serverActions(server)}
{/if}
{/each} {/if} {/if}
{#snippet serverOperations(server: FleetServer, showEmpty = false)} {@const operations = activeOperations.filter(op => op.server === server.name)} {#if operations.length}
{#each operations as operation (operation.key)} {operation.label} →{operation.detail} {/each}
{:else if showEmpty}No pending work{/if} {/snippet} {#snippet serverActions(server: FleetServer)} {/snippet}