Numbers

Every player-facing number in Europa Neo, exactly as shipped. When this table and the game disagree, the manual is wrong — report it as a bug. Each row names the constant it ships from.

Simulation

ValueShipped valueConstant
Tick cadence250 ms (4 ticks/second)DEFAULT_TICK_INTERVAL_MS
City production1 troop/tick until saturatedENGINE_CONSTANTS.productionRate
City saturation cap30 troopsENGINE_CONSTANTS.cityCapacity
Open-cell troop cap30 troopsENGINE_CONSTANTS.cellCapacity
Unfed decay−1 troop/tickENGINE_CONSTANTS.decayPerTick
Pipe flow, downhill 8–12 troops/tick per pipe (Δ=1 → 8 … Δ≥5 → 12)ENGINE_CONSTANTS.flowBase + flowSlopeStep × min(│Δ│, flowSlopeDeltaCap)
Pipe flow, flat 7 troops/tick per pipeENGINE_CONSTANTS.flowBase
Pipe flow, uphill 6→1 troops/tick per pipe (Δ=1 → 6 … Δ=6 → 1)max(0, ENGINE_CONSTANTS.flowBase − flowSlopeStep × │Δ│)
Pipe flow, stalled 0 troops/tick (Δ≥7)ENGINE_CONSTANTS.flowBase / flowSlopeStep (stall threshold)

Terrain

ValueShipped valueConstant
Terrain smoothing4 smoothing passes (range 0–8; 0 = no smoothing)DEFAULT_GENERATION_SETTINGS.terrainSmoothing

Pipe slope intensity

These values control the visual triangle size on pipe slopes, not gameplay.

ValueShipped valueConstant
Intensity formula (downhill)min(│Δ│, flowSlopeDeltaCap) / flowSlopeDeltaCap → 0–1PIPE_SLOPE_CONSTANTS.flowSlopeDeltaCap (5)
Intensity formula (uphill)min(Δ, flowBase / flowSlopeStep) / (flowBase / flowSlopeStep) → 0–1PIPE_SLOPE_CONSTANTS.flowBase (7) / flowSlopeStep (1)
Intensity (flat / stalled / fog)0 (no visual intensity)
Triangle min sizemax(2.4px, zoom × 0.064) at intensity=0 (40% of base)cell-view.tsx intensity scaling
Triangle max sizezoom × 0.16 at intensity=1 (100% of base)cell-view.tsx intensity scaling
Canvas intensity scale(0.4 + intensity × 0.6) × base sizecanvas.ts drawPipes

Special weapons

ValueShipped valueConstant
Paratroop order cost20 troops removed at sourceENGINE_CONSTANTS.paratroopCost (10) × 2
Paratroops landed10 troops at targetENGINE_CONSTANTS.paratroopCost
Gun shot cost5 troops per shotENGINE_CONSTANTS.gunCost
Gun damage2 troops, everything in the target cellENGINE_CONSTANTS.gunDamage
Weapon range (both)2 cells max (diagonals count as 1)SUBCELL_RANGE

Vision

ValueShipped valueConstant
Sensor radius per stack4 cells (diagonals count as 1)ENGINE_CONSTANTS.visibilityRadiusDefault

Match lifecycle

ValueShipped valueConstant
Reconnect grace window60 secondsNETWORK_CONSTANTS.defaultReconnectGraceMs
Board size (default by player count)2 players → 32×32, 3 players → 48×48, 4 players → 48×48; override to 32×32 or 48×48 (64×64 temporarily disabled — terrain issue #26)BOARD_SIZE_DEFAULTS (2→32, 3→48, 4→48); DEFAULT_MATCH_SETTINGS.boardSize = 32 (2p backward-compat default)
Unstarted-match lifetime~5 minutes before cleanupMATCHMAKING_CONSTANTS.emptyMatchTtlMs

Interface

ValueShipped valueConstant
Reserves steps0%90% in 10% steps (digits 0–9)Reserve key mapping (resolveReservePercent)
Camera zoom bounds12–96 pixels per cellDEFAULT_CAMERA.minZoom / .maxZoom
Default zoom32 pixels per cellDEFAULT_CAMERA.zoom
Player 1 colorP1 Red #dc2626TOKENS.color.playerColor1 (@europa/design)
Player 2 colorP2 Blue #2563ebTOKENS.color.playerColor2 (@europa/design)
Player 3 colorP3 Green #059669TOKENS.color.playerColor3 (@europa/design)
Player 4 colorP4 Orange-gold #d97706TOKENS.color.playerColor4 (@europa/design)

The v1 palette is fixed — these four colors are what ships. Owner identity is never conveyed by color alone: the interface also labels players by name (falling back to their identity).


Back to contents