This is a bug that has been causing trouble for multiple mods with custom fonts, like e.g. The Last Days of the Third Age, for a while.
While TaleWorlds has improved the macOS port along the years, and added 64-bit support, we still need to have a manual install guide with extra steps only for people playing on macOS. This doesn't seem to apply to Linux.
From now on I will use The Last Days (TLD) as example, but this applies to every other Warband mod with custom fonts, flora or races.
The reason why custom mod fonts are broken in the macOS version of Warband: They append ../../.. every time they concatenate a file path, they do this because on macOS the game assets are in a different folder (the game root) and the game executable is inside the app bundle (Mount and Blade.app/Contents/MacOS/Mount and Blade). So yeah, if you actually copy (or symlink) TLD's Data folder to Steam/steamapps/common everything works normally because that is also three folders up in the hierarchy when you start from the mod folder. That's the current manual workaround, but that only works for one mod at a time and requires fiddling with the Terminal.
Here is a small snippet of the files that the game tries to open, in order, as logged by opensnoop:
This ../../../Modules/TLD/../../../Data/font_data.xml should be ../../../Modules/TLD/Data/font_data.xml. What they are doing is using the ../../../Data/font_data.xml from the main game (which works) and then putting ../../../Modules/TLD at the beginning. Keep in mind that this also affects every other mod.
The SDL2 documentation tells you that you don't need to use any ../../.. at all. They just have to set SDL_FILESYSTEM_BASE_DIR_TYPE to parent.
So, what's the current workaround for The Last Days? This install guide, and replying to people asking us why their game appears with "broken Korean letters". ¯\_(ツ)_/¯
PS: This is not the only bug with fonts. A more general issue is that textures with language overrides (like the special Chinese fonts that get used when switching the language) can't be overridden by mods either; they can only be retrieved from the main game folder. And this one is a problem on all versions of the game, Windows included. So it would be nice if language-dependent fonts can be made modular.
If anyone from TaleWorlds reads this, if would be great to find and make a list of all these small annoyances and push a fix in a single patch. Most of these are relatively trivial. Hope that this thread helps a bit, it's not the first time I have reported these issues, so they may already be part of the internal bugtracker.
While TaleWorlds has improved the macOS port along the years, and added 64-bit support, we still need to have a manual install guide with extra steps only for people playing on macOS. This doesn't seem to apply to Linux.
From now on I will use The Last Days (TLD) as example, but this applies to every other Warband mod with custom fonts, flora or races.
The reason why custom mod fonts are broken in the macOS version of Warband: They append ../../.. every time they concatenate a file path, they do this because on macOS the game assets are in a different folder (the game root) and the game executable is inside the app bundle (Mount and Blade.app/Contents/MacOS/Mount and Blade). So yeah, if you actually copy (or symlink) TLD's Data folder to Steam/steamapps/common everything works normally because that is also three folders up in the hierarchy when you start from the mod folder. That's the current manual workaround, but that only works for one mod at a time and requires fiddling with the Terminal.
Code:
SteamApps
└───common
├───Data <- ends up looking for mod files here
└───MountBlade Warband
└───Modules
└───TLD
└───Data <- it should be searching here
Here is a small snippet of the files that the game tries to open, in order, as logged by opensnoop:
Code:
501 1470 Mount and Blade 12 ../../../Modules/TLD/languages/es/parties.csv
501 1470 Mount and Blade 12 ../../../Modules/TLD/languages/es/factions.csv
501 1470 Mount and Blade 12 ../../../Modules/TLD/languages/es/quick_strings.csv
501 1470 Mount and Blade 12 ../../../Modules/TLD/languages/es/item_modifiers.csv
501 1470 Mount and Blade -1 ../../../Modules/TLD/../../../Data/languages/es/font_data.xml
501 1470 Mount and Blade -1 ../../../Modules/TLD/../../../Data/font_data.xml
501 1470 Mount and Blade -1 ../../../Data/languages/es/font_data.xml
501 1470 Mount and Blade 12 ../../../Data/font_data.xml
501 1470 Mount and Blade 12 ../../../Modules/TLD/module.ini
501 1470 Mount and Blade 12 ../../../Modules/TLD/game_variables.txt
501 1470 Mount and Blade 12 ../../../Modules/Native/game_variables.txt
This ../../../Modules/TLD/../../../Data/font_data.xml should be ../../../Modules/TLD/Data/font_data.xml. What they are doing is using the ../../../Data/font_data.xml from the main game (which works) and then putting ../../../Modules/TLD at the beginning. Keep in mind that this also affects every other mod.
The SDL2 documentation tells you that you don't need to use any ../../.. at all. They just have to set SDL_FILESYSTEM_BASE_DIR_TYPE to parent.
So, what's the current workaround for The Last Days? This install guide, and replying to people asking us why their game appears with "broken Korean letters". ¯\_(ツ)_/¯
PS: This is not the only bug with fonts. A more general issue is that textures with language overrides (like the special Chinese fonts that get used when switching the language) can't be overridden by mods either; they can only be retrieved from the main game folder. And this one is a problem on all versions of the game, Windows included. So it would be nice if language-dependent fonts can be made modular.
If anyone from TaleWorlds reads this, if would be great to find and make a list of all these small annoyances and push a fix in a single patch. Most of these are relatively trivial. Hope that this thread helps a bit, it's not the first time I have reported these issues, so they may already be part of the internal bugtracker.
Last edited: