• The forum has been updated. For an explanation of some of the changes, head over here.

Recent content by Swyter

  1. Swyter

    Mount&Blade Cartographer | Just my own spin-off...

    When i try to open the program it immedietly shows this error.

    How can i solve this?
    As you can see in your error log, the final module folder (the one with your mod's .txt files and what the game actually reads) ends up being the module system folder (the one with the .py files). That probably means that your module_info.py points to the wrong location (probably empty or has a single dot, so it gets interpreted as a relative path and thinks that it points to itself).

    The final mod path needs to exist. Ideally under the game's Modules folder, as its own thing. Otherwise you can't play it, and naturally cartographer can't find the game's font either. Seems like a similar issue as @CumanBoi's.

    That's why it complains. Hope that helps. :party:
  2. Swyter

    Mount&Blade Cartographer | Just my own spin-off...

    Hi Swyter,
    Every time i import the object file that i created in blender, despite i did assign materials, it shows that entire terrain is filled with plains.
    How can i solve this problem?
    I think you need to split the meshes by material type, or into material groups. I show the important OBJ export settings in a Blender screenshot. It's been a while and the Blender interface has changed a bit, but it should be easy to find the equivalent toggles.
  3. Swyter

    Mount&Blade Cartographer | Just my own spin-off...

    Thank you for the explanation.

    Also, for the app itself, Im getting this common problem:

    If you run the program out of the box it should launch and show the font, as both files are included. If you changed the path to point to your own mod check that the path is valid.

    Seems like there's no module path at all between those two <>, which is weird. As I show in the guide, you need to tell it where your module system is, it then finds the final/target folder via module_info.py, where the .txt files are output when you run build_module.bat. So msys -> module folder -> font folder.

    There seems to be something wrong in the output path itself or in the program configuration. In any case once you see your path in the black window it should be able to see if your mod has a custom font and use it, or get the original one from the game on its own.

    Hope that helps, take a look at some screenshots to see how it should look like when it works properly. If nothing works you can also just overwrite the bundled example files with your stuff. But it's way less convenient.
  4. Swyter

    Mount&Blade Cartographer | Just my own spin-off...

    Hello, is it possible through this application to import uninteractable objects to the world map that are not necessarly associated with the terrain? If I want to add some random burnt houses to the campaign map, for example. Also how could I add my own terrain type by Blender?

    Kind regards.

    Hi, the amount of terrain types and their map behavior are more or less hardcoded. You can't add new ones, only change the corresponding materials/textures in OpenBRF. Passability and party speed still depends on the specific material a party is walking over.

    Even if your map objects are uninteractable you need to use/add either static parties, or trees (also hardcoded to show on top of certain materials, but you can change their models and textures and even make them super big) for decoration. In Star Wars Conquest we used a single snowy tree for the galactic disc background, and normal trees for asteroids. Just to give you an example.

    The strategic map is pretty limiting and inflexible; as you can see we can't even texture or set the map terrain normals/UVs. They are auto-generated.
  5. Swyter

    Mount and Blade and Warband use a modified Quake 3 engine

    A few misunderstandings here.

    Marco Tarini added MD3 support to OpenBRF because there aren't that many generic authoring formats that support vertex animations. Same thing for Valve's SMD. It's a smart way of reusing other people's DCC plugins for similar things. That way we don't have to make our own Blender/Maya/3ds Max extensions and keep them up to date. Why reinvent the wheel?

    But again, this is only something that is used for importing into BRF files in this particular software made after the fact by a modder that doesn't have anything to do with TaleWorlds. The game doesn't read anything other than the formats Armagan and the rest of the team made. TaleWorlds originally used their Blender plugin to generate TRF (text resource) files, the game reads them and spits BRF (binary resource) files during startup. A bit like baking a cake, reading tailored binary files is always going to be faster than parsing text. It can copy the data structures directly from disk to RAM and use them straight away without much shuffling or conversion.

    The good thing about text is that it can be pretty, humans can read and write it easily. But it's slow, heavier and takes significantly more space. That's why TRFs are only read once (or when modified) and cached into BRFs. Best of both worlds.


    The game doesn't know anything about Python either; the Module System is a .txt bytecode compiler that is made out of Python scripts and data. You can make your own .txt generators in any language. Python was a good choice because of the handy way of assembling tuples and having macros and syntactic sugar on top.

    Personally, I think it was a very smart idea. It's both easy to tweak (tables of tables of data right next to logic) and customizable from the inside out. I love it. Without that Mount&Blade wouldn't have been half as successful. They went for C# for the sequel, and I don't think it was a great call, it raises the bar significantly and adds unneeded complexity. Maybe Lua would have been better. But we'll see.


    From what I know, the RGL engine grew out of a DirectX sample project, but it's otherwise custom made, barring some libraries. And the internal organization isn't particularly pretty, but that's normal for every single game out there; requirements in real life change all the time, so there are some shortcuts taken here and there.

    @cmpxchg8b and @K700 know all this way better than me, but it's clearly programmed in C++, with classes, custom data types, constructors and that kind of thing. Maybe some small third-party files are C.

    The subsystem that reads the mod .txt files and interprets the triggers and operations is custom C++, that's for sure.

    Technically, I'd say that the game has always been more impressive than it looks. Art and visual effects have always been the main issue, maybe caused in part by bad tooling. But this is just guesswork.

    You only need to compare Native with any modern Warband mod. Just by adding Gutekfiutek's props you improve the mood tenfold. Thank Marco Tarini, Thorgrim and the others for giving us great tools, or at least better than the official ones.

    Hope it helps. Let me know if I messed up somewhere. :party:
  6. Swyter

    TLD (The Last Days, LOTR mod) for M&B 1.011 Info

    I would try installing the M&B 1.011 enhanced version, activating it with your Steam/TaleWorlds serial. And then just extracting the TLD folder for both the standalone release and its nightly patch, and then just copying the dinput8.dll into the game's .exe folder. In newer versions of TLD you don't need to do anything else.

    These are the only instructions you need:

    Alternatively, if that doesn't work for obscure reasons, even if we use M&B 1.011 all the time and seems okay, you can try the old-fashioned way, which is a matter of replacing/overwriting the files in the main <game-root>/Data folder with the ones under <game-root>/Modules/TLD/Data, as well as copying over the core_<whatever>.brf files from <game-root>/Modules/TLD/Resource into <game-root>/CommonRes. You can also copy and paste <game-root>/Modules/TLD/mb.fx into the main game folder as mb.fxo, as well as the (new) *.pp files from your <game-root>/Data folder into the root. With that you should be all set, you wouldn't need the dinput8.dll thingie after that.

    Keep in mind that after this no other mod will work; so maybe, in your case, having a second M&B 1.011 install may be a good idea.
  7. Swyter

    TLD (The Last Days, LOTR mod) for M&B 1.011 Info

    What's the problem? See my post above, don't follow the install guide in the bundled PDF because that part is obsolete.

    Another thing to keep in mind (once you've installed it following the newer instructions) with the original M&B 1.011 and current TLD versions is that due to memory limitations you need to set texture quality in the launcher to the minimum, and we also recommend using the enhanced version of the game when not playing on Warband. But, for most people, you should be using Warband and installing the Steam Workshop version.

    But other than that it should work fine. Let me know if that helps.
  8. Swyter

    Unresolved [Game bug] Custom fonts/flora/races, and more generally Data folder overrides, are broken in the macOS version of Warband

    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...
  9. Swyter

    Comprehensive List Of Module.ini commands

    This is great. We should be grateful for all the customization and operations that Napoleonic Wars and Viking Conquest brought to the table. I don't think half of these Module.ini entries were even present in 1.011 or early-ish Warband versions.

    The Last Days has been struggling with Warband's HDR being set to high for years, and our solution until now was to warn about it in the option itself. Props to InVain for finding a better solution with the disable_high_hdr stuff, and you, for making a comprehensive list. :party:
  10. Swyter

    Can't upload MODS to Steam Workshop

    Yeah, I'd use the TaleWorlds uploader to set those tags once, maybe there's a way using SteamCMD, but I don't know about it.
  11. Swyter

    Can't upload MODS to Steam Workshop

    Hello, how to add tags to vdf?
    I think we just added them with the normal TaleWorlds uploader by submitting an almost blank mod entry (with just module.ini) the first time around.

    But maybe something like "tags" "Put, Your, Tags, Here" should work, too. As you can see they mirror these SetItem functions, so the .VDF key names should match for the preview image, changenote and things like that.

  12. Swyter

    TLD (The Last Days, LOTR mod) for M&B 1.011 Info

    Oh, boy. Blast from the past. Ensure that you are downloading the correct version of TLD for your game.
    For shaders to work on Mount&Blade 1.011 you need to copy the dinput8.dll file from Modules/TLD into the main game folder.

    In any case it sounds like you are running a very old version of the mod. You can always get the latest version from here:
    If you use Steam and own Warband we generally recommend subscribing to the Steam Workshop version and call it a day.
    It auto-updates and everything. All the links and instructions are in that page. Hope that helps. ¯\_(ツ)_/¯
  13. Swyter

    SP Info Presentation Changing color of Text, Buttons, Menus and highlight state (a question 4 Gurus)

    @Eärendil the Mariner reminded me of this thread.

    When your cursor moves over any text label (think of the lord or location lists) it changes to pure blue and red. Same for selected labels.
    You can't change those colors otherwise, they are hardcoded by the engine. With this you can override them.

    Turns out the highlight state for the things I was asking about are hardcoded and don't have their corresponding .txt variables. But for SWC and TLD we ended up replacing those ugly electric blue colors by changing the font file vertex shader with simple rules.

    If the vertex color is between this and that shade of blue, replace it with this other color. And it works fine in DirectX 9 mode. :party:

    Star Wars Conquest
    https://github.com/swconquest/swconquest/blob/master/mb_src.fx#L718-L776 (M&B 1.011)
    https://github.com/swconquest/swconquest/blob/master/_wb/mb_src.fx#L525-L583 (Warband)

    The Last Days
    https://github.com/tldmod/tldmod/blob/master/mb_src.fx#L785-L792 (M&B 1.011)
    https://github.com/tldmod/tldmod/blob/master/_wb/mb_src.fx#L5814-L5821 (Warband)

    That's nice and all, but how do I use all this?
    The short and sweet version is that you need to change the vs_font function of your game that ends up being used for the font_uniform_color, font_background and font_outline HLSL techniques.
    1. Get the Native HLSL shader file in text form. For M&B 1.011 you can find the mb.fx file in the game's root folder when you install the enhanced version, or just grab it from here. The Warband shaders are distributed separately, here.
    2. Get Microsoft's DirectX 9 Shader Compiler binary, you can get it as part of the legacy DirectX SDK or directly from here. You can check that the file is signed by Microsoft and hasn't been tampered with by going to Properties > Digital Signatures; ensure it's valid before running it.
    3. Rename your shader file to mb_src.fx, just to make it clear. Get the compile script from here and fxc64.exe and put everything in the same folder.
    4. Edit the mb_src.fx file with your favorite text editor (if there isn't HLSL, Cg, GLSL syntax highlighting you can set it to C or C++) as shown in the SWC and TLD examples above. You can pretty much copy-paste the highlighted part in the middle of the function and it will work all the same.
    5. Run the compile script by double clicking _compile_fx64.cmd, for Warband it will take a while, depending on your CPU. If everything is okay a new mb.fx file will show up. Put that file next to your mod's module.ini, in the mod root folder and next time you launch the mod the game will pick that file instead of the common one.
    6. Remember that you can live reload the shader file by pressing Ctrl + F when edit mode is enabled in the launcher, without having to restart the game, which makes testing and prototyping a much nicer experience.

    Note: Mount&Blade 1.011 has a much more limited support for shaders, maybe you want to use Iron Launcher's dinput8.dll to provide that functionality; just drop that next to the game's binary and everything should work out of the box. While also providing Data folder and core_*.brf resource overrides.
Top Bottom