Mount & Blade II: Bannerlord

File information

Last updated

Original upload

Created by

sinkpoint

Uploaded by

sinkpoint

Virus scan

Safe to use

Tags for this mod

About this mod

This mod allows you to play with multiple mods that make changes to the world map at the same time.
For example, play Calradia Expanded + Huxia Kingdom + Tetsojin and any future settlement mods together without any patches needed.

Requirements
Permissions and credits
Donations
What is this
This mod allows you to play with multiple mods that make changes to the world map at the same time.
For example, play Calradia Expanded + Huxia Kingdom + Tetsojin and any future settlement mods together without any patches needed.

This mod will auto-detect and merges the Main_map/scene.xscene files from multiple mods, taking into account the load order, into a single file.
This resolves the game crashing conflicts from running multiple worldmap/settlement mods.

Navmesh
Of course there's a catch. There's no way to auto-merge multiple navmeshes. So I've created a super-navmesh, based on Calradia Expanded navmesh, and stitching together my Huaxia kingdom areas, I've also created new navmeshes for northeast corner of the map, for any future expansions. 
The idea is to have the largest navmeshes possible, so this mod can contain any future settlement areas. 

What if I don't want to run Calradia Expanded
If you don't want to run Calradia Expanded, then simply replace the supplied navmesh with a different one.
The mod navmesh path is at:
"$BANNERLORD_PATH/Modules/SpSceneMerger/SceneObj/Main_map/navmesh.bin" 

To use the default navmesh:
Replace the file above with the one at "$BANNERLORD_PATH/Modules/Sandbox/SceneObj/Main_map/navmesh.bin" 

To use default+larger area, I recommend the navmesh from Huaxia Kingdom:
Replace above with the one at "$BANNERLORD_PATH/Modules/SpHuaxia/SceneObj/Main_map/navmesh.bin" 

How to use  it
Make sure to load this mod LAST. 
Here's a recommended load order of the existing settlement mods:

Amazon of Calradia
Huaxia Kingdom
Tetsojin
Valkyrie Settlements
Calradia Expanded (load this before SPSceneMerger)
SpSceneMerger (this mod)


On the first time loading the game with it. Click on the "Merge" Button.
Once the merge completes, RESTART THE GAME for the changes to take effect.
This only needs to be done once. If mods change, or new mods are added/deleted, then the merge operation should be rerun as needed.


That's it, enjoy!

Possible problems

Because this mod simply merges the settlement objects, it's possible for buildings of multiple mods to end up in the same place. It's not a problem with this mod, please reach out to the mod authors for them to move the objects.

Merging logic primer

Hi All, I'm seeing lots of location conflicts and crashes in the comment section.
Having just fixed SpHuaxia for 1.6.3, there's a possible way to resolve these, but it will require efforts from all mod authors. 

I've tested SpMerger on 1.6.3, and it works fine. SpMerger is a simple XML merger using standard C# xml libraries, so its binary should be compatible with future Bannerlord changes unless they do something drastic to the way they load modules. 

After 1.6.1, Talesworld made some breaking changes to the notables definitions, and to the world map, that conflicts with older world map definitions. This is the source of most of the crashes. Including white circles and clickable locations not occuring where they should be. Notable definitions is beyond the scope of this mod, below are the details of the worldmap changes. 

Bannerlord world map is at $BannerlordPath/[ModName]/SceneObj/Main_map/scene.xscene, each mod that modifies the world map will contain a complete version of this file. 
When saving the map from the mod editor, all map meshes in that version are saved into this file. SceneMerge compare and find new and unique entities between mods, and merge them into one scene.xscene inside $BannerlordPath/SpSceneMerger/SceneObj/Main_map/scene.xsceneWith the assumption that all common entities from the base game are the same. 

The order of the load is important, since later loading order will overwrite earlier scenes. So for example a normal load order is:

[[ Sandbox ]]<---[[ Tetsojin ]]<---[[ SpHuaxia ]]<---[[ SpMerger ]]

The arrows points to direction of overwrite. I.e tetsojin scene will override sandbox, and so on. 
Now when a new version with breaking changes, like 1.6.3 happens, then we get

[[ Sandbox (1.6.3) ]]<---[[ Tetsojin (1.6.0) ]]<---[[ SpHuaxia (1.5.10) ]]<---[[ SpMerger (???) ]]
This means that the breaking differences between Bannerlord versions can now be included into the world map, and the result will be unpredictable. 

So for the merge to work properly, it's important to make sure all mods contain world map of the SAME VERSION as the Sandbox. 

For mod authors

Version changes can both removed and added new entities into the scene. The best way to update the scene file, is to manually pick out your unique entity additions from the xml file, and insert them into the $BannerlordPath/SandBox/SceneObj/Main_map/scene.xscene file, and save into your own mod. Feel free to contact me for help.

Discord
https://discord.gg/UcmjxFtenr