Decoding the "Missing Manual" for T-34 vs Tiger
Resurrection:
The Quest: Digital Archaeology To mod T-34 vs Tiger (TvT) correctly, I had to reconstruct a 2007-era development environment from the ground up. I built a dedicated Windows XP Virtual Machine to host a specific stack of software: Maya 5 for modeling and Photoshop 5 for texturing (both sourced via the Internet Archive). This setup allowed me to finally utilize the original, proprietary G5 Tools and Shader Creator exactly as the developers intended.
The Discovery: What the Manual Doesn’t Tell You The original G5 manual found in the tools folder is incomplete. It implies that after export, the object will "just appear" in the editor. Through days of trial and error, I’ve identified the "Four Handshakes" required to actually implement a custom asset:
The Texture Handshake: The G5 exporter does not generate DDS textures. These must be created manually in Photoshop 5 and then converted to the game's .tex.

Model in Maya5 The Model Handshake: You must manually copy the .ms2 (mesh) and the .script (material and shader definitions) into the game's
Models/folder.The Menu Handshake: The object is only selectable in the editor if it is manually registered in the
ObjectInsertListwithinMenuConfig.script.
G5shader added to model The Unit Handshake: You must create a new script in
Scripts/Buildings/(e.g.,stepTvTUnit.script) to define the object's world mass, physics, and its "hitbox" so the editor can actually grab it.
Proof of Life: Asset Viewer Success The pipeline is verified. Custom assets, including a new Step and a Czech Hedgehog (czHedgehog), render perfectly in the engine’s internal Asset Viewer. The material mapping and shader links are 100% functional.
![]() |
| In the TvT asset viewer, fully formed |
The "Struggle Piece": The Wireframe Ghosts I have been locked in a two-day battle with the final hurdle. When I load the asset into the Level Editor, the engine recognizes the object but refuses to draw the mesh. Instead, I am met with two wireframe "ghost" boxes:
![]() |
| The end result |
The Blue Box: Representing the root joint/origin of the model.
The White Box: Representing the collision volume/physics box defined in the unit script .


