Huts

Crude Hut
Crude Hut
Sturdy Hut
Sturdy Hut

Huts are the two lowest housing tiers — the first roofs immigrants raise when they walk in from the kingdom road. A player never places a hut directly: a vacant lot with road access becomes a Crude Hut the moment the first family moves in, and from there the house evolves on its own as services reach it.

Huts ask for almost nothing — the Crude Hut needs no water, food, or goods at all, and the Sturdy Hut adds only a water source. In exchange they hold very few people, pay little tax, and lower the desirability of everything around them, so a city of bare huts struggles to grow. They are a starting point to be grown out of, not a goal.

Crude Hut · tier 1

1×1Size
5Max people
−2Desirability

Water
None required
Food / Goods
None
Evolves at
Desirability ≥ −10
Merges
Yes → 2×2 block
Fire / Damage
Moderate / None

Sturdy Hut · tier 2

1×1Size
7Max people
−2Desirability

Water
Well (water access)
Food / Goods
None
Evolves at
Desirability ≥ −5
Devolves below
Desirability −12
Fire / Damage
Moderate / None

Overview

In the housing ladder Pharaoh tracks twenty tiers, the two hut tiers sit right at the bottom, below the shanties. They are the housing every city starts with and the housing a neglected district falls back to. Both are 1×1 plots that can merge into a single 2×2 block once four adjacent plots of the same tier qualify for the next step up — a merged hut block packs four times the residents into one footprint.

Huts are pure worker housing: every resident counts toward the city's labour pool, feeding nearby farms, quarries, and workshops. Their downside is desirability — a hut radiates a small negative influence (−2 at the tile, fading over three tiles), so a dense field of huts holds itself down and makes it harder for any one plot to reach the desirability it needs to evolve. Breaking that deadlock with a few gardens, a well, and the first roaming services is the earliest growth puzzle of every mission.

Structures

Crude Hut in-game sprite
In-game
Crude Hut original Cleopatra art
Original (Cleopatra)

Crude Hut

The starting roof. A vacant lot turns into a Crude Hut as soon as it has a road within two tiles and an immigrant arrives. It demands nothing — no water, no food, no goods, no services — so it will appear and survive anywhere a road reaches, but it also holds only 5 people and contributes very little tax. It cannot devolve any further; it is the floor of the housing ladder. To advance to a Sturdy Hut it needs the tile desirability to climb to −10 or better, which usually means simply not crowding it with other huts and undesirable industry.

Sturdy Hut in-game sprite
In-game
Sturdy Hut original Cleopatra art
Original (Cleopatra)

Sturdy Hut

The second tier. A Sturdy Hut holds 7 people and adds one requirement over the Crude Hut: water access, satisfied by a Well whose water carrier (or coverage) reaches the house. Lose that water and the house slides back to a Crude Hut once desirability falls below −12. With desirability of −5 or better and its water kept up, a Sturdy Hut evolves into a Meager Shanty — the first tier that begins asking for food and bazaar goods. Sturdy Huts cannot be placed directly; they only ever arise by evolution from a Crude Hut.

Evolution & devolution

Like every house, a hut is re-evaluated at regular intervals against the requirements of the tier above it. Three things decide whether it climbs or slips:

The bottom of the housing ladder
Vacant Lot  → immigrant arrives →  Crude Hut  → desirability ≥ −10 →  Sturdy Hut  → desirability ≥ −5 & water →  Meager Shanty

Devolution runs the chain in reverse after a short grace period (the hut's devolve delay). Because the Crude Hut has no requirements, it is the safe floor: a district stripped of water or services collapses no lower than bare Crude Huts rather than vanishing.

Tips

Developer reference

All paths relative to the repository root. Model arrays are indexed by difficulty: Very Easy · Easy · Normal · Hard · Very Hard. Player-facing values above use the Normal (index 2) column.

House config — src/scripts/houses.js

src/scripts/houses.js defines both hut tiers. building_house_crude_hut carries a cost array (the cost of placing the starting plot); building_house_sturdy_hut has none because it only arises by evolution. The model block holds the per-tier evolution thresholds, capacity, and risk curves.

building_house_crude_hut {
  building_size : 1
  can_merge : true
  desirability { value[-2], step[1], step_size[1], range[3] }
  laborers[0]
  cost [ 5, 10, 20, 40, 50 ]
  fire_risk[3]  damage_risk[0]
  model {
    evolve_desirability[-10,-10,-10,-10,-10]
    devolve_desirability[-99,-99,-99,-99,-99]  // floor — never devolves
    water[0,0,0,0,0]      // no water needed
    max_people[5,5,5,5,5]
    food_types[0,0,0,0,0]
  }
  meta { help_id: 128, text_id: -1 }
  flags { is_house: true }
}

building_house_sturdy_hut {
  building_size : 1
  can_merge : true
  desirability { value[-2], step[1], step_size[1], range[3] }
  fire_risk[3]  damage_risk[0]
  model {
    evolve_desirability[-7,-6,-5,-5,-5]
    devolve_desirability[-12,-12,-12,-12,-12]
    water[1,1,1,1,1]      // requires a water source
    max_people[7,7,7,7,7]
    food_types[0,0,0,0,0]
  }
  flags { is_house: true }
}

The hut sprites are atlas PACK_GENERAL id 26 (offsets 0–1 Crude, 2–3 Sturdy; offsets 4–5 are the merged 2×2 variants).

Evolution logic — src/building/building_house.cpp

House evolution and devolution is driven by src/building/building_house.cpp, which each cycle compares the tile's accumulated desirability against the current tier's evolve_desirability / devolve_desirability and checks the required service levels (here only water for the Sturdy Hut). When all conditions for the next tier hold it promotes the house type; when a requirement lapses past the devolve_delay it demotes. Merging of four 1×1 plots into a 2×2 block uses can_merge and the variants_merged sprite set defined in houses.js.