North Dahshur — The True Pyramid
- Mission
- 15 of 38 — convergence of the Buhen / South Dahshur fork
- Era
- Old Kingdom · Dynasty 4 · Pharaoh Snofru
- Classical name
- Dahshur (the Red Pyramid — first true pyramid)
- Starting funds
-
Very Easy 20 000 Db Easy 13 300 Db Normal 10 000 Db (pak) Hard 6 700 Db Very Hard 5 300 Db
- Debt interest
-
Normal 20% (pak) Hard 25% Very Hard 30%
- Deities
- Osiris · Ra · Ptah · Seth (pak)
- Trade
- Selima Oasis (land 1500) · Abu (sea 900) · Byblos (sea 1200, timber) · Meidum (sea 300) · Serabit Khadim (land 600) — all closed; Men-nefer display-only
- Previous mission
- Buhen or South Dahshur
- Next mission
- Player's choice: Iunet (16) or On (17)
- Status
- Implemented
Briefing
The mission opens with the history panel (message_history_north_dahshur) and the briefing popup (message_mission_north_dahshur):
Pharaoh Snofru has brought order to Egypt, and the Kingdom now flourishes under his wise and benevolent rule. Snofru wishes to undertake another construction project at Dahshur, even more ambitious than the bent pyramid already completed. Royal architects are confident that they can construct an edifice whose sides rise in one continuous angle, culminating in a perfect peak. If successful, this will be the first true pyramid, and a worthy home for Pharaoh Snofru through all eternity!
Pharaoh's wife, Queen Hetepheres, has recently given birth to a son whom they have named "Khufu". Our people look toward the day of his eventual rule with much foreboding, for the seers of Horus have predicted that he will show none of his father's benevolence — though he will achieve many great things, they fear he will rule with unyielding tyranny.
You may acquire wood from Byblos, since carpenters will have to build many ramps to allow workers to reach the summit of this great pyramid.
North Dahshur is where Snofru built the Red Pyramid, the first successful true (smooth-sided) pyramid and the direct precursor to Khufu's Great Pyramid. In the campaign it is the payoff of the Snofru arc — the largest monument project yet — and it plants the seed of the Khufu missions to come. It is also a fork point: after completing it the player chooses Iunet or On.
Objectives
Goals match mission1.pak scenario 15.
- Population3 000 citizens
- Culture rating20
- Prosperity rating30
- Monument rating32 (large true pyramid, weight 13)
- Kingdom rating55
- Housing level10
trunc(2.25·13+4.5)=33 (≥32; weight 12 truncated to 31 and missed the goal).
Small/medium true and stepped remain available as extras.
Scripted events
Full empire redefine + schedule verified against pak scenario 15 (2026-07-26). Empire id 14. Scenario enemy Hyksos (ENEMY_5_HYKSOS). Favour Pharaoh army size 75 (no chain). Invasion points omitted (pak 0/0).
Strategy
Largest monument yet (large true pyramid), prosperity 30, and Hyksos pressure that does not stop after the first wipe. Open Byblos early for timber; Meidum is cheap stone (300 Db).
Phase 1 — Food and housing
Grain and barley farms support 3 000 people and the recurring grain asks. Evolve homes toward housing level 10 and prosperity 30 with gems/luxury from Serabit and Byblos.
Phase 2 — Pyramid and timber
Start the large true pyramid early. Import timber from Byblos for carpenter ramps; limestone also arrives via the year-13 gift→request chain.
Phase 3 — Defense
Hyksos from y3m11 never fully go away (size-6 chain). Beduin y6m8+ every year. Keep walls, academy, and standing companies — invasion points fall back to the map exit tile.
Tips
- Do not let kingdom rating hit zero — favour drops size 75.
- Stockpile grain before y4 and again before y17.
- Expect yearly clay-pit floods (~8% of pits, twice) — keep spare pits or rebuild capacity.
- Open Meidum (300) and Byblos (1200) before the monument starves for stone/timber.
Available buildings
All buildings are available from mission start:
| Category | Buildings |
|---|---|
| Housing & roads | Vacant Lot · Clear Land · Road · Road Block · Low Bridge · Ferry |
| Municipal | Firehouse · Architect's Post · Police Station · Village Palace · Personal Mansion · Tax Collector · Courthouse |
| Health | Water Supply · Apothecary · Physician · Mortuary |
| Food & farming | Grain Farm · Barley Farm · Figs Farm · Hunting Lodge · Water Lift · Irrigation Ditch · Bazaar · Granary · Storage Yard |
| Raw materials | Limestone Quarry · Stone Quarry · Clay Pit |
| Industry | Bricks · Pottery · Brewery · Papyrus · Weaver · Jewels Workshops · Work Camp |
| Monuments | Small / Medium Stepped Pyramid · Small / Medium Mastaba · Small / Medium / Large True Pyramid (true S/M/L ✅; W(large)=13 → trunc 33 ≥ pak goal 32) |
| Guilds | Stonemasons' · Carpenters' · Bricklayers' |
| Military | Recruiter · Weaponsmith · Military Academy · Infantry / Archers / Charioteers Fort · Mud Wall · Mud Gatehouse · Mud Tower |
| Religion | Temples & Shrines of Osiris, Ptah, Seth, Ra · Festival Square |
| Education | Scribal School · Library |
| Entertainment | Booth · Juggler School · Bandstand · Conservatory · Pavilion · Dance School |
| Beautification | Small / Medium / Large Statue · Gardens · Plaza |
Developer reference
All paths are relative to the repository root.
Mission script — src/scripts/mission/m_015_north_dahshur.js
Imported by src/scripts/missions.js. Key parts of the mission15 { … } block:
mission15 { // North Dahshur — The True Pyramid
player_rank : 6
choice [ { name : "Iunet", id : 16 }, { name : "On", id : 17 } ]
// pak Normal funds=10000 loan=4000 debt_interest=20
initial_funds [20000, 13300, 10000, 6700, 5300]
debt_interest [10, 15, 20, 25, 30]
// pop 3000, culture 20, prosperity 30, monuments 32 (large true W=13 → trunc 33), kingdom 55, housing 10
win_criteria { … }
}
Empire id 14 via empire.set_id(14). Choice → Iunet/On (scripts exist; empire redefine still pending for 16/17).
Event handlers — m_015_north_dahshur.js
- event_mission_start
empire.set_id(14);ENEMY_5_HYKSOS; wire grain/limestone/grain2 leaves.mission15_on_start - Clay pit floodsi=0/1 annual y1m0+; each wave floods ceil(N×8/100) clay pits (amount as %).mission15_clay_pit_flood_recurring
- Hennai=11 biennial y2m1+ henna×12/24mo; KR +25 / −40 / −20; refuse/late→Hyksos×12.mission15_event_i11_henna_recurring
- Request clearedhenna refuse/late→Hyksos×12 (
event_request_cleared; pak i=30).mission15_on_request_cleared - Grain / gift / limestonei=2 grain×8 y4+; i=3 stone gift y13m3+ → limestone×24; i=5 grain×18 y17m4+.mission15_event_i2_* / i3_* / i5_*
- Hyksos + Beduin + favouri=7 size5→size6 chain; i=6 beduin×10 y6m8+; i=10 size11 y20m7; favour 75.mission15_event_i7_* / i6_* / i10_* / favour
Dump: __test_mission_pak_dump(15) (ad-hoc test deleted after verification).
Game messages — src/scripts/game_messages_en.js
| Key | ID | Line | When shown |
|---|---|---|---|
message_history_north_dahshur | 215 | 2669 | History briefing (subtitle "The True Pyramid") |
message_mission_north_dahshur | 415 | 4930 | start_message — first popup on mission load |
Audio: Voice/Mission/215_mission.mp3 and Voice/Mission/215_victory.mp3.
Known deviations from the original (tracked)
- Monuments 32 (pak) — large true ✅
(
monument_pyramid.*/ tests 108–110); weight 13 → trunc 33 ≥ 32. Stepped S/M still on the build list as extras. - Clay floods i=0/1 — pak year=24 reinterpreted as annual y1m0+; amount=8 = 8% of clay pits per wave (×2 waves).
- Henna i=11 — pak year=24 amount=8 once → biennial y2m1+ amount=12; MESSAGE i=12/15 skipped. Invasion i=30 → JS Hyksos×12 via
event_request_cleared(B12; smoketests/176_north_dahshur_henna_raid.js). - Routes 7/8 orphan polylines skipped; map_obj idx=10 empty stub skipped.
- Invasion points omitted (pak 0/0) — raids use map exit fallback.
- Hyksos size-6 chain after i=7 is infinite in pak (8↔9); mirrored with a month tick until B2-migrate bind tags.
- Favour / invasions JS-proxied until B2-migrate.
- Iunet/On (16/17) have scripts but not full empire redefine yet.