Simple Gothic-themed tool to export .amd maps to BudgetDungeon JSON format.
- Configure - Edit
appsettings.json:
{
"MapExporter": {
"MapName": "arefarm",
"OutputPath": "/home/leduardo/exported-maps",
"ShowObjects": true,
"ShowGrid": false
}
}- Run:
dotnet run- Export:
- Click Export Grid or press
Gfor server (JSON) - Click Export PNG or press
Pfor client (image)
- Click Export Grid or press
| Key/Action | Function |
|---|---|
| G | Export Grid (JSON for server) |
| P | Export PNG (image for client) |
| F | Fit map to screen |
| TAB | Toggle UI |
| WASD / Arrows | Pan camera |
| Mouse Drag | Pan camera |
| Mouse Wheel | Zoom in/out |
- Export Grid - Export JSON grid data for BudgetDungeon server
- Export PNG - Export PNG image for BudgetDungeon client
- Show/Hide Objects - Toggle object layer visibility
- Show/Hide Grid - Toggle grid overlay
- Fit Map - Reset camera to fit entire map
For each map, two files are generated:
{mapname}.json - Collision and tile type data
{
"id": "arefarm",
"width": 250,
"height": 250,
"tileSize": 32,
"tiles": [
{ "x": 10, "y": 5, "type": "BLOCKED" },
{ "x": 15, "y": 20, "type": "TELEPORT" }
]
}Tile Types: WALKABLE (0), BLOCKED (1), TELEPORT (2), FARM (3), WATER (4)
Only non-walkable tiles are exported (space-efficient).
{mapname}.png - Full visual map with all sprites and objects
For batch processing without GUI:
dotnet run -- --export <mapname> [output-path]Example:
dotnet run -- --export arefarm ~/mapsvar json = File.ReadAllText("arefarm.json");
var data = JsonSerializer.Deserialize<BudgetDungeonMapData>(json);
var grid = new Grid(new GridCreateParams(
Width: data.Width,
Height: data.Height,
Origin: Vector2.Zero,
CreateDefaultTiles: true
));
foreach (var tile in data.Tiles)
{
grid.SetTile(new SetTileParams(
Coord: new GridCoord(tile.X, tile.Y),
Type: (TileType)tile.Type,
Gid: 0
));
}- ✅ Full sprite rendering with camera controls
- ✅ Gothic-themed UI
- ✅ Configure via appsettings.json
- ✅ Fast single-map loading
- ✅ Toggle objects/grid visibility
- ✅ Export to BudgetDungeon JSON format
- ✅ CLI mode for automation
- .NET 10.0
- Raylib-cs 7.0.2
dotnet build
dotnet runPlace .amd files in resources/maps/:
- 2ndmiddle, arefarm, aresden, default
- elvfarm, elvine, huntzone1, huntzone2
Change MapName in appsettings.json to load different maps.