Getting Started
City Builder Template is a Blueprint game project. Add it from FAB, open DemoMap in the editor, press Play, and walk through placement, roads, and the simulation HUD before editing Blueprints.
Open and run
Section titled “Open and run”- Add City Builder Template from FAB and create/open the project.
- The editor opens DemoMap (
Content/CityBuilderTemplate/Maps/DemoMap). - Press Play (PIE) — or run packaged build starting at MainMenu.
Config/DefaultEngine.ini sets:
| Setting | Value |
|---|---|
| Editor startup map | DemoMap |
| Game default map | MainMenu |
| Game mode | BP_CBT_GameMode |
| Game instance | BP_CBT_GameInstance |
From MainMenu, click Play Game to open DemoMap. Use Load Game when a save exists in slot CityBuilderSaveGame.
Shipped starting values
Section titled “Shipped starting values”| Setting | Default | Blueprint |
|---|---|---|
| Starting currency | 100000 | BP_CBT_PlayerController → Starting Currency |
| Starting premium cash | 10 | BP_CBT_PlayerController → Starting Premium Cash |
| City level | 1 (max 50) | BP_CBT_PlayerController |
| Camera zoom | 500–4500 (step 600) | BP_CBT_PlayerPawn |
| Grid snap (placement) | 200 world units | BP_CBT_PlayerController → Grid Size |
| Visual grid cell | 100 (4 divisions) | BP_CBT_Grid → Default Grid Size / Grid Divisions |
Session flow
Section titled “Session flow”flowchart TD Launch[Play MainMenu or DemoMap] --> HUD[WBP_PlayerHUD] HUD --> Roads[Place roads via BP_Road] Roads --> Build[Select building type] Build --> Preview[Preview on grid] Preview -->|Primary click| Construct[Start Construction] Construct --> Operate[Population / income / XP] Operate --> Sim[Pause / normal / double speed] Sim --> Save[Save or Load slot]
First playthrough
Section titled “First playthrough”| UI element | Behaviour |
|---|---|
| Building frame | WBP_BuildingFrame — residential vs commercial tabs |
| Building select | WBP_BuildingSelect — pick House, Apartment, Shop, or Office |
| Road frame | WBP_RoadFrame — enter road placement mode |
| Bulldoze | WBP_Bulldoze — remove buildings or roads |
| Currency / XP bars | Bound to BP_CBT_Singleton events |
| Simulation controls | Pause, normal speed, double speed on WBP_PlayerHUD |
| Save / Load | SaveGameBtn / LoadGameBtn → slot CityBuilderSaveGame |
Controls (DefaultInput.ini + BP_CBT_PlayerPawn)
Section titled “Controls (DefaultInput.ini + BP_CBT_PlayerPawn)”| Input | Action |
|---|---|
| W / S / A / D | Move camera (MoveForward / MoveRight) |
| Q / E | Rotate camera (CameraRotate) |
| Mouse wheel up / down | Zoom (CameraZoomIn / CameraZoomOut) |
| Left mouse | Primary click — place building or road point |
| Right mouse | Secondary click — cancel / context actions on controller |
| Z / C | Rotate building preview left / right |
| Delete | Bulldoze targeted building or road |
| Escape / Backspace | Pause (PauseGame) |
Content layout
Section titled “Content layout”Content/CityBuilderTemplate/├── Blueprints/│ ├── BP_CBT_GameInstance, BP_CBT_GameMode, BP_CBT_GameState│ ├── BP_CBT_PlayerController, BP_CBT_PlayerPawn, BP_CBT_Singleton│ ├── BP_CBT_TimeOfDay, BP_CBT_SaveGame, BP_CBT_ObjectMacros│ ├── BFL_CBT_GlobalFunctions│ ├── Buildings/ Enums/ Structs/ Widgets/ Roads/ Environment/ Misc/├── Maps/ DemoMap, MainMenu├── Meshes/ Materials/ Textures/ Misc/└── 1_BP_CBT_Tut_* … 5_BP_CBT_Tut_* (in-editor tutorials)Customization entry points
Section titled “Customization entry points”BP_CBT_PlayerController
Section titled “BP_CBT_PlayerController”Central gameplay authority — placement, economy checks, save/load.
| Function / property | Purpose |
|---|---|
| GetSelectedBuilding / GetPreviewBuilding | Active build type and ghost preview |
| HasEnoughCurrencyToConstruct / HasEnoughPremiumCashToConstruct | Pre-place validation |
| CreateRoad / Internal_PreviewRoad | Road spline and tile spawning |
| Internal_Bulldoze | Destruction flow |
| Internal_SaveGame / Internal_LoadGame | Persist city state |
| Grid Size / GridActor | Placement snap and level grid reference |
BP_CBT_Singleton
Section titled “BP_CBT_Singleton”Global city stats and UI events.
| Property / event | Purpose |
|---|---|
| CurrentCurrency / CurrentPremiumCash / CurrentXP | Economy and progression |
| CurrentResidents / CurrentWorkers | Population and employment |
| OnCurrencyUpdated / OnPremiumCashUpdated / OnXpChanged | HUD refresh |
| OnLevelUp / OnPopulationChanged / OnWorkerChanged | WBP_LevelUpNotification, population bar |
| OnDayStarted / OnNightStarted | Day/night reactions |
| AddPopulation / RemovePopulation | Residential simulation |
BP_CBT_BaseBuilding
Section titled “BP_CBT_BaseBuilding”Parent for all placeable structures.
| Property | Purpose |
|---|---|
| BuildingCost_Currency / BuildingCost_PremiumCash | Placement price |
| ConstructionTime | Build timer duration |
| BuildingState (EBuildingState) | Preview → construction → operating |
| bIsNearRoad | Requires adjacent BP_RoadTile |
| UnlockLevel | Minimum city level (per child building) |
BP_CBT_Grid
Section titled “BP_CBT_Grid”| Property | Default | Purpose |
|---|---|---|
| Default Grid Size | 100 | Base cell size for the visual grid |
| Grid Divisions | 4 | Subdivisions per cell |
| Current Grid Size | runtime | Active snap size read by GetGridSize |
Placement snapping during building and road placement uses BP_CBT_PlayerController → Grid Size (200), not the grid actor default alone.
Save game
Section titled “Save game”BP_CBT_SaveGame stores arrays of ST_BaseBuildingSave, ST_BaseCommercialSave, ST_BaseResidentialSave, ST_RoadSave, and ST_Vehicle, plus currency, XP, and level fields. Slot name comes from GetSaveGameSlotNameAndIndex (default CityBuilderSaveGame).
Collision
Section titled “Collision”DefaultEngine.ini defines custom object channels used for placement traces:
| Channel | Name | Used for |
|---|---|---|
ECC_GameTraceChannel1 | GenericBuilding | Building overlap / placement |
ECC_GameTraceChannel2 | GenericRoad | Road tile overlap |
Profiles GenericBuilding and GenericRoad are referenced by building and road meshes.
Next steps
Section titled “Next steps”- Overview — economy tuning, new buildings, roads, migration
- Blueprint reference