Total War Warhammer 2 Uploading a Mod to Steam

Modding is supported past Gladius out of the box. Modders are free to change it as they see fit, but the developers would similar to note the post-obit:

Conduct in mind that Warhammer 40,000: Gladius - Relics of State of war contains IP owned by Games Workshop, and as a result you should consider a few things when creating mods for this title:

  • When uploading Warhammer 40,000: Gladius - Relics of War mods to the Steam Workshop, you'll need to confirm you've read the section on Mods in the game'southward EULA. This is provided as a pop-up bulletin when y'all are uploading.
  • Please ensure your mod meets the requirements laid out in the EULA, especially with regard to the treatment of Games Workshop and Warhammer twoscore,000: Gladius - Relics of War IP, and ensuring that no 3rd party IP is present.
  • Do not include or alter content in a mode that is offensive or denigrating to the Globe of Warhammer 40,000.(aka imply their game balance is s-*h-*i-*t-*e-* which it is)
  • Please just include Warhammer twoscore,000 content in your mods – other Games Workshop IP like Age of Sigmar or Warhammer Fantasy Battles is separate and is oftentimes licensed to other companies, or used in other games.
  • It is not permitted to charge or enquire for coin for your Warhammer 40,000: Gladius - Relics of War mods.

Contents

  • 1 Steam Workshop
    • 1.1 Mod Location
    • 1.2 Mod Listing
    • 1.iii Uploading to the Steam Workshop
    • one.4 Errors
  • 2 General Modding
  • 3 Mod Location
  • 4 The \Data Structure
  • 5 Log Files & Crashes
  • six XML Programming
  • 7 Modifiers
  • 8 General Notes about Prototype Editing
  • 9 Dev-Provided Modding Resource
  • x A Uncomplicated Example Modernistic

Steam Workshop [ ]

This section covers the steps needed to get a Mod uploaded to the Steam Workshop.

A PDF version of this guide is bachelor here

Mod Location [ ]

Gladius uses not-destructive modding, i.e., the game's core files are never modified. In social club for Gladius to load mods, they must be placed in:

    • Windows:

          My Documents\Proxy Studios\Gladius\Mods\<mod name>

     • Linux:

          $HOME/.config/Proxy Studios/Gladius/Mods/<modernistic name>

replacing <modernistic proper name> with the proper name of the bodily mod. Whatsoever mod files meant to supercede their original counterparts must be named and placed in the correct directory hierarchy under the Data subfolder in the chief <modern name> folder.

In the <modernistic name> folder, identify a PNG epitome named Preview.png. This image will be used as the Steam Workshop thumbnail. The image should be less than ane MB in size to ensure continued compatibility with the Steam Workshop platform.

Previewimagelocation.png

Mod Listing [ ]

Login to Steam and Launch Gladius. From the main menu, navigate to Actress → Mods:

Mainmenuextrahover.png
Extramenumodshover.png


If the modernistic is placed in the correct location in Step i, and then you should encounter it listed in the Mods menu:

Modlist.png


A modern that has not however been uploaded to the Steam Workshop will accept 2 icons for its entry:

Uploading to the Steam Workshop [ ]

Click on the Upload button in Step 2. A window will appear request you to accept the publishing terms:

Eula.png

Y'all must agree to these terms if yous want your modern to exist uploaded to the Steam Workshop.(Characteristic removed)

Once you accept the terms and click the Concur button, the mod will start uploading. A successful upload to the Steam Workshop will display a prompt saying the mod was uploaded:

Moduploadedsuccess.png

An improver icon will now announced in the mod listing:

  • Details
    Moddetails.png
    Click this icon to open your Steam browser to the Steam Workshop folio for the mod. You can at present enter in information well-nigh the mod on the Steam Workshop and upload whatsoever additional media to showcase the mod.

Subsequently the modern has been successfully published to the Steam Workshop, the mod directory will now contain a file chosen SteamID.txt:

Steamid.png

This file is the unique Steam Workshop URL corresponding to the mod.


Whatsoever changes / updates to the mod, simply re-upload using the Upload icon equally before.

Errors [ ]

Hither are some common errors you might encounter when attempting to upload the mod:

  • k_EResultFail - Generic failure.
  • k_EResultInvalidParam - Either the provided app ID is invalid or doesn't match the consumer app ID of the item or, y'all take non enabled ISteamUGC for the provided app ID on the Steam Workshop Configuration App Admin page. The preview file is smaller than 16 bytes.
  • k_EResultAccessDenied - The user doesn't own a license for the provided app ID.
  • k_EResultFileNotFound - Failed to get the workshop info for the particular or failed to read the preview file.
  • k_EResultLockingFailed - Failed to aquire UGC Lock.
  • k_EResultFileNotFound - The provided content folder is non valid.
  • k_EResultLimitExceeded - The preview prototype is likewise large, it must be less than ane Megabyte; or there is non plenty space available on the users Steam Cloud.
  • known and removed, tested Characteristic has been removed. no longer able to upload to Steam workshop.

