ChrisCarucci/Custom_DFHACK_Scripts
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Β | Β | |||
Β | Β | |||
Repository files navigation
# DFHack Wonders Script
Build magnificent ancient wonders in Dwarf Fortress using the DFHack scripting system.
**File:** `wonders.lua`
## Usage
### GUI Mode (Fortress Mode)
```bash
wonders
```
Run without arguments in fortress mode to open the interactive GUI:
- Position cursor on target location
- Select wonder type from list
- Choose size (small/medium/large)
- Set material (default: GRANITE)
- Select build mode (Manual with cost / Instant no cost)
- Click "Place Wonder" to enter placement mode
- Click on map to select location
- Click "Confirm" to place wonder or "Cancel" to choose different location
### Command Line Mode
```bash
wonders <type> <x> <y> [size] [material] [--instant]
```
**Parameters:**
- `type`: Wonder type (see list below)
- `x`/`y`: Map coordinates (must be valid and exposed)
- `size` (optional): `small`, `medium`, `large` (defaults to `medium`)
- `material` (optional): Any valid inorganic material ID (e.g. `GRANITE`, `MARBLE`, `SLATE`)
- `--instant` (optional): Complete construction immediately
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GIZA PYRAMID
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `giza`
**Description:** Sloped Egyptian-style pyramid with hollow interior chambers
**Default Size:** 18Γ18 base, 12 levels tall
**Features:** Central ramp access, hollow interior, ritual chamber
**Customizable:** Size, material
```
β²
βββ
βββββ
βββββββ
βββββββββ
βββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
QUETZALCOATL PYRAMID
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `quetzalcoatl`
**Description:** Stepped Mesoamerican pyramid with temple platform
**Default Size:** 18Γ18 base, 12 levels tall
**Features:** Terraced steps, temple cap floor
**Customizable:** Size, material
```
βββ
βββββ
βββββββ
βββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
LIGHTHOUSE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `lighthouse`
**Description:** Tall tower with beacon chamber
**Default Size:** 7Γ7 base, 15 levels tall
**Features:** Base platform, hollow shaft, beacon chamber
**Customizable:** Height, material
```
βββββ
βββββ
βββββ
βββββ
βββββ
βββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
STONEHENGE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `stonehenge`
**Description:** Circular arrangement of standing stones with lintels
**Default Size:** Fixed 16-tile diameter circle
**Features:** 12 standing stones, connecting lintels
**Customizable:** Location only
```
βββ βββ
β β
β β β
β β
βββ βββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GREAT WALL
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `greatwall`
**Description:** Fortified wall with watchtowers
**Default Size:** 50 tiles long, 8 levels tall
**Features:** Double-thick walls, watchtowers every 10 segments
**Customizable:** Length, height, material
```
βββ βββ βββ
βββββββββββββββββββ
βββββββββββββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
COLOSSUS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `colossus`
**Description:** Massive warrior statue with spear and shield
**Default Size:** 9Γ8 base platform, 31 levels tall
**Features:** Base platform, hollow legs, torso chamber, distinct head, left arm with shield, right arm with spear
**Customizable:** Material only
```
β
β
ββ βββ β
βββββββ
βββββββ
βββββββ
βββββββ
βββββββ
β β
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ZIGGURAT
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `ziggurat`
**Description:** Stepped pyramid with flat platforms
**Default Size:** 18Γ18 base, 12 steps
**Features:** Terraced levels, central altar
**Customizable:** Size, material
```
βββ
βββββ
βββββββ
βββββββββ
βββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ORACLE TEMPLE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `oracle`
**Description:** Columned temple with central sanctum
**Default Size:** 20Γ32 footprint, 5 levels tall
**Features:** Pillar colonnade, inner chamber
**Customizable:** Material only
```
β β β β β
β βββ β
β βββ β
β β β β β
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
OBELISKS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `obelisk` or `obelisks`
**Description:** Four tall stone columns in formation
**Default Size:** 10Γ10 formation, 10 levels tall
**Features:** Four corner obelisks
**Customizable:** Height, material
```
β β
β β
β β
β β
β β
β β
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GREAT LIBRARY
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `library`
**Description:** Multi-story library with shelving
**Default Size:** 20Γ32 footprint, 6 levels tall
**Features:** Tiered shelves, reading table on top
**Customizable:** Material only
```
βββββββββββ
βββββββββββ
βββββββββββ
βββββββββββ
βββββββββββ
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TEMPLE OF ZEUS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**Type:** `zeus`
**Description:** Grand Greek temple with columns and inner chamber
**Default Size:** 34Γ66 footprint, 12 levels tall
**Features:** Base platform, perimeter columns, roofed structure, inner chamber
**Customizable:** Size, material
```
βββββββββββββββββ
β β β β β β β β β
β β
β β β β
β β
β β β β
β β
β β β β β β β β β
βββββββββββββββββ
```
## Example Usage
### GUI Mode
```bash
wonders
```
*Opens interactive GUI for easy wonder placement*
### Command Line Mode
```bash
wonders giza 100 150 large LIMESTONE
wonders lighthouse 80 80 medium MARBLE --instant
wonders stonehenge 200 120
wonders colossus 50 75 OBSIDIAN
```
## Finding Coordinates
**Using gui/inspect (Recommended):**
1. Press Ctrl+Shift+D to open DFHack terminal
2. Type `gui/inspect` and press Enter
3. Hover cursor over desired tile
4. Use the displayed Tile x/y coordinates
**Pro Tip:** Ensure the target tile is exposed and accessible.
## Technical Notes
- Uses `dfhack.maps.ensureTileBlock` for tile placement
- `--instant` flag completes construction immediately
- Without `--instant`, creates construction jobs for dwarves
- Builds on surface tiles only
- Some wonders have hollow interiors for functionality
## Credits
**Author:** Chris Carucci
- Script development and wonder implementations
- Interactive GUI design for fortress mode
- ASCII art diagrams and documentation
- GitHub: https://github.com/ChrisCarucci