<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sc6w3y7e49.holdfastgame.com/index.php?action=history&amp;feed=atom&amp;title=SDK_upgrade_guide</id>
	<title>SDK upgrade guide - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sc6w3y7e49.holdfastgame.com/index.php?action=history&amp;feed=atom&amp;title=SDK_upgrade_guide"/>
	<link rel="alternate" type="text/html" href="https://sc6w3y7e49.holdfastgame.com/index.php?title=SDK_upgrade_guide&amp;action=history"/>
	<updated>2026-08-03T23:45:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://sc6w3y7e49.holdfastgame.com/index.php?title=SDK_upgrade_guide&amp;diff=270&amp;oldid=prev</id>
		<title>Maintenance script at 02:32, 9 February 2026</title>
		<link rel="alternate" type="text/html" href="https://sc6w3y7e49.holdfastgame.com/index.php?title=SDK_upgrade_guide&amp;diff=270&amp;oldid=prev"/>
		<updated>2026-02-09T02:32:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;hf-relpage&amp;quot;&amp;gt;&lt;br /&gt;
{{Release_page_header|title=SDK Upgrade Guide}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-relpage-body&amp;quot;&amp;gt;&lt;br /&gt;
{{Release_TOC|content=&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-toc-category&amp;quot;&amp;gt;On this page&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#v231|v2.31]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#v227|v2.27]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#v219|v2.19]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#v215|v2.15]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#glossary|Glossary]]&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-relpage-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=v231&lt;br /&gt;
|title=v2.31&lt;br /&gt;
|content=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unity Upgrade&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Upgrade your Unity Editor from version 2022.3.53f1 to 2022.3.62f1 (Latest and last LTS version of Unity 2022).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=v227&lt;br /&gt;
|title=v2.27&lt;br /&gt;
|content=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unity Upgrade&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Upgrade your Unity Editor from version 2022.3.11f1 to 2022.3.53f1.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Changelog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Updated &amp;quot;Uniform System Window&amp;quot;:&lt;br /&gt;
** [NaW factions only] Added &amp;quot;Allow Backpacks&amp;quot; checkbox. Tooltip: Allow players to equip base game backpacks (purchased using shillings) on this uniform.&lt;br /&gt;
* Updated &amp;quot;SteamWorkshop Upload Window&amp;quot;:&lt;br /&gt;
** Added &amp;quot;Austrian&amp;quot; to the faction dropdown.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=v219&lt;br /&gt;
|title=v2.19&lt;br /&gt;
|content=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Changelog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Fixed officer lines drawing over modded uniforms.&lt;br /&gt;
* Fixed models using URP-shaders (modded uniforms, custom props) not throwing shadows.&lt;br /&gt;
* Fixed missing shadows in SDK and artifacts on game assets trees.&lt;br /&gt;
* Fixed game assets browser filter logic being inverted.&lt;br /&gt;
* Added &amp;quot;Deprecated&amp;quot; filter (default: off) to game assets browser.&lt;br /&gt;
* Added Empire props to game assets.&lt;br /&gt;
* Updated some miscellaneous props in the game assets.&lt;br /&gt;
* Updated &amp;quot;Uniform System Window&amp;quot;:&lt;br /&gt;
** Added generic first person model support (See new settings: &amp;quot;Default First Person Model&amp;quot;, &amp;quot;Default First Person Cuff Color&amp;quot;, &amp;quot;Default First Person Sleeve Color&amp;quot;).&lt;br /&gt;
** Removed &amp;quot;PersonalFaction&amp;quot; enum, the UI that required this has been removed.&lt;br /&gt;
** Renamed &amp;quot;Uniform Data&amp;quot; to &amp;quot;Uniform Random Variants&amp;quot;&lt;br /&gt;
** Removed &amp;quot;Uniform Sprite&amp;quot; from &amp;quot;Uniform Random Variants&amp;quot;, they weren&amp;#039;t being used.&lt;br /&gt;
** Renamed &amp;quot;Class Sprite&amp;quot; to &amp;quot;Uniform Sprite&amp;quot;.&lt;br /&gt;
** Renamed &amp;quot;Class Greyed Out Sprite&amp;quot; to &amp;quot;Head Sprite&amp;quot;.&lt;br /&gt;
** &amp;quot;Voice Language&amp;quot; is now disabled if &amp;quot;Faction&amp;quot; is not a Frontlines faction.&lt;br /&gt;
** &amp;quot;Head Sprite&amp;quot; is now disabled if &amp;quot;Use Global Head System&amp;quot; is enabled.&lt;br /&gt;
** &amp;quot;Special Carryable Object&amp;quot; is now disabled if &amp;quot;Player Class&amp;quot; is incompatible.&lt;br /&gt;
** Clarified tooltips to match the new in-game UI.&lt;br /&gt;
* Updated &amp;quot;Flag System Window&amp;quot;:&lt;br /&gt;
** Added warning to enable &amp;quot;Read/Write&amp;quot; and disable &amp;quot;Mesh Compression&amp;quot; on the flag model&amp;#039;s import settings.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Uniform Mods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s no longer necessary to create a first person model per modded uniform. You can now pick from 5 generic first person models (3 Nations At War &amp;amp; 2 Frontlines) and a variety of colour variants. This is an &amp;#039;&amp;#039;optional&amp;#039;&amp;#039; change — if your modded uniform includes a custom first-person model, that model will be used instead.&lt;br /&gt;
&lt;br /&gt;
The new first person models allow us to dedicate more texture space and mesh detail to the pieces of the character that the first person camera actually sees. In addition, it uses less memory as we can now recycle the same model for all the uniforms. We &amp;#039;&amp;#039;&amp;#039;recommend&amp;#039;&amp;#039;&amp;#039; that modded uniforms make use of the new system.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=v215&lt;br /&gt;
|title=v2.15&lt;br /&gt;
|content=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unity Upgrade&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Upgrade your Unity Editor from version 2020.3.34f1 to 2022.3.11f1.&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Backup your project files!&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Move your &amp;quot;old&amp;quot; SDK folder to another location!&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;We don&amp;#039;t recommend an in-place upgrade.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Update the SDK&lt;br /&gt;
# Move your mods back to the new SDK&lt;br /&gt;
# Follow the flow charts below&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Changelog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Upgraded the SDK from &amp;quot;Built-In Render Pipeline&amp;quot; to &amp;quot;Universal Render Pipeline&amp;quot;&lt;br /&gt;
* Removed MicroSplat from the SDK (free version only exists for Built-In Pipeline; for URP you need to purchase the asset)&lt;br /&gt;
* Removed &amp;quot;Holdfast&amp;quot; shaders — all their functionality is now natively supported by URP&lt;br /&gt;
* Added support for using assets from the modbundle as grass on terrain (Add script &amp;quot;HoldfastModTerrainGrassData&amp;quot; to your terrain)&lt;br /&gt;
* Removed requirement for &amp;quot;greyed out&amp;quot; sprite for uniforms (no longer used in-game)&lt;br /&gt;
* Added Austria to FactionCountry enum&lt;br /&gt;
* Added support for uploading to Beta workshop from the SDK&lt;br /&gt;
* Added support for dedicated servers to download from the Beta workshop (Command line: &amp;lt;code&amp;gt;-betaWorkshop&amp;lt;/code&amp;gt;; Server config: &amp;lt;code&amp;gt;use_beta_workshop [true/false]&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Added interfaces &amp;quot;IHoldfastGame&amp;quot; and &amp;quot;IHoldfastSharedMethods&amp;quot; for calling native game methods:&lt;br /&gt;
** Instead of injecting commands into the game console UI element, use &amp;lt;code&amp;gt;IHoldfastSharedMethods.ExecuteConsoleCommand(...)&amp;lt;/code&amp;gt;. This method returns whether the console command executed successfully, the output, and an optional parsing exception for error handling.&lt;br /&gt;
** This new interface allows us to expose native game methods directly to modders without having to rely on rc commands.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Uniform &amp;amp; Flag Mods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:UpgradeUniformsAndFlags.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod Maps&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:UpgradeMaps.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Script Mods&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:WorkflowScriptMods.png|frameless|600x600px]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=glossary&lt;br /&gt;
|title=Glossary&lt;br /&gt;
|content=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Common Shaders List&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For backwards compatibility, these are auto-converted on mod load to URP shaders. This doesn&amp;#039;t work for every case, so we recommend rebuilding your mod using URP shaders.&lt;br /&gt;
&lt;br /&gt;
* Holdfast/Standard (Specular setup) - Stencil 15&lt;br /&gt;
* Holdfast/Standard - Stencil 15&lt;br /&gt;
* Holdfast/Standard (Specular setup) Double Sided - Stencil 15&lt;br /&gt;
* Holdfast/Standard Double Sided - Stencil 15&lt;br /&gt;
* Holdfast/Cloth-DoubleSided - Stencil 15&lt;br /&gt;
* Standard (Specular setup)&lt;br /&gt;
* Standard&lt;br /&gt;
* Mobile/Bumped Specular&lt;br /&gt;
* Mobile/Bumped Diffuse&lt;br /&gt;
* UBER - Specular Setup/ Core&lt;br /&gt;
* UBER - Metallic Setup/ Core&lt;br /&gt;
* UBER - Metallic Setup/2 Sided/ Core&lt;br /&gt;
* Cloth-DoubleSided&lt;br /&gt;
* Legacy Shaders/Diffuse&lt;br /&gt;
* Legacy Shaders/Bumped Diffuse&lt;br /&gt;
* Legacy Shaders/Specular&lt;br /&gt;
* Legacy Shaders/Bumped Specular&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Converting Materials to URP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We upgraded our SDK from the &amp;quot;Built-in Render Pipeline&amp;quot; (BP) to the &amp;quot;Universal Render Pipeline&amp;quot; (URP), which means old materials and shaders will no longer work. If your materials no longer render or they are pink, this indicates they are incompatible with URP.&lt;br /&gt;
&lt;br /&gt;
Use Unity&amp;#039;s upgrade tool (&amp;#039;&amp;#039;&amp;#039;Edit &amp;gt; Rendering &amp;gt; Materials &amp;gt; Convert Selected Built-In Materials to URP&amp;#039;&amp;#039;&amp;#039;) to automatically convert &amp;quot;built-in&amp;quot; materials to their URP counterparts. This only works for Unity standard shaders.&lt;br /&gt;
&lt;br /&gt;
If you use the old Holdfast shaders (e.g. &amp;quot;Holdfast/Standard - Stencil 15&amp;quot;), first convert them to &amp;quot;Standard&amp;quot; then use the Unity upgrade tool.&lt;br /&gt;
&lt;br /&gt;
If you use 3rd party assets, you&amp;#039;ll need to obtain the URP version from the Unity Store and then remap the materials manually.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reporting Script Mod Issues&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We switched from Unity 2020 to 2022, alongside which Mono was updated. We also swapped from &amp;quot;.NET Framework&amp;quot; to &amp;quot;.NET Standard 2.1&amp;quot;. This might impact how your mod operates.&lt;br /&gt;
&lt;br /&gt;
If the behaviour of your script mod has changed, isolate the issue in a small example mod and send the source code to us. Note: We won&amp;#039;t guarantee a patch and won&amp;#039;t look into issues without a replication project.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>