Capacity · Electric Cherry
{#if page.url.searchParams.has('returnTo')}{/if} {#if refreshError || navigationError}{/if}
void changeScope({ game: (event.currentTarget as HTMLSelectElement).value as CapacityGame })} />
{#if navigating}Updating capacity…{:else if !refreshError}{/if}

{#if summary.estimatedServers === null}Capacity estimate unavailable{:else}Estimated room for {count(summary.estimatedServers)} more {summary.estimatedServers === 1 ? 'instance' : 'instances'}{/if}

{scopeName} · {summary.eligibleHosts} eligible {summary.eligibleHosts === 1 ? 'host' : 'hosts'}{report.query.game === 'all' ? '' : ` · ${report.query.game === 't5' ? 'Black Ops I' : 'Black Ops II'}`}

{#if summary.queued !== null && summary.queued > 0}{count(summary.queued)} {summary.queued === 1 ? 'instance' : 'instances'} queued → {:else}{summary.queued === null ? 'Queue unavailable' : 'No queued instances'}{/if}Fleet-wide
CPU available
{count(summary.cpuCoresAvailable)} cores
Memory available
{memory(summary.memoryBytesAvailable)} GiB
Free ports
{count(summary.portsAvailable)}
Concurrent starts · Fleet-wide
{summary.startupSlots === null ? 'Unavailable' : `${count(summary.startupSlots)}${summary.startupLimit === null ? '' : ` of ${summary.startupLimit}`} available`}
{#if report.current.warnings.length}{/if}

Host capacity

{summary.eligibleHosts} / {summary.totalHosts} eligible
{#if !report.current.hosts.length}

{report.query.hostId ? 'This host is unavailable' : 'No hosts yet'}

{report.query.hostId ? 'Choose another host to view its capacity.' : 'Connect a host to start seeing capacity and history.'}

{:else}{/if}
Capacity details

Additional instances are estimated from each eligible host’s available CPU, memory, and unreserved ports, using its learned running-instance allowance. The smallest resource allowance sets that host’s limit. With All games selected, hosts ready for either T5 or T6 are counted once.

CPU and memory availability account for the operating-system reserve and pending starts. Free ports are counted on eligible hosts.

This is a planning estimate. Queued launches do not reserve capacity, and starting instances may require a larger allowance. Placement also checks current host readiness, game files, runtime, and startup slots.

{count(summary.activeStartups)} instances starting across the fleet. Launches wait for capacity and startup slots automatically.

{report.current.updatedAt ? `Report updated ${$timeFormat.dateTime(report.current.updatedAt)}.` : 'Waiting for host reports.'} Refreshes every 30 seconds while visible.

{#snippet controls()}{/snippet}