Palim
generated · v0.1.19Alpha v0.1.19

The rules as shipped

Generated by cargo xtask specs from the same definitions the game imports. The design document is the vision; this is the truth. The same page as Markdown lives in the repository.

calendar · eras · levels · building kinds · materials · goods and recipes · policy · needs · events · water · settlement · tunable rule reference · templates · world recipes · climate · styles and lenses · controls ·

Calendar, site and founding

A year is 360 daily ticks; planting is day 70 and harvest day 250. The water model steps every 30 days. The default site is 384 × 160 × 384 metres with the sea at 26; the default city has 20 founders, 14 cities abroad, 800 walking citizens and 140 route searches a day. The founders carry 260 grain and 90 timber, a treasury of 250 and a legitimacy of 0.6000000238418579.

Eras

An era is left when every gate is met; the gates ease off once the calendar is past the era's nominal year (and scale with era_threshold_scale). The last era has no gate.

FoundingMedievalRenaissanceIndustrialModernContemporary
eranominal yearstoreysstorey heightlevel ceilingleaves at: peopletreasuryliteracybuilt voxelsmin years
Founding1,10013224812001,20012
Medieval1,25023384203,0000.1214,00090
Renaissance1,45033561,10012,0000.3245,00080
Industrial1,65043743,00040,0000.6120,00080
Modern1,85093907,000120,0000.85280,00070
Contemporary1,970223100
What each era changes.
erafertilitymortalityextractionrecoveryefficiencyliteracy ceilingtrade reach
Founding0.1751.3510.2810.02120
Medieval0.171.21.20.41.120.09320
Renaissance0.1611.450.541.30.26700
Industrial0.1450.852.10.681.60.51,600
Modern0.0850.453.20.8420.84,000
Contemporary0.0520.34.20.942.40.9712,000
The materials an era builds with, and the paving ladder footfall climbs (wear needed → surface).
erapoor wallrich wallframeroofwindowcivicpaving
Foundingdaubtimbertimberthatchairrough stone60 → packed dirt
Medievaldaubrough stonetimberthatchaircut stone60 → packed dirt; 400 → gravel; 1200 → cobble
Renaissancedaubbricktimbertileglasscut stone60 → packed dirt; 300 → gravel; 900 → cobble
Industrialsooted brickbrickironslateglasscut stone50 → packed dirt; 250 → gravel; 700 → cobble; 1800 → setts
Modernconcretebricksteelconcreteglassconcrete40 → gravel; 200 → cobble; 600 → setts; 1500 → asphalt
Contemporaryconcretecurtain wallsteelconcreteglasscurtain wall40 → gravel; 200 → cobble; 600 → setts; 1500 → asphalt

Levels

Every building carries a level from 0 to 100, read off its fabric and capped by the calendar (from 8 in 1100 to 100 in 2000) and by the era.

yearcalendar ceiling
1,1008
1,25023
1,45043
1,65064
1,85084
1,97096
2,000100

Building kinds and crafts

kindcivicworksdefenceland
heapnononono
hutnononono
housenononono
tenementnononono
farmsteadnononoyes
stock pennononoyes
plantationnononoyes
granaryyesnonono
warehousenononono
workshopnoyesnono
sawmillnoyesnono
quarrynoyesnono
millnoyesnono
forgenoyesnono
factorynoyesnono
marketyesnonono
town hallyesnonono
churchyesnonono
schoolyesnonono
hospitalyesnonono
towernononono
palisadeyesnoyesno
wallyesnoyesno
gateyesnoyesno
garrisonyesnoyesno
bridgeyesnonono

The eight crafts that learn to build them: shelter, keeping, making, defence, husbandry, winning, assembly, crossing.

Materials

Durability is the years a course stands before it is more patch than fabric.

