# mlinh2407/godot-survival-city-builder-game architecture

> Architecture diagram of the GitHub repository mlinh2407/godot-survival-city-builder-game, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mlinh2407/godot-survival-city-builder-game
- Repository: https://github.com/mlinh2407/godot-survival-city-builder-game

## Overview

Look For The Light is a Godot survival city-builder. The player starts a campaign from the main menu, then manages colony resources and buildings, assigns workers, and responds to crises; those decisions influence Hope/Order and survival, which determine the ending. The tree identifies likely runtime modules for these capabilities, but no source excerpts were provided, so internal call ownership and wiring cannot be verified; uncertain links are omitted.

Main entry points: [`scripts/ui/MainMenu.gd`](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/ui/MainMenu.gd) (Main Menu), [`scenes/main/Main.gd`](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scenes/main/Main.gd) (Campaign Runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Game Entry"]
  node_menu["Main Menu<br/>[MainMenu.gd]"]
  node_campaign["Campaign Runtime<br/>[Main.gd]"]
end

subgraph group_colony["Colony Management"]
  node_resources["Core Resources<br/>[ResourceManager.gd]"]
  node_population["Population"]
  node_colonist_data["Colonist State<br/>[ColonistData.gd]"]
  node_buildings["Construction<br/>[BuildingSystem.gd]"]
  node_building_data["Building Definitions<br/>[BuildingData.gd]"]
  node_building_scenes["Building Types"]
end

subgraph group_narrative["Events and Narrative"]
  node_crises["Crisis Events"]
  node_event_data["Event Content<br/>[events.json]"]
  node_ideology["Colony Decisions<br/>[GameManager.gd]"]
  node_endings["Ending Selection<br/>[EndingManager.gd]"]
  node_ending_data["Ending Content<br/>[endings.json]"]
end

subgraph group_presentation["Player Interface"]
  node_journal["Colony Journal<br/>[ColonyJournal.gd]"]
  node_inspector["Building Inspector"]
  node_audio["Audio<br/>[AudioManager.gd]"]
end

node_player(("Director"))

node_player -->|"starts game"| node_menu
node_menu -->|"begins campaign"| node_campaign

click node_menu "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/ui/MainMenu.gd"
click node_campaign "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scenes/main/Main.gd"
click node_resources "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/ResourceManager.gd"
click node_population "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/PopulationManager.gd"
click node_colonist_data "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/data/ColonistData.gd"
click node_buildings "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/systems/BuildingSystem.gd"
click node_building_data "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/data/BuildingData.gd"
click node_building_scenes "https://github.com/mlinh2407/godot-survival-city-builder-game/tree/main/scenes/buildings"
click node_crises "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/systems/CrisisEventSystem.gd"
click node_event_data "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/data/events.json"
click node_ideology "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/GameManager.gd"
click node_endings "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/EndingManager.gd"
click node_ending_data "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/data/endings.json"
click node_journal "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/ui/ColonyJournal.gd"
click node_inspector "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scenes/UI/BuildingInspector.gd"
click node_audio "https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/AudioManager.gd"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_menu,node_campaign toneBlue
class node_resources,node_population,node_colonist_data,node_buildings,node_building_data,node_building_scenes toneAmber
class node_crises,node_event_data,node_ideology,node_endings,node_ending_data toneMint
class node_journal,node_inspector,node_audio toneRose
class node_player toneIndigo
```

## Components

### Game Entry

- [Main Menu](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/ui/MainMenu.gd): `scripts/ui/MainMenu.gd`
- [Campaign Runtime](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scenes/main/Main.gd): `scenes/main/Main.gd`

### Colony Management

- [Core Resources](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/ResourceManager.gd): `scripts/managers/ResourceManager.gd`
- [Population](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/PopulationManager.gd): `scripts/managers/PopulationManager.gd`
- [Colonist State](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/data/ColonistData.gd): `scripts/data/ColonistData.gd`
- [Construction](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/systems/BuildingSystem.gd): `scripts/systems/BuildingSystem.gd`
- [Building Definitions](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/data/BuildingData.gd): `scripts/data/BuildingData.gd`
- [Building Types](https://github.com/mlinh2407/godot-survival-city-builder-game/tree/main/scenes/buildings): `scenes/buildings`

### Events and Narrative

- [Crisis Events](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/systems/CrisisEventSystem.gd): `scripts/systems/CrisisEventSystem.gd`
- [Event Content](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/data/events.json): `data/events.json`
- [Colony Decisions](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/GameManager.gd): `scripts/managers/GameManager.gd`
- [Ending Selection](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/EndingManager.gd): `scripts/managers/EndingManager.gd`
- [Ending Content](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/data/endings.json): `data/endings.json`

### Player Interface

- [Colony Journal](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/ui/ColonyJournal.gd): `scripts/ui/ColonyJournal.gd`
- [Building Inspector](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scenes/UI/BuildingInspector.gd): `scenes/UI/BuildingInspector.gd`
- [Audio](https://github.com/mlinh2407/godot-survival-city-builder-game/blob/main/scripts/managers/AudioManager.gd): `scripts/managers/AudioManager.gd`

### Other components

- **Director**

## Connections

- Director → Main Menu: starts game
- Main Menu → Campaign Runtime: begins campaign