General Modding [ ]

Practically every aspect of Gladius - Relics of War is moddable; merely modifying the game logic remains inaccessible.

Y'all tin can create new or modify existing:

  • units
  • factions
  • technologies
  • traits
  • items
  • features
  • quests
  • GUI
  • audio
  • cutscenes
  • models (meshes)
  • skins (materials)
  • animations
  • general game parameters


General Notes:

- References to game directories like \Data, \Resources, etc. are shorthand for

  • \Warhammer 40000 Gladius - Relics of War\Data;
  • \Warhammer 40000 Gladius - Relics of War\Resources;
  • etc.


where \Warhammer 40000 Gladius - Relics of War is the top-level game installation directory.

- For brevity, the wiki uses the Windows backslash \ notation with regards to directory identification. Linux users should readily supervene upon the backslash with a forward slash /.

Mod Location [ ]

Every bit of patch 1.08, the game uses not-destructive modding (i.e., cadre files are not modified). In order for the game to load mods, they must be placed in:

  • (Windows) \My Documents\Proxy Studios\Gladius\Mods\<mod name>\Data\
  • (Linux) ~/.config/Proxy Studios/Gladius/Mods/<modernistic proper name>/Data/


replacing <mod name> with the proper name of the actual mod. Whatever mod files meant to replace their original counterparts must exist named and placed in the right directory bureaucracy (detailed beneath) in lodge to be flagged equally such past the engine.

The \Data Construction [ ]

All of the game'southward assets are located under \Warhammer 40000 Gladius - Relics of War\Data:

  • \Information\Audio: sound and music.
  • \Information\Cinematics: cut-scenes.
  • \Data\Core: in-game text and language translations.
  • \Data\GUI: user interface.
  • \Data\Scene: camera management.
  • \Data\Video: icons, textures, meshes, animations, fonts, and sprites.
  • Data\World: specific information on units, buildings, factions, weapons, and upgrades.

Rather than further enumerate individually all of the numerous sub-directories, the location of specific remaining content is best absorbed through particular modding ventures. For example, when creating a new "unit", that respective section of the modding guide will elaborate all the necessary files required nether \Sound, \Video, \Earth, etc.

Log Files & Crashes [ ]

As with any general modding venture, there volition often exist times where changes will atomic number 82 to a game crash. To help diagnose the source of the mistake, in addition to an on-screen error prompt, the game writes an error log to:

  • (Windows) \My Documents\Proxy Studios\Gladius\Logs\Gladius.error.log
  • (Linux) ~/.config/Proxy Studios/Gladius/Logs/Gladius.fault.log


Consulting this log file is an splendid place to help narrow down the source of the error.

the game will automatically "update" after a crash and re-download/verify cadre game files and then information technology will automobile disable all mods afterwards a crash on next reboot.

Some general crash bug:

  • Missing elements in \Data\Core and \Data\Earth usually cause a crash on game startup.
  • Missing elements in \Data\Video normally crusade a crash with "Visual C++ runtime error".
  • Click on "New Game". Crashes here are mostly due if you missed calculation faction base images to new factions, or changed WorldParameters.xml
  • Launch this new game. Crashes hither occur for missing cutscenes in Data\Video, missing starting city or units, but likewise other reasons.
  • Settle a new city.' Crashes here occur of you forgot to add together a base city for your faction.
  • Once you exam a game where you tin settle a urban center, also remember to check the Compendium and Enquiry features and meet if they do not crash.
  • Crashes when clicking on Research mean y'all have bad references in Information\World\Upgrades and Data\Core files, or merely missing icons in Data\Video, or that you lot added a inquiry that does not have enough researches leading to that tier.
  • Crashes when clicking on Compendium mean you forgot to add together flavor or description to some elements in Information\Core.

XML Programming [ ]

Every aspect of the game outside of the engine is defined using XML. The difficulty posed to the modder is not XML per se, but rather the general game framework built using XML. In other words, Gladius XML. The engine recognizes certain predefined XML code structure that modders need to adhere to. Opening upwardly an .xml file and irresolute a value or following a blueprint to add to the existing code is trivial. Going through such an example is illustrated at the end of this folio. Getting the engine to piece of work with custom XML tags is the tricky part. In this section nosotros give an case of a more intricate nature showcasing how the general Gladius XML framework is structured.


