From d9c2529c38030aa6219f47509f8be3fa2e8bdad2 Mon Sep 17 00:00:00 2001 From: Hawke Date: Sun, 10 Aug 2025 11:14:16 -0500 Subject: [PATCH] Add Alina's Map Mod https://railroader.alinanova.dev/ --- AlinasMapMod/AlinasMapMod.dll | Bin 0 -> 128512 bytes AlinasMapMod/AlinasMapMod.json | 636 ++++++++++++++++++++++++++ AlinasMapMod/Definition.json | 22 + AlinasMapMod/mapeditor_integration.md | 8 + AlinasMapMod/paxstations.md | 36 ++ AlinasMapMod/progressions.md | 88 ++++ AlinasMapMod/splineys.md | 157 +++++++ 7 files changed, 947 insertions(+) create mode 100644 AlinasMapMod/AlinasMapMod.dll create mode 100644 AlinasMapMod/AlinasMapMod.json create mode 100644 AlinasMapMod/Definition.json create mode 100644 AlinasMapMod/mapeditor_integration.md create mode 100644 AlinasMapMod/paxstations.md create mode 100644 AlinasMapMod/progressions.md create mode 100644 AlinasMapMod/splineys.md diff --git a/AlinasMapMod/AlinasMapMod.dll b/AlinasMapMod/AlinasMapMod.dll new file mode 100644 index 0000000000000000000000000000000000000000..91f5e4975ae077df0f6bd1ee02bb6bbf29888e2d GIT binary patch literal 128512 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 R^V>VFf6M>W;y-*0{C_9Ro*MuF literal 0 HcmV?d00001 diff --git a/AlinasMapMod/AlinasMapMod.json b/AlinasMapMod/AlinasMapMod.json new file mode 100644 index 00000000..cfcee48a --- /dev/null +++ b/AlinasMapMod/AlinasMapMod.json @@ -0,0 +1,636 @@ +{ + "items": { + "AN_Sylva_Interchange_Yard": { + "identifier": "AN_Sylva_Interchange_Yard", + "name": "Sylva Interchange Yard", + "groupIds": [ + "AN_Sylva_Interchange_Yard" + ], + "description": "A yard that can be useful for organizing west bound trains and storing cars if the Interchange is filled to capacity.", + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 4, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 2, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 6, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "s1" + ], + "area": "sylva", + "trackSpans": [ + "PAN_Sylva_Interchange_Yard_00" + ], + "industryComponent": "AN_Sylva_Interchange_Yard.interchange-yard-site" + }, + "AN_Sylva_Wye": { + "identifier": "AN_Sylva_Wye", + "name": "Sylva Wye", + "groupIds": [ + "AN_Sylva_Wye" + ], + "description": "Adds a Wye at the Sylva Interchange, great for turning around those massive Berks.", + "area": "sylva", + "trackSpans": [ + "PAN_Sylva_Wye_00" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "FM", + "count": 1, + "load": "mow-machinery", + "direction": 0 + }, + { + "carTypeFilter": "GB", + "count": 100, + "load": "debris", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "FM", + "count": 1, + "load": "mow-machinery", + "direction": 1 + }, + { + "carTypeFilter": "GB*", + "count": 6, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 5, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 2, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "s1", + "AN_Sylva_Interchange_Yard" + ], + "industryComponent": "AN_Sylva_Wye.wye-site" + }, + "AN_Sylva_Paper_Crossover": { + "identifier": "AN_Sylva_Paper_Crossover", + "name": "Sylva Paper Crossovers", + "groupIds": [ + "AN_Sylva_Paper_Crossover" + ], + "description": "Adds two Crossovers at Sylva Paperboard.", + "area": "sylva", + "trackSpans": [ + "PAN_Sylva_Paper_Crossover_00" + ], + "deliveryPhases": [ + { + "cost": 1000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 1, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 1, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 1, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "s1" + ], + "industryComponent": "AN_Sylva_Paper_Crossover.sylva-paper-crossover-site" + }, + "AN_Sylva_Pax_Storage": { + "identifier": "AN_Sylva_Pax_Storage", + "name": "Sylva Pax Storage", + "groupIds": [ + "AN_Sylva_Pax_Storage" + ], + "description": "Adds two storage tracks to Sylva Station.", + "area": "sylva", + "trackSpans": [ + "PAN_Sylva_Pax_Storage_00" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 2, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "s1" + ], + "industryComponent": "AN_Sylva_Pax_Storage.sylva-station-site" + }, + "AN_Whittier_Yard_Sawmill": { + "identifier": "AN_Whittier_Yard_Sawmill", + "name": "Whittier Sawmill Connection", + "groupIds": [ + "AN_Whittier_Yard_Sawmill" + ], + "description": "Extend the sawmill track over to the interchange", + "trackSpans": [ + "PAN_Whittier_Yard_00" + ], + "area": "whittier", + "industryComponent": "AN_Whittier_Yard.sawmill-site", + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 4, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 1, + "load": "rails", + "direction": 0 + } + ] + } + ] + }, + "AN_Whittier_Yard_1": { + "identifier": "AN_Whittier_Yard_1", + "name": "Whittier Yard ", + "groupIds": [ + "AN_Whittier_Yard_Yard_Lead", + "AN_Whittier_Yard_Yard_Track_6", + "AN_Whittier_Yard_Yard_Track_7", + "AN_Whittier_Yard_Yard_Track_8" + ], + "trackSpans": [ + "PAN_Whittier_Yard_00" + ], + "industryComponent": "AN_Whittier_Yard.yard-site-1", + "area": "whittier", + "description": "A yard that can be useful for organizing trains and storing cars.", + "prerequisiteSections": [ + "AN_Whittier_Yard_Sawmill" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 6, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 6, + "load": "rails", + "direction": 0 + } + ] + } + ] + }, + "AN_Whittier_Yard_2": { + "identifier": "AN_Whittier_Yard_2", + "name": "Whittier Yard Extension 2", + "groupIds": [ + "AN_Whittier_Yard_Yard_Track_3", + "AN_Whittier_Yard_Yard_Track_4", + "AN_Whittier_Yard_Yard_Track_5" + ], + "trackSpans": [ + "PAN_Whittier_Yard_00" + ], + "industryComponent": "AN_Whittier_Yard.yard-site-2", + "area": "whittier", + "description": "An additional 3 tracks for the Whittier yard", + "prerequisiteSections": [ + "AN_Whittier_Yard_Sawmill", + "AN_Whittier_Yard_1" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 6, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 6, + "load": "rails", + "direction": 0 + } + ] + } + ] + }, + "AN_Whittier_Yard_3": { + "identifier": "AN_Whittier_Yard_3", + "name": "Whittier Yard Extension 3", + "groupIds": [ + "AN_Whittier_Yard_Yard_Track_0", + "AN_Whittier_Yard_Yard_Track_1", + "AN_Whittier_Yard_Yard_Track_2" + ], + "trackSpans": [ + "PAN_Whittier_Yard_00" + ], + "industryComponent": "AN_Whittier_Yard.yard-site-3", + "area": "whittier", + "description": "An additional 3 tracks for the Whittier yard", + "prerequisiteSections": [ + "AN_Whittier_Yard_Sawmill", + "AN_Whittier_Yard_1", + "AN_Whittier_Yard_2" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 6, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 6, + "load": "rails", + "direction": 0 + } + ] + } + ] + }, + "AN_Andrews_Interchange_Yard": { + "identifier": "AN_Andrews_Interchange_Yard", + "name": "Andrews Interchange Yard", + "groupIds": [ + "AN_Andrews_Interchange_Yard" + ], + "description": "A yard that can be useful for organizing east bound trains and storing cars if the Interchange is filled to capacity.", + "trackSpans": [ + "PAN_Andrews_Interchange_Yard_00" + ], + "industryComponent": "AN_Andrews_Interchange_Yard.interchange-yard-site", + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 4, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 + } + ] + }, + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 2, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 6, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "s6" + ], + "area": "andrews" + }, + "AN_Alarka_Jct_Additional": { + "identifier": "AN_Alarka_Jct_Additional", + "name": "Alarka Jct Additional Tracks", + "groupIds": [ + "AN_Alarka_Jct_Additional" + ], + "description": "Additional tracks in Alarka Jct, currently just a bypass around the interchange.", + "prerequisiteSections": [ + "alarka-jct" + ], + "trackSpans": [ + "Pevc" + ], + "industryComponent": "AN_Alarka_Jct_Additional.alarka-bypass-site", + "area": "alarka-jct", + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 4, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 1, + "load": "rails", + "direction": 0 + } + ] + } + ] + }, + "AN_Alarka_Pax_Storage": { + "identifier": "AN_Alarka_Pax_Storage", + "name": "Alarka Pax Storage", + "groupIds": [ + "AN_Alarka_Pax_Storage" + ], + "description": "Adds two storage tracks to Alarka Station.", + "area": "alarka", + "trackSpans": [ + "PAN_Alarka_Pax_Storage_00" + ], + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 2, + "load": "rails", + "direction": 0 + } + ] + } + ], + "prerequisiteSections": [ + "alarka-branch" + ], + "industryComponent": "AN_Alarka_Pax_Storage.alarka-station-site" + }, + "AN_Alarka_Loop": { + "identifier": "AN_Alarka_Loop", + "name": "Alarka Balloon Loop", + "groupIds": [ + "AN_Alarka_Loop" + ], + "description": "Balloon loop in Alarka, no more fighting with a Wye.", + "prerequisiteSections": [ + "alarka-branch" + ], + "trackSpans": [ + "PAN_Alarka_Loop_00" + ], + "industryComponent": "AN_Alarka_Loop.alarka-bypass-site", + "area": "alarka", + "deliveryPhases": [ + { + "cost": 2000, + "deliveries": [ + { + "carTypeFilter": "GB*", + "count": 4, + "load": "ballast", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "gravel", + "direction": 0 + }, + { + "carTypeFilter": "GB*", + "count": 2, + "load": "ties", + "direction": 0 + }, + { + "carTypeFilter": "FM*", + "count": 1, + "load": "rails", + "direction": 0 + } + ] + } + ] + } + } +} diff --git a/AlinasMapMod/Definition.json b/AlinasMapMod/Definition.json new file mode 100644 index 00000000..5a7eea4d --- /dev/null +++ b/AlinasMapMod/Definition.json @@ -0,0 +1,22 @@ +{ + "manifestVersion": 5, + "id": "AlinaNova21.AlinasMapMod", + "name": "Alina's Map Mod", + "version": "1.6.25167.144", + "assemblies": [ "AlinasMapMod" ], + "updateUrl": "https://railroader.alinanova.dev/update.json", + "requires": [ + { + "id": "railroader", + "notBefore": "2024.6.10" + }, + { + "id": "railloader", + "notBefore": "1.10.0.2" + }, + { + "id": "Zamu.StrangeCustoms", + "notBefore": "1.10.25017.313" + } + ] +} diff --git a/AlinasMapMod/mapeditor_integration.md b/AlinasMapMod/mapeditor_integration.md new file mode 100644 index 00000000..51e4d6ea --- /dev/null +++ b/AlinasMapMod/mapeditor_integration.md @@ -0,0 +1,8 @@ +# Map Editor Integration + +There are new classes adding in AlinasMapMod that allows +itself and other mods to register their objects in MapEditor. +This allows MapEditor to edit and save these objects. + +There not much documentation yet, but there is a few implementations in the Loaders, Map, and Station folders. The main interfaces are IEditableObject, ITransformableObject, and IObjectFactory. There is also ICustomHelper for custom helper objects. + diff --git a/AlinasMapMod/paxstations.md b/AlinasMapMod/paxstations.md new file mode 100644 index 00000000..d9735307 --- /dev/null +++ b/AlinasMapMod/paxstations.md @@ -0,0 +1,36 @@ +# Pax stations + +Industry: +```json +{ + "barkers": { + "industries": { + "barkers-station": { + "name": "Barkers Station", + "localPosition": { "x": 0, "y": 0, "z": 0}, + "usesContract": false, + "components": { + "ammBarkersStation": { + "name": "Barkers Station", + "type": "AlinasMapMod.PaxStationComponent", + "timetableCode": "BC", + // Reference values: Whittier: 30, Ela: 25, Bryson: 50 + "basePopulation": 10, + "loadId": "passengers", + "trackSpans": [ // Spans for loading/unloading + "PAN_Test_Mod_00" + ], + // Future support for custom branches, currently supported is "Main" and "Alarka Branch" + "branch": "Main", + // List of ids of other passenger stations. + // Unsure of exact impact + "neighborIds": [], + "carTypeFilter": "*", + "sharedStorage": true + } + } + } + } + } +} +``` \ No newline at end of file diff --git a/AlinasMapMod/progressions.md b/AlinasMapMod/progressions.md new file mode 100644 index 00000000..76a8ae10 --- /dev/null +++ b/AlinasMapMod/progressions.md @@ -0,0 +1,88 @@ +# Progressions + +```json +// progressions json format +{ + "mapFeatures": { + "sampleMapFeature": { + "displayName": "Sample MapFeature", + "name": "Sample MapFeature", + "description": "Description", + "prerequisites": { + "anotherMapFeature": true + }, + "areasEnableOnUnlock": { + "sampleArea": true + }, + "defaultEnableInSandbox": false, + "gameObjectsEnableOnUnlock": { + // Existing object in world, primary here for dumps. + "path://scene/world/path/to/gameObject/in/tree": true, + // Requires scenery to be defined in a game-graph + "scenery://sampleSceneryId": true + }, + "trackGroupsAvailableOnUnlock": { + "sampleGroup": true + }, + "trackGroupsEnableOnUnlock": { + "sampleGroup": true + }, + "unlockExcludeIndustries": { + "sampleIndustry": true + }, + "unlockIncludeIndustries": { + // Includes components by default + "sampleIndustry": true + }, + "unlockIncludeIndustryComponents": { + "sampleIndustryComponent": true + } + } + }, + "progressions": { + "ewh": { // ewh is the only current progression tree. + "sections": { + "sampleSection": { + "displayName": "sample milestone", + "description": "Description here", + "prerequisiteSections": { + "anotherSampleSection": true + }, + "deliveryPhases": [ + // Can have as many phases as you want here. + { + "cost": 1234, + "industryComponent": "sampleIndustryId.componentId", + "deliveries": [ + // Can be empty for cost only milestones. + { + "carTypeFilter": "GB*", + "count": 8, + "load": "ballast", + "direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry + }, + { + "carTypeFilter": "GB*", + "count": 12, + "load": "gravel", + "direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry + } + ] + } + ], + // Important note: You cannot both disable and enable the same feature, not even in seperate sections. + "disableFeaturesOnUnlock": { + "sampleMapFeature": true + }, + "enableFeaturesOnUnlock": { + "sampleMapFeature": true + }, + "enableFeaturesOnAvailable": { + "sampleMapFeature": true + } + } + } + } + } +} +``` \ No newline at end of file diff --git a/AlinasMapMod/splineys.md b/AlinasMapMod/splineys.md new file mode 100644 index 00000000..0dc67cfd --- /dev/null +++ b/AlinasMapMod/splineys.md @@ -0,0 +1,157 @@ +# Splineys + +All listed values are defaults, and may usually be omitted unless otherwise noted + +- [Prefab Formats](#prefab-formats) +- [Telegraph Poles](#telegraph-poles) +- [Turntables](#turntables) +- [Loaders](#loaders) +- [Passenger Station Agent](#passenger-station-agent-includes-building)] +- [Passenger Stations](#passenger-stations) +- [Map Labels](#map-labels) + + +## Prefab formats +All prefabs use the following formats: +- Path based: `path://scene/world/path/to/gameObject/in/tree` +- Scenery: `scenery://sampleSceneryId` +- Vanilla: `vanilla://vanillaObjectid` + This is a special one for specific structures, + as of 05/10/2025, it has the following: + - roundhouseStall + - roundhouseStart + - roundhouseEnd + - coalConveyor + - coalTower + - dieselFuelingStand + - waterTower + - waterColumn + - flagStopStation + - brysonDepot + - dillsboroStation + - southernCombinationDepot + +## Telegraph poles + +```json +{ + "handler": "AlinasMapMod.TelegraphPoleBuilder", + "polesToRaise": [1,2,3] +} +``` + +```json +{ + "handler": "AlinasMapMod.TelegraphPoleMover", + "polesToMove": [1,2,3], + "poleMovement": [ + [0,1,2], + [22,2,0], + [33,3,5], + ] +} + +``` +## Turntables + +```json +{ + "handler":"AlinasMapMod.Turntable.TurntableBuilder", + "radius": 15, + "subdivisions": 32, + "position": { "x": 0, "y": 0, "z": 0 }, + "rotation": { "x": 0, "y": 0, "z": 0 }, + "roundhouseStalls": 0, + "roundhouseTrackLength": 46, + "stallPrefab": "vanilla://roundhouseStall", + "startPrefab": "vanilla://roundhouseStart", + "endPrefab": "vanilla://roundhouseEnd" +} +``` + +## Loaders +```json +{ + "handler": "AlinasMapMod.LoaderBuilder", + "position": { "x": 0, "y": 0, "z": 0 }, + "rotation": { "x": 0, "y": 0, "z": 0 }, + // Must be set to one of the coal, diesel, or water prefabs + "prefab": "empty://", + // Required for coal and diesel, see example industry below + "industry": "", +} +``` + +Example industry: +```json +{ + "loader-industry-example": { + "name": "Example industry for loaders", + "localPosition": { "x": -271.6577, "y": 0.0, "z": -22.8286133 }, + "usesContract": false, + "components": { + "coaling": { + "type": "Model.Ops.IndustryUnloader", + "name": "Example Coaling Tower", + "trackSpans": [ "PExampleSpan" ], + "carTypeFilter": "HM,HT", + "sharedStorage": true, + "loadId": "coal", + "storageChangeRate": 0.0, + "maxStorage": 300000.0, + "orderAroundEmpties": false, + "carTransferRate": 1E+07, + "orderAroundLoaded": false + }, + "diesel": { + "type": "Model.Ops.IndustryUnloader", + "name": "Example Diesel Stand", + "trackSpans": [ "PExampleSpan" ], + "carTypeFilter": "TM", + "sharedStorage": true, + "loadId": "diesel-fuel", + "storageChangeRate": 0.0, + "maxStorage": 16000.0, + "orderAroundEmpties": false, + "carTransferRate": 32000.0, + "orderAroundLoaded": false + } + } + } +} +``` + +## Passenger Station Agent (Includes building) + +```json +{ + "handler": "AlinasMapMod.StationAgentBuilder", + "position": { + "x": 12886, + "y": 562, + "z": 4703 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "prefab": "vanilla://flagStopStation", + "passengerStop": "whittier" +} +``` + +## Passenger Stations + +### ***DEPRECATED: Use the industry component instead*** + +## Map Labels + +```json +{ + "handler": "AlinasMapMod.Map.MapLabelBuilder", + "position": { "x": 0, "y": 0, "z": 0 }, + "text": "Map Label", +} + +``` \ No newline at end of file