File Requirements¶
Note
If you know your mods are auto-generated using the standard scripts provided by GIMI, you can probably skip this section. The content below is dedicated to mods with custom made .ini files.
For those who stayed, let us continue.
Basic Assumptions¶
Assume you are fixing a mod with the name
YourModNameYour mod works before even using the fix
Definitions¶
Mod Objects¶
A mod is usually split into many different objects/parts (eg. an object for the mod’s head, an object for the mod’s body, etc…). We will be referring to these objects as mod objects. Luckly the mod objects for a type of mod are usually standardized to be the same. See GIMI Assets for more info about the mod objects for a particular mod.
Registers¶
within a section in a .ini file, you may have noticed many key-value pairs shown below:
1[TextureOverrideEverything]
2hash = baddbabe
3ps-t0 = ResourceSomething
4p = np
We define those keys as registers
Ini Files¶
Blend Sections¶
The root sections that reference some sort of Blend.buf is recommended to be named based off the following Regex format:
^\s*\[\s*TextureOverride.*YourModName((?!(RemapBlend)).)*Blend.*\s*\]
Tip
Whether the section name is lowercase/uppercase does not matter
eg.
For the following .ini file named blendNameExample.ini, the highlighted line is the name where you need to pay attention to the naming.
Normal Blend Naming Examples¶
[TextureOverrideKeqingBlend]
[TextureOverrideOhNoRaidenShogunInTheKitchenBlender]
[ TextureOverride.Fun.With.SpacesShenheBlend ]
If you ran the command line with the --all option, the name of the section
has a bit more flexibility to follow the following pattern. However, you need to specify what mod you are trying to fix by using
the --defaultType option
(see Command Options for details about more command line options and names for mods to specify in the options)
^\s*\[\s*TextureOverride.*Blend.*\s*\]
Tip
Whether the section name is lowercase/uppercase does not matter
All Option Blend Naming Examples¶
[TextureOverridePierrotLunaireBlend]
[ TextureOverrideDerKrankeMondBlenderDerMondfleck ]
Mod Object Sections¶
Tip
See Mod Objects for how we define a mod object
Assume we are referring to a mod object by the name
YourModObject
The root sections that reference some soft of Blend.buf is recommended to be named based off the following Regex format:
^\s*\[\s*TextureOverride.*YourModObject\]
eg.
For the following .ini file named modObjectNameExample.ini, the highlighted line is the name where you need to pay attention to the naming.
Mod Object Naming Examples¶
[TextureOverrideJeanHead]
[TextureOverrideWhatABeautifulDress]
[ TextureOverride.Fun.With.SpacesCelestialBody ]
TextureOverride Register Value Naming¶
Tip
See Registers for how we define a register
For the mod object sections with the name template: [TextureOverride{YourModObject}],
there are many pixel shader registers (registers with the format of ps-tx for some non-negative integer x)
It is recommended that the resource referenced by these pixel shader registers follow the same naming scheme from the standard made at GIMI Assets
Usually some common keywords to include in the resource name consists of:
Diffuse
LightMap
Shadow
MetalMap
ShadowRamp
eg.
For Raiden Shogun, according to GIMI Assets , the ps-t0 register for her Head mod object should be named like below:
1ps-t0 = ResourceLaDameauxCaméliasDiffuse