You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other

You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other

In A Meta Sense, This Section Isn't Really Necessary


You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 1

The Situation

You are sitting down for your obligatory Karl Franz playthrough now that you can summon the Elector Counts and find out your favorite tabletop unit, the Hochland Long Rifles, now exist in-game! You snap up the DLC in a flash, having played with a mod that added them in the past (shoutout to Dead Baron). Unfortunately, your submod that adds the recruitment of the other units in that unit pack to the Sigmar's Heirs provincial recruitment buildings (shoutout to Xoudad), including the famed Repeater Handgunners, is outdated and causes a crash to desktop (CTD) upon loading into the main menu with it.

If you are experiencing this situation as of 5.0, congratulations! I'm the reason for that. Oops. I've been enjoying an Araby and a Tzeentch campaign. Say you don't want to wait on me, though, or the uploader in your specific situation has fallen off the face of the Earth, having touched grass. No worries! There's ways to work with that.

The Plan

We're going to make a submod. Full handholding.

Handholding from Clannad: After Story, censored for decency

Step by step, here we go.

Basics


You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 10
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 11
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 12
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 13

You can't make something without tools.

As of May 2024, the latest version was 4.2.7. It's available on Github.[github.com]

Go to the .zip file and left-click it, under "Assets". Then unpack it into its own folder somewhere you keep installed programs. Virus scan it, do whatever makes you feel comfortable. This is the tool. If you can't unpack .zip files, use 7zip, found here[www.7-zip.org] .

Next, you'll want Assembly Kit. You don't need to be viewing or making models to get use out of this. Just download it from Steam; you can find it under "Tools", or search "Assembly Kit" in your library.

Now that you have these two programs, you're going to want to open rpfm.ui.exe, let it do its thing in the update window, and then point to the game and Assembly Kit's install paths.

After that, generate the dependency cache. This is what will give you access to the game files, which is very helpful because you're going to be referencing them.

You'll also want to know where your existing mods are installed. They are in steamapps\workshop\content\1142710 in the Steam folder you have Total War: Warhammer 3 installed on. You can search in this folder for the filename of the .pack for a specific mod (that's what mods are stored in). You'll also notice an image in the folder with it, remember that for later!

You'll probably also want a third-party mod manager. Here's Kaedrin's[github.com] , Frodo's[github.com] , and Prop Joe's[github.com] fantastic mod managers. We'll be using wh3mm (the latter) for this tutorial, but it's not necessary.

The Good Part


You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 23
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 24
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 25
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 26
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 27
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 28You
MeDb
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 32
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 33
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 34
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 35
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 36
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 37
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 38
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 39Disclaimer On This Section

Now you're ready to tackle RPFM.

Step One: Prep Work

Next up is checking a mod that needs updating:

Oh boy, red lines galore. Red lines next to entries mean that reference is no good, which is reinforced by the error log below. Let's start from scratch, then. We'll need a new .pack.

First you want to choose "Save as..." because your tables are named after the .pack by default. It will default to the "data" folder you pointed to in settings.

For the purposes of this tutorial, I'm naming it what it's already named. Mods can only be updated with the same name .pack. For your purposes, it's good to follow a naming convention that works for you, but since we're submodding with dependency manager, filename doesn't matter as much. If you're having any grander ambitions, that's beyond the scope of this guide.

Speaking of dependency manager, let's open that now:

We're going to want to add the mods we're submodding to this. It helps with making the submod since having the dependencies means RPFM can refer back to those .pack files, meaning it'll tell you if you misspell the name of something.

In this submod I'm updating, I added Dead's Empire Unit Pack units to the buildings added by Sigmar's Heirs. We'll want both of those listed as dependencies. If you need help finding the name of the .pack file to search for in the Workshop folder for the game, some mod managers show it, and some even let you open RPFM from the mod manager. The mod manager we're using for this tutorial can do both!

Now we've gotten most of the prep work done. Let's get into modmaking!

, , and the

Most submodding doesn't need scripting; instead, you can accomplish many tasks just by making tables and entering data into them. So how do we know which table to make in our database?

Let me tell you: so much can be solved by hitting ctrl+shift+F.

For the mod that adds the buildings, let's look for "barracks", since it's where the halberdiers with shields should probably be recruited. Since the most distinctive word in the unit name would be "repeater" for the unit pack (guessing here), we can look for it in the mod that adds the units.

can click on the above images to make them bigger. These screenshots demonstrate a few things, primarily what a search looks like and what you can use to narrow the search. Tthe little Skaven icons are boxes that, when clicked, can be enabled or disabled; if I wanted to know what the unit or building names and descriptions were, I'd look in Loc, but right now we want to know what the entries regarding buildings as they relate to units are. This is called "breadcrumbing".

