Grid-based game (Core + Shell) set in a Rifts-inspired post-apocalyptic Earth — product direction and phased goals: docs/game/vision.md. Palladium rulebooks for reference live outside the repo (default D:\source\Rifts; see docs/game/rifts-source-index.md).
The Shell uses the melange view for rendering — see docs/melange-view-pattern.md. Design rules: .cursor/.cursorrules.md; coordinates, floors, and Factorio-style map/chunk conventions: docs/architecture.md. Run / debug workflow (no-picker F5 attach): docs/debugging.md.
- .NET 8 SDK
- Godot 4.x (.NET / C# build)
- Godot on
PATH(for tasks): detached startup/debug tasks run thegodotcommand. Add your install folder to PATH, or on Windows use agdvmshim. - No-picker F5 attach: default debug profile updates its target PID via
.scripts/ResolveGodotPid.ps1, then attaches automatically. - Non-headless GDScript LSP: workspace config keeps
godotTools.lsp.headless = false, so Godot editor must be running for TCP LSP on127.0.0.1:6005.
dotnet build SpecialPG.slnxThis builds src/Core/SpecialPG.Core.csproj and src/Godot/SpecialPG.csproj (Godot references Core).
In VS Code / Cursor, use the default build task: build solution (Core + Shell).
If dotnet build fails on the Godot project because SpecialPG.pdb is locked, close the debugger or Godot and retry.
Use Terminal → Run Task… → SpecialPG: Ensure Godot editor to ensure the editor is running for src/Godot when needed. This is manual-only (no folder-open autorun).
Requires the C# (or C# Dev Kit) extension for coreclr debugging.
- Run and Debug → choose Godot: Run + Auto Attach (No Picker) (it is the first configuration, so F5 uses it by default).
- Cursor builds, starts Godot, resolves the game PID, and attaches automatically.
- C# breakpoints hit without process picker prompts.
Fallback profile remains available:
- .NET Attach (Godot) (manual process picker)
For launch-vs-attach context and hot-reload notes, read docs/debugging.md.
The project enables src/Godot/addons/external_debug_attach: editor toolbar Run + Attach Debug and autoload DebugWait coordinate with a small local service (see addon README).
Local Kenney bundles are not in git. Rebuild committed atlases and 3D props from D:\source\KenneyAssets (or set KENNEY_ASSETS_ROOT): see docs/kenney-asset-pipeline.md.
Copy .env/.env.example to another file under .env/ for local-only values. Everything in .env/ is ignored by git except .env.example.
Upstream: https://github.com/kurtzilla/SpecialPG.git