from the SubBuild 2022.6.5 (which won't be available on Steam nor MacOS before the ManaGames.com Windows version is fully debugged), it is possible to change the textures & materials of the Stadiums and the court Surfaces.
1) Stadiums
a) Modding Activation
To activate the Modding for a new Stadium, add this to your Stadium.ini :
- Code: Select all
[Modding]
Enable = 1
Note: for an existing stadium, create the corresponding Stadium_Mod.ini, for example "Mods\MySuperMod\Courts\Stadiums\AustralianSlam\Stadium_Mod.ini".
Then launch the game and start a warm-up on that Stadium, then leave the warm-up & click on Settings -> Profile -> Show Engine Log. In it, you'll find the list of all Materials with their textures & parameters, just under "Going to list all their Material properties". For example :
- Code: Select all
8 - Object 'B_1' : 9 materials
Material 'BlueFence2_Albedo' with Shader 'Standard (Specular setup)'
Texture '_MainTex' = 'BlueFence2_Albedo'
Texture '_BumpMap' = 'BlueFence_NM'
Texture '_SpecGlossMap' = 'BlueFence_Spec'
Color '_Color' = #969696FF
Color '_SpecColor' = #333333FF
Value '_Glossiness' = 0.5
Value '_GlossMapScale' = 0.39
Value '_BumpScale' = 1
Material 'BlackFence_Albedo' with Shader 'Standard'
Texture '_MainTex' = 'BlackFence_Albedo'
Texture '_BumpMap' = '<none>'
Texture '_MetallicGlossMap' = '<none>'
Color '_Color' = #969696FF
Value '_Glossiness' = 0
Value '_GlossMapScale' = 1
Value '_Metallic' = 0
Value '_BumpScale' = 1
The materials will be listed only on their 1st occurrence on an object. The object name will help you to figure out what the material looks like.
b) Changing a Texture
If you only want to change the existing albedo ( = color) texture for the existing "BlueFence2_Albedo" material, then put the new texture file like this : "Mods\MySuperMod\Courts\Textures\BlueFence2_Albedo.jpg" (or .png, or .tga).
The game will now load that texture to replace the existing one.
Note : you need to have Modding set to 1 in your Stadium.ini else no modding will be applied.
c) Texture Loading Paths
If you want different textures for different stadiums using the same material, you can specify a different path for the textures under [Modding] in your Stadium.ini, for example :
- Code: Select all
TexturePath = MyStadiumTextures
You can also define several folders, so 1 folder could contain the textures identical for all stadiums, and a 2nd folder would contain the unique textures for the current stadium, for example :
- Code: Select all
TexturePath = MyStadiumTextures, Textures
Like this, the game will 1st look into "Mods\MySuperMod\Courts\MyStadiumTextures\" and if it cannot find the correct texture, then into "Mods\MySuperMod\Courts\Textures\".
d) Assigning a texture to an empty material slot
If a texture isn't set in a material, its name will be listed as "<none>". In such a case, if you want to load a texture in that slot, you'll have to name your texture <MaterialName>+<TextureSlotName>, for example : "BlackFence_Albedo_MainTex.jpg".
e) Modifying Material parameters
If you want to change a texture name or a parameter value, you'll have to modify the material or create a new one.
To do so, create a .ini file named after the material in the folder "Courts\Materials", for example : "Mods\MySuperMod\Courts\Materials\BlueFence2_Albedo.ini" ; in it, you can put, for example, that :
- Code: Select all
[Colors]
_Color = #375797FF
This will change the color of the texture, making it blueish in that case. The color format is #RRGGBBAA, with R = Red, G = Green, B = Blue, A = Alpha, each value being a hexadecimal value for 0 to FF ( = 255). AA is usually useless so you can use #RRGGBB instead.
If a texture or value is modified by a Modded Material, then it won't appear in the listing shown in a) .
f) Creating a new Material
There are 2 reasons to create a new material :
- so every texture slot will be empty and every parameter will have its default value
- to use another shader than the current material's one
To create a new material instead of modifying the existing one, put this in the .ini :
- Code: Select all
CreateFrom = Mat-Standard
This will use the standard Unity shader. (this is the default if nothing is specified)
Here are the other possible values :
- Mat-StandardSpecular : standard Unity shader but with Specular map instead of Metallic map
- Mat-2Sided : for 2-sided materials
- Mat-2SidedCutOut : for 2-sided materials with CutOut transparency
- Mat-Decal : for transparent materials standing very near to another object (eg: ads on walls)
g) Material Loading Paths
Like for the textures, you can specify different loading folders for the Materials, under [Modding] in your Stadium.ini ; for example :
- Code: Select all
MaterialPath = MyStadiumMaterials, Materials
2) Court Surfaces
It works more or less the same to Mod the court surfaces. If you have activated the Modding for the Stadium, or if you add this line in your Surface.ini or Surface_Mod.ini, under [Data] :
- Code: Select all
Modding = 1
Then you'll see the surface material properties in the Engine log, for example like this :
- Code: Select all
Surface Inside : Material 'BlueDarker' with Shader 'TOO/Standard-PlanarUV-Ground'
Texture '_MainTex' = 'Tennis_court_blue'
Texture '_BumpMap' = 'Tennis_court_blueNM'
Texture '_MetallicGlossMap' = 'Tennis_court_blueSP'
Color '_Color' = #CFCFCFFF
Value '_Glossiness' = 0.2
Value '_GlossMapScale' = 0.65
Value '_Metallic' = 0
Value '_BumpScale' = 1
Surface Outside : Material 'BlueBrighter' with Shader 'TOO/Standard-PlanarUV-Ground'
Texture '_MainTex' = 'Tennis_court_blue'
Texture '_BumpMap' = 'Tennis_court_blueNM'
Texture '_MetallicGlossMap' = 'Tennis_court_blueSP'
Color '_Color' = #FFFFFFFF
Value '_Glossiness' = 0.2
Value '_GlossMapScale' = 1
Value '_Metallic' = 0
Value '_BumpScale' = 1
You can then modify the surface texture, by creating, for example, this file : "MySuperMod\Courts\SurfaceTextures\Tennis_court_blue.jpg".
You can also Mod an existing Material, by creating, for example, this file : "Mods\MySuperMod\Courts\SurfaceMaterials\BlueDarker.ini" ; with this in it :
- Code: Select all
[Textures]
_MainTex = Tennis_court_MyGreen
This will load the texture "MySuperMod\Courts\SurfaceTextures\Tennis_court_MyGreen.jpg" to replace the existing Tennis_court_blue for the BlueDarker Material.
This works exactly the same way as the Stadium Materials, except you should use one of these values to create a new material :
- Mat-PlanarUV-Ground : normal surface (default if nothing is specified)
- Mat-PlanarUV-Ground-Used : surface that can be damaged (ie: the grass)
- Mat-PlanarRotatedUV-Ground : normal surface with rotated textures ; for this, it uses the "_Rotation" parameter in radian (not degree)
If you want to create a new surface Material, create for example this file : "Mods\MySuperMod\Courts\Surfaces\MyCement\Surface.ini" ; and put this in it :
- Code: Select all
[Data]
MaterialIn = PurpleCement
Then create this file : "Mods\MySuperMod\Courts\SurfaceMaterials\PurpleCement.ini", with this in it :
- Code: Select all
[Textures]
_MainTex = MyPurpleCement
[Values]
_Glossiness= 0.2 // From 0 to 1 ; Tune reflections ; ie: the smoothness of the surface
And then create this texture file : "Mods\MySuperMod\Courts\SurfaceTextures\MyPurpleCement.jpg".
3) Misc Textures
You can also modify in a similar way the textures for the Aiming Preview, Ball, Simple Shadow, Acceleration Smoke, Ball Trace & Preview & Shadow, and Mouse Aiming.
To do so, add this line in your GameSys_Mod.ini, under [3dEngine] :
- Code: Select all
Modding = 1
Then put your materials in "Mods\MySuperMod\Models\Materials" and your textures in "Mods\MySuperMod\Models\Textures".
You'll find the original textures for these models in the base Modding SDK : topic29-33540.php .
4) Texture Stadium SDK
Optionally, you can download the textures of the stadiums to modify them instead of creating them from scratch : https://www.managames.com/download.php? ... mSDK_v1.7z (~750MB)
Reminder :
License wrote:This package is only for Modding the Tennis Elbow game series by Mana Games.
This means that you cannot use any of these assets nor work derivative from them in other games or anything else.
That's all ! If you have any questions, let me know.

[... More in the following message ...]