Wiki / Player Guide / Missions / Saqqara

Saqqara — The First Pyramid

Mission
10 of 38 — choice host (Serabit / Meidum)
Era
Old Kingdom · Dynasty 3 · Pharaoh Djoser
Classical name
Saqqara (necropolis of Memphis)
Starting funds
Very Easy 24 000 Db Easy 16 000 Db Normal 12 000 Db (pak) Hard 8 000 Db Very Hard 6 400 Db
Debt interest
Very Easy 4% Easy 6% Normal 8% (pak) Hard 10% Very Hard 12%
Deities
Ptah · Ra · Bast · Seth complex
Trade
Men-nefer · Selima · Kerma (sea) · Abu · Abedju (sea) · Behdet (sea)
Previous mission
Selima or Abu (choice)
Next mission
Choice: Serabit Khadim or Meidum
Status
Implemented

Briefing

On load the script shows message_history_saqqara:

The accession of Pharaoh Djoser… A royal cemetery is to be established at Saqqara… I, the Pharaoh's royal vizier Imhotep, have conceived a new form of sacred tomb… this 'stepped pyramid' shall be constructed entirely of stone…

Saqqara is a monument mission: quarry stone, import timber/papyrus, and raise Djoser's stepped pyramid (monument goal 19). Generous starting cash matches pak Normal 12 000 Db.

Objectives

Goals match mission1.pak scenario 10. Culture is disabled; the stepped pyramid dominates.

Scripted events

Verified against pak scenario 10 (2026-07-25 dump). No land/sea invasion spawn points in pak. Favour-KR Pharaoh army size 69 (attack random, no chain) via mission_pharaoh_favour_invasion_tick.

Year 1 · month 11 Pharaoh requests 7 gamemeat (4 months). KR +5 / refuse −5.
Year 3 Gift: 11 pomegranates. Ok → timber demand +8; refuse → timber demand −9; late → KR −5.
Year 4 · month 10 Pharaoh requests 501 oil (2 months; pak item 31). KR +5 / refuse −5.
Year 5+ · month 0 Gold mine collapse (recurring yearly).
Year 7+ · month 0 Wage decrease (4) and land trade problem (8), both recurring yearly.
Year 10+ · month 6 Stone request 10 / 6 months (recurring). KR +5 / refuse −5 / late +5.
Year 12+ · month 4 Luxury goods 3 / 9 months (recurring). Ok → luxury demand +6; refuse/late → −5.
Year 16+ · month 10 Gold mine collapse → contaminated water (amount 8).
Year 18+ · month 9 Gamemeat 5 / 3 months (recurring). KR +5 / refuse −5.
Year 20 · month 1 Stone 8 / 5 months (once). KR +5 / refuse −5 / late −5.
Year 26 · month 5 Wage increase (amount 9).
Year 33+ · month 0 Gamemeat 5 / 3 months (recurring). KR +5 / refuse or late −5. Pak defeat=666 ignored.
Year 44+ · month 8 Luxury 7 / 6 months (recurring). Ok → demand +11; refuse → −6; late → KR −5.
Year 46+ · month 4 Luxury 6 / 6 months (recurring). Ok → demand +5; refuse → −9; late → KR −5.
Favour KR Pharaoh punishment army size 69.

Skipped: orphan chain_only PRICE/DEMAND leaves (broken 663/664). Late requests keep pak amounts; broken defeat links omitted.

Strategy

Open cheap Men-nefer (150 Db) early for pottery/papyrus. Build stone quarries and guilds for the stepped pyramid. Stock gamemeat and stone before recurring requests. Keep kingdom rating healthy — favour punishment is a large Pharaoh wave (69).

Phase 1 — Food and stone

Pomegranate farms, hunting lodge, stone quarry. Stonemasons and carpenters guilds unlock pyramid construction.

Phase 2 — Trade

Men-nefer (150), Abedju (350), Behdet (400), Abu (500), Selima (645), Kerma sea (780). Ebony/luxury via Selima.

Phase 3 — Pyramid

Monument goal 19 is the stepped pyramid. Import timber for ramps; keep architects on quarries and gold mines (cave-ins from year 5).

Available buildings

Stepped pyramid + small mastaba, stone/gold extractors, guilds, Ptah/Ra/Bast temples and Seth complex, military forts, standard civic/entertainment. See buildings[] in the script.

Developer reference

Paths relative to repository root.

Mission script — src/scripts/mission/m_010_saqqara.js

Imported by src/scripts/missions.js. Full empire redefine: hide_pak_cities / hide_pak_routes / hide_pak_objects, map_background, empire id 1, cities with pos/idx, sea/land empire_routes, region texts, ornaments.

win_criteria {
  population 3500 · prosperity 15 · monuments 19
  kingdom 50 · housing_level 10 · culture off
}
// Trade: Men-nefer r1 150 · Selima r2 645 · Kerma r3 sea 780
// Abu r4 500 · Abedju r5 sea 350 · Behdet r6 sea 400
// Display: Kyrene / Nubt / Byblos (route 0)
// Map: entry [130,123] exit [41,44] river; no disembark/invasion points
Event handlers
  • event_mission_start ~on_start Mastaba/pyramid/Seth/Egyptian sprites; history message; empire.set_id(1); advisors. mission10_on_start
  • event_advance_month requests / disasters Gamemeat/oil/stone/luxury chains (+ y33/y44/y46 late recurring); gift pomegranates→timber demand; gold collapse; wages; land trade; contaminated water. mission10_pharaoh_* / gold_* / wage_*
  • event_advance_month invasions Favour size 69, attack RANDOM, no chain. mission10_pharaoh_favour_invasion
Game messages
KeyIDWhen
message_history_saqqara210start_message — “The First Pyramid” / Djoser
message_innovations285Tutorial panel (meadow/irrigation/guilds) — not auto-shown
Save / map

bin_x64/Missions/mission_10.sav · Voice 210_mission.mp3 / 210_victory.mp3.

Dump helper: src/js/js_test_mission_pak_dump.cpp (__test_mission_pak_dump(10) via ad-hoc tests/99_tmp_*.js).