Let's say breadcrumbing doesn't work, though. At some point you'll need to get a sense of what tables do in a functional sense. In that regard, it's convenient we're looking at a unit mod as one of the parent mods here. Usually just units don't have a ton of tables in , which means you can just look at all of them. On one hand, this might give the feeling of figuratively drowning as you look through table after table of technical jargon, numbers, and booleans. Remember though: at the top of each column is a header that you can hover over for a brief description and listing of every table that column shows up in, including the one it's originally from. can see an example of these pop-ups in the screenshots above.

It looks like the table that assigns units to the building they're recruited from is building_units_allowed_tables. That's a very utilitarian name. Get used to those sorts of naming conventions, because we're going to be seeing a lot of them.

Now we know where to look for the recruitment buildings and where to look for the units. Let's start by making an entry. It looks like halberdiers with shields are recruited at a tier 3 barracks and repeater handgunners are recruited at a tier 3 shooting range in terms of vanilla buildings. Let's find a tier 3 provincial shooting range and a tier 3 provincial barracks and make an entry for each type of unit.

Uh-oh, it seems we have an error. It mentions that we duplicated keys. This means that if that nine-digit value is repeated anywhere across anything that's loaded into the game, the game will crash. Thankfully, this is incredibly rare when keys are actually added because nine digits makes it unlikely that the same value will show up twice. The unofficial Discord for Total War: Warhammer modding, Da Modding Den, has a bot that automatically generates keys for you.

Then, in RPFM, you can have it generate all the keys from that value on.

And there you have it! Generally submodding doesn't require a ton of entries, but Sigmar's Heirs adds a lot of buildings, and I'm sure you can notice the pattern where each tier 3 building will need one unit assigned to it, so we'll skip a few steps.

Much better. Now we save it up.

Now it's time to test.

Does This Actually Work, Though?

Uploading something without knowing whether it works is a crapshoot at best and false advertising at worst. 're better than that. Boot up the game with the minimum amount of mods necessary for the submod to work (usually the parent mods, the submod, and PropJoe's modding console) and start a campaign with one of the factions that has access to whatever you submodded in. Play a few turns to make sure it works and doesn't crash; console command to get to the point where you can test features that are available in the mid- and late-game.

It's good practice to test every faction that would be affected by your submod, but sometimes this is impractical. also want to make sure that there are absolutely no unintended effects of your submod that aren't easily mitigated; if you made something It's not neglectful to let reports inform your patching, and if the mod is just for you, it won't matter because you'll notice on your own.

Not every submod is made using this specific table. 'll see a lot of faction_agent_permitted_subtypes_tables, unit_set_to_unit_junctions_tables, and units_to_exclusive_faction_permissions_tables as a couple of examples. 'll need to know which is needed for your use case. may also someday experience "scope creep": you want to do more and more with the same project. This will inevitably mean you'll need to learn new skills, including how multiple tables interact.

Now let's get social.

Workshop Part


You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 70
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 71

You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 72
You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 73

If all you want is a local submod, you can boot it with its minimum required mods to function, make sure it does what it's supposed to, and put what you've made in the data folder. All you need to do then is enable it in your mod manager and call it good. However, you've already come this far, why not offer it to the world? There's drawbacks, like having a responsibility to maintain what you make, but it's cool to see people appreciate what you've made, even when you made it for yourself.

That's a part I need to stress.

Etiquette and EULA

You can take requests, but never commissions, per the EULA. You can also never paywall a feature. Even offering early access on a Patreon is a no-go. In addition, it's valuable to apply professional boundaries to your interactions with your subscribers, such as:

Not taking all requests, only those you're interested in

Not dedicating a significant amount of time to mods you will not use

Allowing the subscriber to do their own testing first if they report a CTD that you did not experience in initial testing this patch (many mods interact, and your mod may not be the source of the CTD)

Ignoring non-constructive critical remarks, especially aggressive statements; Internet fights aren't worth it and sometimes stepping back and not letting your ego react lets you get a solid laugh out of these sorts of remarksAs for your interactions with the people you're submodding for, it's good practice to use the minimum amount of tables or scripting and not include assets from the main mod or mods in your submod. This is especially true in the sense that your submod should not be standalone from the mods you're submodding. This is because their work is most often separate from your work (i.e.: you are not on a team together), so it is not within your scope to take their work for your own gain, even if it was made for free. It's a respect thing.

Also, it's entirely possible that for whatever reason that person doesn't want your submod to be publicly available. Considering you're submodding and not making your own mod, this is a valid boundary for them to have. For this reason, read the descriptions of the mods you're submodding to check for explicit permission to submod, and if it isn't there, try contacting them. A comment on the mod you're submodding and a week's notice should be fine if there's a language barrier, but you generally want that explicit permission.

