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 YourModName

  • Your 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.

blendNameExample.ini
 1[TextureOverrideYourModNameBlend]
 2...
 3if $swapvar == 0
 4    Run = AnyNameYouWantHere
 5    vb1 = ResourceBoo
 6else
 7    Run = AnotherSectionName
 8endif
 9
10[AnyNameYouWantHere]
11vb1 = ResourceToBlend
12Run =
13
14[AnotherSectionName]
15vb1 = ResourceFreeToNameThisWhateverYouWant
16Run = ThisIsALeaf
17
18[ThisIsALeaf]
19vb1 = ResourceHello
20
21[ResourceToBlend]
22filename = BelloBlend.buf
23
24[ResourceFreeToNameThisWhateverYouWant]
25filename = BananaBlend.buf
26
27[ResourceBoo]
28filename = PoopayeBlend.buf
29
30[ResourceHello]
31filename = BeeDooBeeDooBlend.buf


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.

modObjectNameExample.ini
 1[TextureOverrideKeqingBody]
 2...
 3if $swapvar == 0
 4    Run = AnyNameYouWantHere
 5    vb1 = ResourceBoo
 6else
 7    Run = AnotherSectionName
 8endif
 9
10[AnyNameYouWantHere]
11vb1 = ResourceToBlend
12Run =
13
14[AnotherSectionName]
15vb1 = ResourceFreeToNameThisWhateverYouWant
16Run = ThisIsALeaf
17
18[ThisIsALeaf]
19vb1 = ResourceHello
20
21[ResourceToBlend]
22filename = BelloBody.dds
23
24[ResourceFreeToNameThisWhateverYouWant]
25filename = BananaBody.dds
26
27[ResourceBoo]
28filename = PoopayeBody.dds
29
30[ResourceHello]
31filename = BeeDooBeeDooBody.dds


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