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.


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|CN)).)*Blend.*\s*\]


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 (see Command Options for more command line options), the name of the section has a bit more flexibility to follow the following pattern

\s*\[\s*TextureOverride.*Blend.*\s*\]


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         ]