With all that out of the way, let's get into the "how" of making a Workshop upload that can top the weekly charts on a slow day.

Thumbnail

This is necessary before uploading. Keep in mind that your thumbnail is your potential subscriber's first impression of your mod other than the title, and submod titles generally are more informational than tantalizing, so this is your big shot at attracting attention. Go above and beyond here with software like GIMP,[www.gimp.org] Paint Tool SAI,[systemax.jp] , or paintdotNET[getpaint.net] (note that the program name looks like a URL, but entering it as a URL does not take you to their site; the hyperlink is the correct site) to make it pop. I'm sure you feel unsure about three random hyperlinks in a Steam guide. You can check the Wikipedia articles for each program to be sure. Transparency, scaling, and all that good stuff you can do with layers is going to be essential. Watch tutorials! Read guides! Look up the specific thing you want to do with the name of your program after it in the query to see if it's possible! Image editing is a useful skill, and there's plenty of assets to work with.

Here's where you can find unit cards and faction banners, under the parent folder "ui". There's usually some juicy unused assets in here that can be repurposed to promote your submod and thus the parent mod itself. Be sure to keep your old project files on hand to see what you did before and what you can do better next time. Blending, filters, and royalty-free images are your friends.

Once you're done with your project, you'll want to resize it to 1:1 ratio, below 1000x1000, and as a .png. Then you can scale it down if it's too big. How will you know if it's too big? Well, you'll find out in:

Uploading

You'll need the stock launcher and its mod manager for this.

Go under "Your Mods".

Click on the folder icon on the right, select the type of mod it is (generally "Campaign"), and click "Upload".

If the spinning icon where the folder icon was stays around for an extended period of time, the thumbnail is probably too big. 250x250 is always safe, but bigger will fill the space for the thumbnail in the top left of the Workshop page for your upload. Keep progressively downsizing it until it shows up the "Content" section of your Steam profile.

Next, it's time to customize the upload. At this point, it's unlisted. Next up is:

Creating a Workshop Page

Set aside some time for this, because after the first impression of the thumbnail, you still need to convince the viewer to become a subscriber. You're going to want:

Description Use the quasi-HTML formatting available in Steam; headers especially. It makes the upload look more "professional".

Mention exactly what the mod does, but don't get technical. It doesn't matter to the player what table you modified, it matters what that's going to do in-game. Don't leave out anything that it does do. Which units are added where, what mechanics become unlocked for which factions, and things to that effect are mandatory to mention from both an etiquette and a professional boundary standpoint. You may end up with superfluous bug reports in both your submod's and the parent mod's comment sections if you don't.

Mention anything you know doesn't work quite right up-front. This prevents superfluous bug reports.

Do some cross-promotion with your other Workshop uploads. Generally, you'll be submodding the same parent mods, just mixing up which are submodded in each individual submod so the potential subscriber can pick and choose what they want.

Be humble. Thank the people who helped you. This isn't me asking you to fluff me up, because this guide is barebones in my opinion. I always credit Da Modding Den[discord.gg] , the unofficial Total War: Warhammer modding Discord for the help they initially gave me. If you have bigger ambitions or scope creep gets to you, join there and also check out their wiki[tw-modding.com] , which has in-depth guides on aspects like scripting that can broaden your horizons and eventually enable you to make your own standalone mod. Title Keep it short.

Keep it functional.

Something catchy or cute is okay if it communicates what the mod does correctly, but this isn't high school language class. If it doesn't accurately convey what it needs to convey, it's too much fluff and not enough crunch. Screenshots While you're testing the mod, be sure to take screenshots. Show exactly what it does.

More examples can never hurt.

More detail can never hurt.

Topical memes can sometimes boost engagement if they're the first screenshot as long as there's functional screenshots afterwards.With a solid description, title, and set of screenshots, you too can get to the weekly front page!

Terminus


You Won't Believe How Easy Submodding Is, AKA: how to make all your mods play nice with each other image 107

With these tools, you have now made your modding scene debut with no coding, modeling, or art experience needed. You can contribute and be the change you want to see in the world. If you're the sort that seeks external validation, there are stats for each upload that you can periodically check to see the traction you're getting and the approval of your content.

Go get 'em, tiger.

Thanks as always to Da Modding Den, who spent valuable time helping me ascend from monke to data entry monke. 🐒🍌

Let's say this isn't enough and you need more, and you're filled with DETERMINATION. I already plugged it once, but I will plug it again: check out the modding wiki[tw-modding.com] for more tutorials by more competent people.

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=3253766297					

More Total War: WARHAMMER III guilds