For this example we will consider a unproblematic modification to the color of the Card push button in the top-right corner of the globe GUI. This button is defined using the following code:


\Data\GUI\Blueprints\Earth\TopBar.xml

<?xml version="1.0" encoding="utf-8"?> <earth:topBar type="topBar"> 	<container layoutAlignment="MiddleLeft" preferredSize="FillParent FillParent" weights="ii FillAll"> 		<label name="resourcesLabel" alignment="MiddleRight" preferredSize="WrapContent FillParent" stringStyle="<way proper noun='Heading'/>"/> 	</container> 	<container layoutAlignment="MiddleCenter" preferredSize="FillParent FillParent" weights="one FillAll"> 		<characterization name="turnLabel" alignment="MiddleCenter" preferredSize="FillParent FillParent" stringStyle="<style name='Heading'/>" wordCut="one"/> 	</container> 	<container layoutAlignment="MiddleRight" layoutGap="8 8" preferredSize="FillParent FillParent" weights="2 FillAll"> 		<label proper noun="playerLabel" alignment="MiddleRight" preferredSize="FillParent FillParent" weights="ane FillAll" stringStyle="<fashion proper noun='Heading'/>" wordCut="1"/> 		<!-- <button proper name="restartButton" preferredSize="148 FillParent" caption="<string name='GUI/RestartScenario'/>" type="emphasizedButton"/> --> 		<button name="menuButton" preferredSize="148 FillParent" caption="<cord name='GUI/Menu'/>" keys="Escape"/> 	</container> </world:topBar>            


Specifically, nosotros are interested in the third-concluding line <button proper noun="menuButton" ... />. This tells united states that the Carte du jour button way is divers as <push>. Now, the definition for <button> is:


\Data\GUI\Skins\Default.xml

<skin> 	... 	<button preferredSize="200 28" 			pressedSound="Interface/Press"> 		<background texture="GUI/Push" color="1 ane 1 i" 				pressedTexture="GUI/Push button" pressedColor="1 1 ane 1" 				padding="7 7" delta="two 2"/> 		<content margin="4 ii"/> 	</button> 	... </pare>        


From this we see that the original texture used for a <push button> is \Information\Video\Textures\GUI\Push button.dds. We can proceed by either ane) irresolute what Button.dds looks like, 2) create a new image, for example, NewButton.dds, and set pressedTexture="GUI/NewButton", or three) modify TopBar.xml. The modder is encouraged to try the first two approaches and see that they are inadequate solutions. The underlying image used past <button> is system-broad, so aspects of the UI that the modder never intended to modify volition, in fact, alter. Therefore, we are left with implementing a Gladius XML solution.


The engine expects TopBar.xml to pass to information technology <push button>. If the modder attempts to create a new custom XML tag, for instance, <menuButton>, so the game will crash. Yet, the problem is not where to define it, only rather how to define it. There is no getting around the fact that <button> is a construct defined straight in the engine. Therefore, the modder is not going to be successful in trying to create a new construct that the engine does not inherently understand. What the modder can practise is modify which <button> will exist loaded:


\Data\GUI\Skins\Default.xml

<skin> 	... 	<button preferredSize="200 28" 			pressedSound="Interface/Press"> 		<background texture="GUI/Button" colour="1 one one 1" 				pressedTexture="GUI/Push button" pressedColor="1 1 1 1" 				padding="seven 7" delta="2 2"/> 		<content margin="4 ii"/> 	</push button> 	... 	<menuButton preferredSize="200 28" 			pressedSound="Interface/Printing"> 		<background texture="GUI/ButtonMenu" color="one 1 1 i" 				pressedTexture="GUI/ButtonMenu" pressedColor="1 1 1 1" 				padding="7 7" delta="2 ii"/> 		<content margin="4 2"/> 	</menuButtonbutton> 	... </skin>        


So what nosotros did was define a new XML tag <menuButton> that has the exactly same structure as <button>. Now, in TopBar.xml, nosotros can reference this new push by the type attribute:

<button type="menuButton" name="menuButton" ... />        


The above example demonstrates that XML in-and-of-itself is insufficient beyond superficial manipulation of existing values. Advanced modding relies on agreement the underlying Gladius XML framework.

Modifiers [ ]

When creating or modifying units, buildings, traits, weapons, etc, modifiers are very important to know about. More information about their structure, lists of their components and explanations of their effects can be found in the modifiers page.

Full general Notes about Prototype Editing [ ]