grass
220 y
dirt
220 y
sand
220 y
clay
220 y
stone
220 y
iron ore
220 y
coal
220 y
water
220 y
trunk
220 y
leaves
220 y
crop
220 y
packed dirt
220 y
gravel
220 y
cobble
220 y
setts
220 y
asphalt
220 y
timber
90 y
plank
65 y
thatch
30 y
daub
60 y
rough stone
280 y
cut stone
400 y
tile
170 y
brick
200 y
slate
170 y
glass
100 y
plaster
60 y
iron
130 y
sooted brick
200 y
steel
160 y
concrete
160 y
curtain wall
100 y
rubble
220 y
scaffold
65 y
ash
220 y
town flag
220 y
banked fire
220 y
ice
1 y
snow
1 y
firn
1 y
glacier ice
1 y
dark timber
90 y
pale timber
90 y
ochre wash
60 y
rose wash
60 y
blue wash
60 y
green wash
60 y
red paint
65 y
green paint
65 y
blue paint
65 y
ruby glass
100 y
cobalt glass
100 y
amber glass
100 y
emerald glass
100 y
gilt
130 y
materialdurabilityflammabilitystructuralbuiltsolidroadburns tocollapses tomade ofsalvages to
grass2200nonoyesnograssgrass
dirt2200nonoyesnodirtdirt
sand2200nonoyesnosandsand
clay2200nonoyesnoclayclay
stone2200yesnoyesnostonestone
iron ore2200nonoyesnoiron oreiron ore
coal2200nonoyesnocoalcoal
water2200nonononowaterwater
trunk2200.3nonoyesnoashtrunk
leaves2200.5nonononoairleaves
crop2200.6nonononoaircrop
packed dirt2200yesyesyesyespacked dirtpacked dirt
gravel2200noyesyesyesgravelgravel0.30000001192092896 × stone0.25 × stone
cobble2200yesyesyesyescobblecobble0.699999988079071 × stone0.6000000238418579 × stone
setts2200yesyesyesyessettssetts0.699999988079071 × stone0.6000000238418579 × stone
asphalt2200noyesyesyesasphaltasphalt1 × concrete0.6000000238418579 × stone
timber900.7noyesyesnoashair1 × timber0.800000011920929 × timber
plank650.7noyesyesnoashair1 × timber0.800000011920929 × timber
thatch300.95noyesyesnoairair0.07999999821186066 × grain
daub600.35noyesyesnorubbleair0.4000000059604645 × clay0.30000001192092896 × clay
rough stone2800yesyesyesnorough stonerubble1 × stone1 × stone
cut stone4000yesyesyesnocut stonerubble1.399999976158142 × stone1.2000000476837158 × stone
tile1700noyesyesnotileair0.800000011920929 × clay0.5 × clay
brick2000yesyesyesnobrickrubble1 × brick0.8999999761581421 × brick
slate1700noyesyesnoslateair0.800000011920929 × stone0.699999988079071 × stone
glass1000noyesyesnoglassair1 × glass0.699999988079071 × glass
plaster600.1noyesyesnorubbleair0.5 × clay0.30000001192092896 × clay
iron1300yesyesyesnoironiron1 × iron0.949999988079071 × iron
sooted brick2000yesyesyesnosooted brickrubble1 × brick0.8999999761581421 × brick
steel1600yesyesyesnosteelsteel1 × steel0.949999988079071 × steel
concrete1600yesyesyesnoconcreteconcrete1 × concrete0.6000000238418579 × stone
curtain wall1000noyesyesnocurtain wallair1 × glass0.699999988079071 × glass
rubble2200yesyesyesnorubblerubble0.5 × stone
scaffold650.7noyesyesnoashscaffold1 × timber0.800000011920929 × timber
ash2200nonoyesnoashash
town flag2200noyesyesnotown flagtown flag0.5 × cloth
banked fire2200noyesyesnobanked fireair0.20000000298023224 × timber
ice10nonononoiceice
snow10nonoyesnosnowsnow
firn10nonoyesnofirnfirn
glacier ice10nonoyesnoglacier iceglacier ice
dark timber900.7noyesyesnoashair
pale timber900.7noyesyesnoashair
ochre wash600.1noyesyesnorubbleair
rose wash600.1noyesyesnorubbleair
blue wash600.1noyesyesnorubbleair
green wash600.1noyesyesnorubbleair
red paint650.7noyesyesnoashair
green paint650.7noyesyesnoashair
blue paint650.7noyesyesnoashair
ruby glass1000noyesyesnoruby glassair
cobalt glass1000noyesyesnocobalt glassair
amber glass1000noyesyesnoamber glassair
emerald glass1000noyesyesnoemerald glassair
gilt1300noyesyesnogiltair

Goods and recipes

