Auto Warz โ Achievements Design Document¶
Document Type: Design Document Version: 1.0 Status: Draft Last Updated: 2026-03-08 Vault destination:
01_Design DocumentsAuthor: Solo Developer Parent Document:[01_Master GDD](<./01_Master GDD.md>)Related Documents:[02_Server Architecture Document](<../02_Technical Documents/02_Server Architecture Document.md>)ยท[03_Monetization Design Document](<../04_Project Management/03_Monetization Design Document.md>)ยท[[08_Economy & Progression Design]]
Table of Contents¶
- #Purpose & Philosophy
- #Design Principles
- #Reward Tiers
- #Achievement Categories
- #Full Achievement List
- #Cosmetic Reward Catalogue
- #Implementation Notes
- #Steam Integration
Purpose & Philosophy¶
Achievements in Auto Warz serve three goals:
- Reward natural play โ players who engage deeply with the factory should feel recognised without having to chase arbitrary checklists.
- Surface hidden depth โ some players will never try certain systems unless an achievement draws them in. Achievements are a gentle teacher.
- Give cosmetics meaning โ earned cosmetics (building skins, Genesis skins) are exclusively achievement-gated. They can never be purchased. This keeps them prestigious.
The target for Early Access launch is ~25 achievements โ tight and curated. Every achievement on this list must feel worth it. No padding.
Design Principles¶
- No missable achievements โ all achievements can be earned across any session.
- No punishing achievements โ nothing locked behind a single specific failure state (e.g. "never let a belt break"). Challenge achievements exist but are clearly labelled.
- Hidden achievements are for surprises, not frustration โ hidden ones cover Easter eggs and narrative moments, not grinds.
- Tiered achievements for production and scale โ three tiers (I / II / III) apply to resource production and factory scale milestones. Each tier is a separate Steam achievement and grants a separate reward.
- Single milestones for story, discovery, and multiplayer โ these are one-shot moments that don't need a tier chain.
- Achievement cosmetics are exclusive โ no achievement skin is available via DLC or purchase. DLC cosmetics are entirely separate designs.
Reward Tiers¶
| Tier | Rarity | Reward Type | Description |
|---|---|---|---|
| Common | ~60% of achievements | Building colour variant | Alternate accent colour scheme for a specific building |
| Rare | ~30% of achievements | Full building skin | Unique visual model variant for a specific building |
| Legendary | ~8% of achievements | Genesis skin | Unique Genesis visual design โ full body rework |
| Special | ~2% of achievements | Particle effect | Animated particle trail or badge effect on Genesis |
Tier I achievements in a chain give Common rewards. Tier II give Rare. Tier III give Legendary.
Achievement Categories¶
| Category | Count | Mode | Description |
|---|---|---|---|
| First Steps | 5 | Both | First-time discovery achievements โ placing core buildings for the first time |
| Factory Scale | 6 | Both | Tiered production volume milestones (3 chains ร 2 tiers each at EA) |
| Research | 4 | Both | Research tree progression milestones |
| Defence | 4 | Both | Alien threat response milestones |
| Challenge | 3 | Solo only | Efficiency and constraint run achievements |
| Multiplayer | 3 | Multi only | Co-op specific achievements |
Total: 25 achievements
Full Achievement List¶
๐๏ธ First Steps (Single milestone โ Both modes)¶
These trigger the first time the player does something meaningful. They reward natural discovery, not grinding.
ACH_FIRST_DRILL
Name: Dig In
Description: Place your first Mining Drill.
Flavour text: "Genesis watches the drill bite into the ground. It says nothing. That's probably fine."
Mode: Both
Hidden: No
Reward: Common โ Mining Drill colour variant (Rust Orange)
Steam ID: ACH_FIRST_DRILL
ACH_FIRST_BELT
Name: On the Line
Description: Place your first Conveyor Belt.
Flavour text: "The first belt. The first step toward something that will definitely get out of hand."
Mode: Both
Hidden: No
Reward: Common โ Belt colour variant (Safety Yellow)
Steam ID: ACH_FIRST_BELT
ACH_FIRST_SMELTER
Name: Heat of the Moment
Description: Place your first Smelter.
Flavour text: "Ore goes in. Metal comes out. This is the whole game, really."
Mode: Both
Hidden: No
Reward: Common โ Smelter colour variant (Char Black)
Steam ID: ACH_FIRST_SMELTER
ACH_FIRST_RESEARCH
Name: Something to Think About
Description: Complete your first research.
Flavour text: "Genesis nods approvingly. You're not sure how you know this. It has no neck."
Mode: Both
Hidden: No
Reward: Common โ Research Lab colour variant (Deep Blue)
Steam ID: ACH_FIRST_RESEARCH
ACH_FIRST_LAUNCH
Name: Planet Bound No More
Description: Launch your first ship.
Flavour text: "Genesis watches the exhaust trail disappear into the sky. Then it goes back to work."
Mode: Both
Hidden: No
Reward: Rare โ Launch Pad skin (Burnished Chrome)
Steam ID: ACH_FIRST_LAUNCH
Note: This is the planet milestone / "Factorio rocket moment" from the Win Conditions doc. Biggest First Steps reward.
๐ฆ Factory Scale (Tiered โ Both modes)¶
Three production chains, each with Tier I and Tier II at EA launch. Tier III reserved for post-launch.
Chain 1 โ Metal Production¶
ACH_METAL_I
Name: Ironworker
Description: Produce 1,000 Metal Plates in a single session.
Mode: Both
Hidden: No
Reward: Common โ Smelter colour variant (Forge Red)
Steam ID: ACH_METAL_I
ACH_METAL_II
Name: Metal Magnate
Description: Produce 10,000 Metal Plates in a single session.
Mode: Both
Hidden: No
Reward: Rare โ Smelter skin (Industrial Hulk โ heavy riveted plating visual)
Steam ID: ACH_METAL_II
Chain 2 โ Power Infrastructure¶
ACH_POWER_I
Name: Current Affairs
Description: Sustain a power grid of 50 MW or more for 10 continuous minutes.
Mode: Both
Hidden: No
Reward: Common โ Power Plant colour variant (Electric Cyan)
Steam ID: ACH_POWER_I
ACH_POWER_II
Name: Power Broker
Description: Sustain a power grid of 200 MW or more for 10 continuous minutes.
Mode: Both
Hidden: No
Reward: Rare โ Power Plant skin (Reactor Core โ glowing cooling vents)
Steam ID: ACH_POWER_II
Chain 3 โ Factory Footprint¶
ACH_SCALE_I
Name: Sprawl Begins
Description: Have 50 or more factory buildings active simultaneously.
Mode: Both
Hidden: No
Reward: Common โ Buffer Chest colour variant (Olive Drab)
Steam ID: ACH_SCALE_I
ACH_SCALE_II
Name: Industrial Complex
Description: Have 150 or more factory buildings active simultaneously.
Mode: Both
Hidden: No
Reward: Rare โ Buffer Chest skin (Vault โ armoured plating with combination lock door)
Steam ID: ACH_SCALE_II
๐ฌ Research (Single milestone โ Both modes)¶
ACH_RESEARCH_TREE_I
Name: Curious Mind
Description: Unlock 5 research nodes.
Mode: Both
Hidden: No
Reward: Common โ Research Lab colour variant (Amber)
Steam ID: ACH_RESEARCH_TREE_I
ACH_RESEARCH_TREE_II
Name: Deep Dive
Description: Unlock 15 research nodes.
Mode: Both
Hidden: No
Reward: Rare โ Research Lab skin (Overgrown โ vines and bioluminescent panels)
Steam ID: ACH_RESEARCH_TREE_II
ACH_RESEARCH_FULL
Name: Nothing Left to Learn
Description: Unlock every research node available.
Mode: Both
Hidden: No
Reward: Legendary โ Genesis skin: Archon โ sleek white and gold Genesis body, four orbital rings instead of visor, broader head silhouette
Steam ID: ACH_RESEARCH_FULL
ACH_RESEARCH_FAST
Name: Speed Reader
Description: Unlock 10 research nodes within the first 30 minutes of a session.
Mode: Both
Hidden: No
Reward: Common โ Research Lab colour variant (Hot Pink)
Note: This doubles as a soft challenge achievement โ rewards players who dedicate early resources to research.
Steam ID: ACH_RESEARCH_FAST
๐พ Defence (Single milestone โ Both modes)¶
ACH_FIRST_WAVE
Name: They're Here
Description: Survive your first alien attack wave.
Flavour text: "Genesis assessed the situation. You built faster. For now, that was enough."
Mode: Both
Hidden: No
Reward: Common โ Turret colour variant (Gunmetal)
Steam ID: ACH_FIRST_WAVE
ACH_ALIENS_100
Name: Pest Control
Description: Defeat 100 aliens across any sessions.
Mode: Both
Hidden: No
Reward: Common โ Turret colour variant (Acid Green)
Steam ID: ACH_ALIENS_100
ACH_BREACH_SURVIVED
Name: That Was Close
Description: Survive an alien breach that destroys at least one factory building.
Flavour text: "Genesis flagged the damage. You were already rebuilding."
Mode: Both
Hidden: No
Reward: Rare โ Turret skin (Battle-Scarred โ scorched casing, cracked barrel, still functional)
Steam ID: ACH_BREACH_SURVIVED
ACH_NO_DAMAGE
Name: Untouchable
Description: Complete a full session without losing a single factory building to alien attack.
Mode: Both
Hidden: No
Reward: Legendary โ Genesis skin: Sentinel โ dark matte armoured Genesis body, red visor, shoulder pauldrons, angular silhouette
Steam ID: ACH_NO_DAMAGE
Note: This is the prestige challenge achievement. Bragging rights tier.
โก Challenge (Solo only)¶
These are specifically flagged as solo-only. They don't count in multiplayer โ partly for fairness, partly because the challenge is personal.
ACH_SOLO_SPEED
Name: Blitz
Description: Launch a ship in under 90 minutes in a solo session.
Mode: Solo only
Hidden: No
Reward: Rare โ Launch Pad skin (Scorched โ blackened blast marks, speed-run aesthetic)
Steam ID: ACH_SOLO_SPEED
ACH_SOLO_NO_POWER_FAIL
Name: Never Dark
Description: Complete a solo session without a single power failure.
Mode: Solo only
Hidden: No
Reward: Common โ Power Plant colour variant (Vivid White)
Steam ID: ACH_SOLO_NO_POWER_FAIL
ACH_GENESIS_ONLY
Name: Just the Two of Us
Description: Place your first 20 buildings exclusively using Genesis (no auto-build queue).
Flavour text: "You could have automated this. You chose not to. Genesis appreciated that. Probably."
Mode: Solo only
Hidden: Yes
Reward: Special โ Genesis particle trail: Builder's Light โ soft golden particle stream following Genesis during construction
Steam ID: ACH_GENESIS_ONLY
Note: Hidden because it's a discovery achievement. Players who engage manually with Genesis get rewarded for noticing it.
๐ค Multiplayer (Multi only)¶
ACH_FIRST_COOP
Name: Better Together
Description: Complete a session with at least one other player.
Mode: Multi only
Hidden: No
Reward: Common โ Belt colour variant (Co-op Blue โ team stripe pattern)
Steam ID: ACH_FIRST_COOP
ACH_COOP_LAUNCH
Name: All Hands
Description: Launch a ship in a session where every player has placed at least 10 buildings.
Flavour text: "Every hand built this. Even the one who kept placing things slightly off-grid."
Mode: Multi only
Hidden: No
Reward: Rare โ Launch Pad skin (Crew Edition โ player faction colours on the launch gantry)
Steam ID: ACH_COOP_LAUNCH
ACH_COOP_DEFENSE
Name: Fortress
Description: Survive an alien attack wave with 3 or more players actively building defences simultaneously.
Mode: Multi only
Hidden: No
Reward: Common โ Turret colour variant (Team Gold)
Steam ID: ACH_COOP_DEFENSE
Achievement Count Summary¶
| Category | Count | Mode |
|---|---|---|
| First Steps | 5 | Both |
| Factory Scale | 6 | Both |
| Research | 4 | Both |
| Defence | 4 | Both |
| Challenge | 3 | Solo only |
| Multiplayer | 3 | Multi only |
| Total | 25 | โ |
Cosmetic Reward Catalogue¶
Genesis Skins (Legendary)¶
| Skin ID | Name | Description | Unlocked By |
|---|---|---|---|
genesis_archon |
Archon | White and gold body, four orbital rings replacing visor, broader head | Nothing Left to Learn |
genesis_sentinel |
Sentinel | Dark matte armour, red visor, shoulder pauldrons, angular silhouette | Untouchable |
Genesis Particle Effects (Special)¶
| Effect ID | Name | Description | Unlocked By |
|---|---|---|---|
fx_builders_light |
Builder's Light | Soft golden particle stream during construction | Just the Two of Us |
Building Skins (Rare)¶
| Skin ID | Building | Name | Description | Unlocked By |
|---|---|---|---|---|
smelter_industrial_hulk |
Smelter | Industrial Hulk | Heavy riveted plating, industrial aesthetic | Metal Magnate |
power_reactor_core |
Power Plant | Reactor Core | Glowing cooling vents, reactor aesthetic | Power Broker |
chest_vault |
Buffer Chest | Vault | Armoured plating, combination lock door | Industrial Complex |
research_overgrown |
Research Lab | Overgrown | Vines and bioluminescent panels | Deep Dive |
turret_battle_scarred |
Turret | Battle-Scarred | Scorched casing, cracked barrel, still firing | That Was Close |
launch_scorched |
Launch Pad | Scorched | Blackened blast marks, speed-run aesthetic | Blitz |
launch_chrome |
Launch Pad | Burnished Chrome | Polished chrome panels, clean finish | Planet Bound No More |
launch_crew |
Launch Pad | Crew Edition | Player faction colours on the launch gantry | All Hands |
Building Colour Variants (Common)¶
| Variant ID | Building | Name | Unlocked By |
|---|---|---|---|
drill_rust |
Mining Drill | Rust Orange | Dig In |
belt_safety |
Belt | Safety Yellow | On the Line |
belt_coop |
Belt | Co-op Blue | Better Together |
smelter_char |
Smelter | Char Black | Heat of the Moment |
smelter_forge |
Smelter | Forge Red | Ironworker |
power_cyan |
Power Plant | Electric Cyan | Current Affairs |
power_white |
Power Plant | Vivid White | Never Dark |
chest_olive |
Buffer Chest | Olive Drab | Sprawl Begins |
research_blue |
Research Lab | Deep Blue | Something to Think About |
research_amber |
Research Lab | Amber | Curious Mind |
research_pink |
Research Lab | Hot Pink | Speed Reader |
turret_gunmetal |
Turret | Gunmetal | They're Here |
turret_acid |
Turret | Acid Green | Pest Control |
turret_gold |
Turret | Team Gold | Fortress |
Implementation Notes¶
AchievementDatabase Structure¶
Each achievement is a dictionary entry in AchievementDatabase.gd:
{
"id": "ach_metal_ii",
"name": "Metal Magnate",
"description": "Produce 10,000 Metal Plates in a single session.",
"steam_id": "ACH_METAL_II",
"category": "factory_scale",
"mode": "both", # "both" | "solo_only" | "multi_only"
"hidden": false,
"reward_id": "smelter_industrial_hulk",
"reward_tier": "rare" # "common" | "rare" | "legendary" | "special"
}
Stat Tracking¶
The following stats must be tracked per-player per-session by AchievementManager:
| Stat Key | Type | Triggers |
|---|---|---|
metal_plates_produced |
int | Factory Scale Chain 1 |
power_grid_mw_sustained |
float | Factory Scale Chain 2 |
power_sustained_minutes |
float | Factory Scale Chain 2 |
buildings_active |
int | Factory Scale Chain 3 |
research_nodes_unlocked |
int | Research achievements |
research_nodes_unlocked_time |
float | Speed Reader |
aliens_defeated |
int | Defence achievements (cumulative across sessions) |
waves_survived |
int | Defence milestones |
breach_occurred |
bool | That Was Close |
buildings_lost_to_aliens |
int | Untouchable |
power_failures |
int | Never Dark |
session_duration_minutes |
float | Blitz |
genesis_manual_placements |
int | Just the Two of Us |
ship_launched |
bool | Planet Bound No More, Blitz |
coop_session_completed |
bool | Better Together |
players_building_count |
Dictionary | All Hands |
players_defending_simultaneously |
int | Fortress |
Session vs. Lifetime Stats¶
- Session stats reset each new session: production volumes, power grid, buildings active, aliens defeated this session, breach occurred, power failures, session duration, manual placements.
- Lifetime stats persist in
PlayerProfile: total aliens defeated (for Pest Control), total sessions completed, coop sessions played.
Multiplayer โ Per-Player vs. Shared¶
- Research achievements are shared โ any player unlocking a node counts for all players in the session.
- Production achievements are per-player โ each player's output tracked individually. This prevents one dedicated factory player accidentally unlocking achievements for everyone.
- Defence achievements are shared โ wave survival and breach events affect the whole session.
- Multiplayer-specific achievements require all qualifying players to be present at time of trigger.
Steam Integration¶
All achievements map 1:1 to a Steam Achievement. The SteamManager autoload handles stat storage and achievement unlock calls.
func unlock_steam_achievement(steam_id: String) -> void:
if not SteamManager.is_active():
return
Steam.setAchievement(steam_id)
Steam.storeStats()
Achievement progress (for tiered chains) is synced to Steam stats so the Steam overlay can display progress bars:
func update_steam_stat(stat_name: String, value: int) -> void:
if not SteamManager.is_active():
return
Steam.setStatInt(stat_name, value)
Steam.storeStats()
Steam stat names mirror achievement IDs (e.g. STAT_METAL_PLATES, STAT_ALIENS_DEFEATED).
Open items for this document are tracked in docs/open-items.md, area achievements.
Revision History¶
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-03-08 | Initial full achievement list. 25 achievements across 6 categories. Full cosmetic catalogue. Implementation notes and Steam integration. |