All images (autonomously from fonts) use the DDS file format. The freely-available Paint.Internet program (https://www.getpaint.net/download.html) is an like shooting fish in a barrel and convenient way to work with DDS images.

The trickiest role in getting images to work in Gladius - Relics of War is to make sure to take the right export settings for the DDS format. The export settings will announced only after first saving the file in Paint.Cyberspace. Utilize the following export settings:

- DXT3 (Explicit Alpha) - Cluster fit (Slow/HQ) - Perceptual - Generate Mip Maps - Fant        

The only other thing to go along in mind while working with images in Paint.NET is to set an appropriate Opacity-Alpha value (which is accessible from the Colors palette -> More than). Setting this value correctly might require some trial and error, especially if it'due south an prototype to which the game applies it's own additional filters.

Or for GIMP to export to DDS. under (Pinch) use the BC 2 /DXT3 and in the (Mipmaps) select Generate mipmaps (at this time its is believed that no other options need be changed.)

Dev-Provided Modding Resources [ ]

The evolution team at Proxy Studios has provided the community with official tools that tin can be used for modding. These are the aforementioned tools used in-house past the studio when creating game assets. Anyone who bought the game, automatically gets access to the tools:

  • \Resource\3dsMax. Exporting scripts from 3ds Max for animations, meshes, vegetation, and scenes.
  • \Resources\Scripts\ConvertFromWarhammerSpec.py. Python script to automatically convert 7e Codex values to in-game units.

A Simple Example Mod [ ]

By editing \Data\World\Blueprints\WorldParameters.xml you lot tin add together an selection for larger maps. The original file contains the following code:

<sizes> 	<size dimension="27 27" recommendedPlayers="two"/> 	<size dimension="33 33" recommendedPlayers="3"/> 	<size dimension="38 38" recommendedPlayers="4"/> 	<size dimension="46 46" recommendedPlayers="6"/> 	<size dimension="53 53" recommendedPlayers="8"/> </sizes>        


We tin can add a new line at the end to brand a new map size, 80x80 with recommended player count of 16:

<sizes> 	<size dimension="27 27" recommendedPlayers="2"/> 	<size dimension="33 33" recommendedPlayers="3"/> 	<size dimension="38 38" recommendedPlayers="4"/> 	<size dimension="46 46" recommendedPlayers="half dozen"/> 	<size dimension="53 53" recommendedPlayers="viii"/> 	<size dimension="80 80" recommendedPlayers="16"/> </sizes>        


Now we must also locate the string reference, otherwise the game will crash. We do this past modifying \Data\Core\Languages\<...your language...>\WorldParameters.xml. The original file contains the following code:

<linguistic communication> 	... 	<entry proper name="Size" value="World Size"/> 	<entry name="Size0" value="Tiny"/> 	<entry name="Size0Hint" value="%i%: Recommended for 2 players."/> 	<entry name="Size1" value="Pocket-sized"/> 	<entry name="Size1Hint" value="%one%: Recommended for 3 players."/> 	<entry name="Size2" value="Medium"/> 	<entry name="Size2Hint" value="%1%: Recommended for 4 players."/> 	<entry name="Size3" value="Large"/> 	<entry proper name="Size3Hint" value="%one%: Recommended for 6 players."/> 	<entry proper noun="Size4" value="Huge"/> 	<entry name="Size4Hint" value="%one%: Recommended for 8 players."/> 	... </language>        

where the ... stand for other code in the file but non directly pertinent for our modernistic. We want 2 follow the same structure as the to a higher place code and add 2 new lines at the cease:

<language> 	... 	<entry proper noun="Size" value="World Size"/> 	<entry name="Size0" value="Tiny"/> 	<entry proper noun="Size0Hint" value="%1%: Recommended for ii players."/> 	<entry proper name="Size1" value="Small"/> 	<entry proper name="Size1Hint" value="%1%: Recommended for iii players."/> 	<entry name="Size2" value="Medium"/> 	<entry name="Size2Hint" value="%1%: Recommended for iv players."/> 	<entry proper name="Size3" value="Large"/> 	<entry name="Size3Hint" value="%1%: Recommended for half-dozen players."/> 	<entry name="Size4" value="Huge"/> 	<entry name="Size4Hint" value="%1%: Recommended for 8 players."/> 	<entry name="Size5" value="Gigantic"/> 	<entry proper noun="Size5Hint" value="%1%: Recommended for 16 players or more."/> </language>        


We now make sure that the higher up files are placed in the right mod location under a suitable mod name and... tada! We but allowed for an ballsy map size!

watsonthapplad93.blogspot.com

Source: https://gladiusrelicsofwar.fandom.com/wiki/Modding

0 Response to "Total War Warhammer 2 Uploading a Mod to Steam"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel