#NO custom map loader

59 messages · Page 1 of 1 (latest)

slow locust
#

Custom Map Loader v1.0.0
A BepInEx mod for loading custom terrain maps into Nuclear Option. Custom maps appear as buttons in the New Mission menu. Create maps from heightmap PNGs and play on custom terrain.

Installation
Requires: BepInEx 5.x

Copy MapLoader.dll to Nuclear Option/BepInEx/plugins/
Copy custom map bundles (e.g. map_custom) to the same plugins/ folder
Launch the game
Uninstall: Delete MapLoader.dll and map_ files from plugins/

How to Use
Method 1 - New Mission Menu:

Custom maps appear as [Custom] MapName buttons alongside default maps
Select your custom map and click Create
Heartland loads as base, then custom terrain replaces it
Method 2 - F7 Panel (In-Game):

Press F7 to open settings
Click "Load" next to any map
Adjust height scale (0.5x ~ 2.0x)
"Restore Original Map" to switch back
Multiple Maps:
Place multiple map_ files in plugins/ for multiple options:

map_custom → "Custom"
map_desert → "Desert"
Creating Custom Maps
Requirements:

Unity 2021.3+
Heightmap PNG (white = high, black = low)
(Optional) Color map PNG
Heightmap tools: World Machine, Gaea, etc.
Steps:

Place HeightmapToMesh.cs in Assets/Scripts/Editor/
Place heightmap PNG in Assets/Heightmaps/
Menu: Nuclear Option > Heightmap to Mesh Bundle
Drag heightmap into the slot, optionally add color map
Adjust Mesh Resolution, Width/Length, Max Height
Set Bundle Name to map_yourname format
Click "Build AssetBundle"
Copy output bundle to BepInEx/plugins/
Known Limitations
Custom maps replace visual terrain only (game logic uses Heartland base)
Does not auto-reload on mission restart (use F7 to reload)
World Machine free version: max 1025x1025 heightmap

https://github.com/9138noms/NuclearOption-CustomMapLoader

GitHub

Nuclear Option Custom Map Loader - Load custom terrain bundles (BepInEx mod) - 9138noms/NuclearOption-CustomMapLoader

hollow laurel
#

Wait this is crazy

#

But why is it all plastic

agile sonnet
#

Ooh exciting, can't wait to see how far you and map makers can take this!

mint flax
slow locust
lime tendon
#

Very cool, I wonder how much work it would be to get this working on multiplayer. Might not be possible (without a lot of netcode modifications) due to reliance on workshop downloads?

mortal barn
#

yessir

#

500km map

coral anchor
#

oh it doesnt work in mp yet <?3

mint flax
#

it just replaces the rendered terrain mesh with a custom mesh, its not an actual custom terrain yet

coral anchor
#

what makes it not

mint flax
#

its like when norinori flies around with "FB1", its just a model replacement

#

not an actual asset that the game logic is aware of

rustic torrent
#

@dark dirge @dark dirge @dark dirge @dark dirge @dark dirge @dark dirge @dark dirge @dark dirge

mortal barn
#

cosmic cactus would approve

trim grotto
#

What the peak!?!?

rustic torrent
#

is heightmap the same method the game uses to load maps? there's gotta be some way to do terrain smoother

willow lodge
cinder raven
#

hell froze over holy moly

#

this is like trinity

dark dirge
#

oh thank god

#

this is exactly what I was looking for

#

though, if custom maps are visual only and based on heartland, do we have to worry about flying into invisible mountains?

slow locust
#

If you use something softer, you will get results like this.

coral anchor
#

interesting collrors

sharp sorrel
#

holy SHIT

#

it happened

queen bramble
#

quite cool tool, tho bit tricky to use
Its a "Continent" map from Echelon Wind Warriors, tho size of the map is quite small

slow locust
#

Well, this was made for testing purposes anyway.

queen bramble
round salmon
#

Hi, just a quick question

#

Is it possible to somehow extract og heartland from the prototype?

slow locust
# round salmon Is it possible to somehow extract og heartland from the prototype?

Technically yes, but it requires some work. The mod loads Unity AssetBundles (GameObject with MeshFilter + MeshRenderer), not raw heightmaps. So the steps would be:

Extract terrain mesh & textures from the prototype using AssetStudio or UABE
Reassemble them as a GameObject in Unity Editor
Build as an AssetBundle with the customterrain_ or map_ naming convention
Keep in mind the custom map is visual-only (collision still uses the base game terrain), and the prototype's terrain structure might differ from what the mod expectations. But if you can get the mesh out and bundle it properly, it should work.

round salmon
#

Still, kudos for your work!

mint flax
#

noblackbox can generate height maps from in-game terrain

#

if you want to use the mesh for something you can get it directly from the game files but you should be aware that this is only permitted for non-commercial purposes and only after granted approval, which you can get by #submit-a-ticket

round salmon
round salmon
hollow laurel
#

Hey is it possible to make maps without generating

#

And what would i need to use?

#

I dont want generated maps

#

I want to make some vanilla like maps

#

I want to make some biome specific, some landlocked and some kar or bote compatible maps

#

Also can it list the maps next to exisiting 2 or does it override heartland?

#

@slow locust

slow locust
# hollow laurel Also can it list the maps next to exisiting 2 or does it override heartland?

Yes, fully handcrafted maps work — no procedural generation involved. You paint a heightmap PNG yourself (white = high, black = low) in any image editor, optionally add a color map, then run it through the HeightmapToMesh tool in Unity 2021.3+ to build an AssetBundle. Drop the bundle into BepInEx/plugins/ named map_yourname and it shows up automatically.

Multiple maps: just drop multiple map_* bundles in the plugins folder. They appear as [Custom] MapName buttons in the New Mission menu alongside Heartland and Pelagia — nothing gets overridden.

Important caveat for your use case: the mod replaces visual terrain only. Under the hood, every custom map still runs on Heartland's game logic (frontlines, AI nav, mission objects, ocean level all use Heartland's coordinates). So:

Biome-specific visuals → ✅ totally fine, just paint/texture however you want
Landlocked maps → ⚠️ visually yes, but ocean plane and Heartland's coastlines are still there underneath
KAR/BOTE compatibility → those mods read Heartland's underlying logic, so they'll "work" but on Heartland's layout, not your custom one
If you want truly standalone maps with their own logic/frontlines, that would need a much deeper rewrite. For pure visual variety though, this mod does exactly what you want.

hollow laurel
#

Hold on

#

This is generated BY IMAGE???

slow locust
# hollow laurel This is generated BY IMAGE???

Correct — it's a mesh, not Unity Terrain. The HeightmapToMesh tool reads your PNG pixel-by-pixel and converts brightness values into vertex heights, building a single mesh that gets packed into the AssetBundle. So yes, the terrain is literally generated FROM the image you paint.

White pixel = high vertex, black pixel = low vertex, grayscale in between. Resolution of the PNG controls mesh density (e.g. 1025x1025 heightmap → 1025x1025 vertex grid). The optional color map PNG just gets applied as the mesh texture.

It's not Unity's Terrain system (no splatmaps, no terrain layers, no foliage tools) — just a static mesh with a texture. That's why it can only replace the visual terrain and not interact with game logic.

hollow laurel
#

when will this also change terrain and everything

slow locust
#

IDK

hollow laurel
#

Damn okay