goodbase valuebulkavailable fromperishable
grain10.5Foundingyes
fish1.20.4Foundingyes
timber1.40.5Foundingno
stone1.80.9Foundingno
clay0.90.9Foundingno
brick2.60.9Medievalno
charcoal2.20.5Foundingno
coal1.90.9Industrialno
iron60.3Foundingno
steel110.3Industrialno
cloth50.12Foundingno
tools80.12Foundingno
glass90.12Renaissanceno
concrete3.40.9Modernno
ale20.4Foundingyes
luxuries220.05Foundingno
recipeinputsoutputfrom eralabour (worker-days)
kiln2 × clay, 0.5 × charcoal1.600000023841858 × brickMedieval1
charcoal burning3 × timber1 × charcoalFounding1.2
brewery2 × grain, 0.10000000149011612 × timber1.5 × aleFounding0.8
weaving0.6000000238418579 × grain, 0.10000000149011612 × timber1 × clothFounding1.6
smithy1 × iron, 1.2000000476837158 × charcoal1 × toolsMedieval2
glassworks1 × clay, 1.5 × charcoal1 × glassRenaissance2.2
blast furnace2 × iron, 2.5 × coal1.600000023841858 × steelIndustrial2.4
cement works2 × stone, 1 × coal2.200000047683716 × concreteModern1.4
manufactory1 × cloth, 0.6000000238418579 × coal0.5 × luxuriesIndustrial2

Policy

The levers a governor has, their defaults and how far they go. Friction is what the citizens resent per year.

leverdefault
allow_densityyes
conservationno
fire_codeno
flood_worksno
garrison0.1
grain_reserve_years0.5
public_works0.25
relief0.05
schoolingno
tariff0
tax_rate0.1
tribute0
rulevalue
friction_conservation0.04
friction_fire_code0.05
friction_floor-0.12
friction_relief1.4
friction_tariff0.4
garrison_max0.6
grain_reserve_max4
public_works_max0.9
relief_max0.5
tariff_max1.5
tax_max0.6

Needs

What the city wants per head before it studies a shortage.

rulevalue
church_per_head0.08
garrison_per_threat0.2
housing_slack4
production_per_head0.15
school_per_head0.15
shortage_gate0.2
storage_min120
storage_years2.5
study_required24

Events

The shapes of fire, plague, war, earthquake and siege. The base chances are tunables.

rulevalue
fire_dryness_max1.5
fire_dryness_min0.45
fire_dryness_pivot1.6
fire_exposure_floor0.3
fire_unbuilt0.2
plague_crowding_cap3
plague_severity0.06, 0.34
plague_years1, 4
quake_brittle_new0.7
quake_brittle_old1.25
quake_fires4
quake_harm0.7
quake_legitimacy0.08
quake_liquefaction0.4
quake_min_harm0.03
quake_radius_base24
quake_radius_per110
quake_vents90
sack_loot0.6
sanitation_industrial0.8
sanitation_modern0.12
siege_assault_ratio1.6
siege_blockade_grain0.35
siege_lift_ratio0.6
war_cap0.3
war_min_population150
war_min_threat1.1

Water

Floods and what the town does about them; the bank heights are tunables.

rulevalue
bank_greening_per_year120
bank_recovery_dry_days360
drainage_per_year45
embankment_eraRenaissance
embankment_treasury400
flood_grain_loss0.15
flood_harm_base0.22
flood_harm_drained0.35
flood_harm_per_course0.12
flood_min_voxels40
step_days30

Settlement and peoples

rulevalue
max_cultures12
max_expedition24
min_community3
min_expedition8
min_organizers8
traffic_cell4

Tunable rule reference

Every dial the tuning page, a preset in assets/tunables/ or the browser build can turn, with the default the rule always had.

water

dialdefaultminmaxstepwhat it does
stream_drain_days9013601Days for an unsupported stream to drain from its head to its outlet.
flood_bank_natural1.250.540.05How far over bank-full the river must run before it is in the town.
flood_bank_embanked0.55030.05What an embankment adds to that.
flood_bank_works0.25030.05What the flood-works policy adds to that.
flood_chance_per_over1.1040.1Flood chance per unit the river stands over the bank, capped at 0.85.

events

dialdefaultminmaxstepwhat it does
fire_base_chance0.03500.30.005Yearly base chance of a fire breaking out, scaled by how much of the standing town still burns and how dry the year was.
fire_code_factor0.350.0510.05What a fire code does to the town's exposure: thatch banned, tile in.
plague_base_chance0.01200.20.002Yearly base chance of plague, scaled by crowding and the age's sanitation.
plague_crowding_per9001005,00050People per unit of crowding in the plague roll; a town this size is as crowded as it gets before the ceiling of three.
quake_base_chance0.00200.10.001Yearly earthquake chance on a site that shakes at all.
quake_per_seismicity0.0200.50.005Yearly earthquake chance added per unit of the site's seismicity.
war_chance_per_threat0.35010.05Chance of war per unit of threat above one, once the town is worth marching on.
market_shock_chance0.0500.50.01Yearly chance of a market shock abroad.

settlement

dialdefaultminmaxstepwhat it does
settlement_separation48162004Cells between one village core and the next, leaving room for fields.
founding_population3244004People a settlement needs before it counts as a village of its own.

peoples

dialdefaultminmaxstepwhat it does
branch_years3513005Years a daughter village must stand before it can take its own name.
branch_population3444002People a daughter village must hold before it can take its own name.

people

dialdefaultminmaxstepwhat it does
food_per_head0.85040.05Grain one person eats in a year, in stock units.

eras

dialdefaultminmaxstepwhat it does
era_threshold_scale10.150.1Multiplies every era's population, treasury, literacy and building gates: below one the city advances early, above one it lingers.

economy

dialdefaultminmaxstepwhat it does
tax_friction_free0.1200.60.01The tax rate nobody resents; friction starts above it.
tax_friction_slope2.20100.1Friction per unit of tax above the free rate.

Building templates

A template is a kind of building as slots with options; a level is one step of it. The chooser picks, the compiler draws, the city measures. Browse them.

templatekindcraftmin footprintlevelsslots
houseHouseShelter5 × 6hut → cottage → house → townhousewalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
hutHutShelter5 × 6hutwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
tenementTenementShelter6 × 6lodgings → tenement → blockwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
forgeForgeMake4 × 4smithy → forge → ironworkswalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes); hearth (open, oven)
millMillMake4 × 4mill → tall millwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes); wheel (side, none)
workshopWorkshopMake4 × 4shed → workshop → workswalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
granaryGranaryStore4 × 4store → granarywalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes); raised (staddles, ground)
warehouseWarehouseStore5 × 5warehouse → bonded storewalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
churchChurchCivic5 × 7chapel → church → minsterwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes); tower (low, tall, none)
marketMarketCivic5 × 5market cross → market hallwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes); sides (open, stalls)
town hallTownHallCivic5 × 5moot hall → town hallwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
schoolSchoolCivic5 × 5schoolroom → schoolwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
garrisonGarrisonDefend4 × 4guardhouse → garrisonwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)
farmsteadFarmsteadGrow5 × 6croft → farmsteadwalls (daub, timber, stone, brick, plaster, concrete); roof (gable, hip, flat); storeys (1, 2, 3, 4); chimney (none, one, two); windows (few, many, none); porch (none, front); annex (none, lean-to, tower); yard (open, fenced, walled); trim (plain, dressed); flag (no, yes)

World recipes and features

recipefeaturesdescription
plain valleyThe site exactly as terrain generation makes it.
karst valleyCaves, Cliffs, BasinLimestone country: cave systems under the hills, a sink basin, a few cliff bands.
alpine gorgeGorge, Cliffs, PlateauA Schlucht cut from the river's head into the mountain, stepped cliffs above it, a high plateau.
terraced highlandsTerraces, Ridge, CavesGentle farm terraces up the valley sides, a ridge across the head, caves in the ridge.
featurewhat it does
cavesWorm tunnels under the hills, each with a mouth on a slope, kept above the tide.
cliffsSteep ground stepped into rock bands: an escarpment where the hill was a slope.
gorgeA deep, narrow U-shaped cut along a wandering line between two anchors.
terracesHeights quantised to a step between two elevations, for farm terraces.
plateauA mesa with a flat top and a steep rim.
basinA hollow the water model turns into a lake if the rain allows.
ridgeA spine between two points.
craterA bowl with a raised rim.

Climate epochs and snow

scenarioenabledglacial periodglacial amplitudesecular periodsecular amplitudedrift / centurykeyframes
natural cyclesyes9002.61100.90
little ice ageyes9002.61100.90y0 +0.4000000059604645 °C ×1; y180 +0.4000000059604645 °C ×1; y230 -1.600000023841858 °C ×1.149999976158142; y330 -1.399999976158142 °C ×1.100000023841858; y380 +0 °C ×1; y520 +0.30000001192092896 °C ×1; y640 +1.7999999523162842 °C ×0.949999988079071
ice ageyes90011100.90y0 -3.5 °C ×1.2000000476837158; y250 -4.5 °C ×1.25; y400 -1 °C ×1.0499999523162842; y600 +1 °C ×0.949999988079071
steadyno9002.61100.90
The cryosphere's defaults: degree-day factors in mm per degree-day, thresholds in mm of water.
rulevalue
aspect0.8
enabledyes
firn_ddf2.2
firn_to_ice_mm1,800
first_layer_mm60
flow_rate0.1
flow_threshold_mm2,500
ground_relax0.003
ice_ddf1.3
ice_share0.35
lapse0.32
layer_mm250
max_half_layers16
permafrost_days720
rain_melt0.35
snow_ddf2.8

Styles, scale and lenses

styleunitdescription
palim1The simulation's own colours, a metre a unit, drawn as runtime pixel art.
vivid1Saturated, strongly grained, a meadow of tall grass and flowers.
sprite2Chunky pixels: two units a metre, flat surfaces, voxel people, no grain — the pixel-art look.
miniature0.5A model on a table: half a unit a metre, voxel people, soft muted colours.
winter study1Snow and ice read first: cool palette, no shader snow so only the lying voxels show.
picturesque pixels1High-detail voxels and hand-drawn pixels with generated, softly interlocking edges.

The render unit runs from 0.25 to 4 per simulated metre (default 1); material is stored at 32 voxels per metre. Playground maps: height, change, snow and ice, fertility, water. Scheduler lanes: realtime, background, idle.

lenswhat it shows
materialWhat every voxel is made of: the material colour of the top of each column.
eraThe era that laid each built voxel; untouched ground is greyed. The palimpsest itself.
waterStanding water, saturated soil and the river: what the water model holds this month.
culturesTown ground in the colour of the people who hold the nearest settlement.
territoriesTown ground by settlement number, whoever lives there.
fertilityHow well each column grows things, one being the site's ordinary ground.
snowSnow, firn and glacier ice lying on the ground as voxels.
trafficWhere people actually walk: crossings this decade, and the wear they leave.

Controls

keydoesgroup
up / downchoose a settinglauncher
left / rightchange it; hold shift for a bigger steplauncher
Rroll a new seedlauncher
Enterfound the citylauncher
Escclose inspection or menus, then return to the launcher; quit from the launcherlauncher
F1the city: calendar, age, people, purse, legitimacy, threatviews
F2the works: what is standing, levels, the building programme, streets, the wallviews
F3people: headcount, what everybody is doing, the year's demography, tradesviews
F4the ground: what is left in the site, salvage, what can be walked toviews
F5the sky: the season, the weather, the year's rain, the lakes, the flood plainviews
F6economy: treasury, the fields, stores and prices, the year's productionviews
F7the world outside: the trade ledger, who the city deals with, the dangerviews
F8learning: the study in hand, the last survey, how good each craft has gotviews
F9chronicle: the city's own memory, newest firstviews
F12the peoples: who lives here, where they came from, how they get onviews
Gopen or close the engine panel: entities, design, terrain, playground, climate, style, taskspanels
Tabhide the whole frame and give the city the windowpanels
Spacepause and runtime
1 to 51, 4, 16, 60, 180 days per secondtime
right-dragorbitcamera
wheelzoomcamera
W A S D / arrowspancamera
Q / Eraise and lowercamera
, / .turn the camera one step left or rightcamera
Mswitch between material colour and colour by the era that laid itlenses
Vturn pixel art on or offlenses
Pshow or hide the citizenslenses
Zshow or hide quiet building labelslenses
Xtoggle the X-ray cutawaylenses
[ / ]lower or raise the cutaway layer; hold to repeat, shift moves eightlenses
\show all caves and excavated holes togetherlenses
F10toggle settled-territory outlines and village markerslenses
F11toggle field boundaries: green planted, gold fallowlenses
left-click a building or roadinspect it in the world; Edit structure opens its voxel blueprint editoreditor
Alt + left-clickremove one 3.125 cm voxel under the pointereditor
Alt + Shift + left-clickadd one voxel of the pointed material against that faceeditor
Shift + click (editor)erase a cell of the drafteditor
Esc (editor)discard the draft and return to the cityeditor