Skip to content
Tirlititi edited this page Jul 3, 2023 · 14 revisions

Any mod folder can have a file DictionaryPatch.txt. The purpose of that file is to modify static datas, most of them being stored in C# dictionaries, hence the name.

Each line starting with a keyword listed here is interpreted as an instruction to modify dictionary(ies).

Table of Contents

IconSprite

IconSprite ID NAMEID

Redefine the link between numerical identifier and name identifier of a sprite of the icon atlas, extracted from the texture EmbeddedAsset/UI/Atlas/Icon Atlas (in sharedassets2.assets).

The default dictionary can be found here.

Example: IconSprite 19 arrow_down

DebuffIcon

DebuffIcon DEBUFFID ICONID

Change the icon of a negative buff. ICONID can be either numerical or name ID, but numerical is prefered.

The default dictionary can be found here.

Examples:

DebuffIcon 0 188
DebuffIcon 0 ability_stone

BuffIcon

BuffIcon BUFFID ICONID

Same as above for a positive buff.

The default dictionary can be found here.

Examples:

BuffIcon 18 188
BuffIcon 18 ability_stone

BoostedAbilityColor

BoostedAbilityColor LEVEL R G B

Change the magic stone sprite's color for the multiple levels of boosted supporting abilities.

The default colors are:
Base level (0): 1.0 1.0 1.0
Level 1: 0.7 1.0 0.7
Level 2: 1.0 0.2 0.5
Level 3: 0.6 0.6 1.0
Level 4: 1.0 1.0 0.4
Level 5: 1.0 0.5 0.2

Examples:

BoostedAbilityColor 3 0.2 1.0 0.8
BoostedAbilityColor 6 0.8 0.8 0.5

BattleStatus

BattleStatus LOGICALSTATUS Set NATIVESTATUSLIST
BattleStatus LOGICALSTATUS Add NATIVESTATUSLIST
BattleStatus LOGICALSTATUS Remove NATIVESTATUSLIST

Modify the alteration statuses that are parts of status logical groups. For example, some statuses prevent the characters suffering from them to act at all: those are the status logical group CannotAct. One may change this group to remove eg. Venom from it or on the contrary to add eg. Zombie to it. Both the native statuses and the status logical groups can be found there.

Examples:

BattleStatus BattleEnd Set Petrify Venom Stop Zombie
BattleStatus ATBGrey Add Petrify
BattleStatus DisableRewards Remove Zombie

HalfTranceCommand

HalfTranceCommand Set COMMANDLIST
HalfTranceCommand Add COMMANDLIST
HalfTranceCommand Remove COMMANDLIST

Change the list of the commands that consume only half of the trance gauge, typically for double-cast commands. The default list contains DoubleWhiteMagic and DoubleBlackMagic. The list of commands can be found there.

Example: HalfTranceCommand Set DoubleWhiteMagic DoubleBlackMagic HolySword2

DoubleCastCommand

DoubleCastCommand Set COMMANDLIST
DoubleCastCommand Add COMMANDLIST
DoubleCastCommand Remove COMMANDLIST

Change the list of the commands that allow two casts per turn. The default list contains DoubleWhiteMagic and DoubleBlackMagic. The list of commands can be found there.

Example: DoubleCastCommand Add BlueMagic

WorldMusicList

WorldMusicList LISTOFMUSICIDS

Change the musics played in the World Maps. The list must comprise at least 7 music IDs (possibly repeated) that correspond by default to the musics played in these situations:
1st ID: Music played when walking by foot or sailing on the Blue Narciss in discs 1-3 (69 by default)
2nd ID: Music played when riding a chocobo (100 by default)
3rd ID: Music played when riding the Hilda Garde III (112 by default)
4th ID: Music played when walking by foot or riding the Invincible in disc 4 (45 by default)
5th ID: Music played during the trip to Oeilvert (95 by default)
6th ID: Music played during the chase after the Desert Palace events (96 by default)
7th ID: Faerie Battle (61), not triggered like that by default
8th ID: Steiner's Delusion (62), not triggered like that by default

One can define as many music IDs as wanted and refer to them in the Transport Control spreadsheet TransportControls.csv. The list of musics and their IDs can be found here.

Example: WorldMusicList 69 22 112 45 95 96 61 62 75

TetraMasterSound

TetraMasterSound TETRAMASTERSOUND SOUNDID

Change one of the sounds used by the Tetra Master interface. The list of sound type can be found there.

Example: TetraMasterSound CANCEL 101

MoogleFieldList

MoogleFieldList Set FIELDIDLIST
MoogleFieldList Add FIELDIDLIST
MoogleFieldList Remove FIELDIDLIST

Change the list of fields that are considered to contain a save point. This list is used only for the Memoria.ini option [SaveFile] AutoSaveOnlyAtMoogle.

Example: MoogleFieldList Remove 2905 2909 2916 2919

MessageFile

MessageFile ID NAME

Define a new batch of dialogs and texts to be imported as EmbeddedAsset/Text/[LANG]/Field/[ID].mes (in resources.assets) where [LANG] is one the different language codes of the game (US, UK, JP, GR, FR, IT, ES).

Example: MessageFile 2000 MES_CUSTOM_PLACE

BattleMapModel

BattleMapModel BATLLEIDENTIFIER BACKGROUNDIDENTIFIER

Setup the battle background of a battle. The list of battle name identifiers and background identifiers can be found here.

Example: BattleMapModel BSC_MS_E075 BBG_B065

FieldScene

FieldScene SCRIPTID AREAID FIELDMAPIDENTIFIER SCRIPTIDENTIFIER MESID

Setup field informations, possibly for custom fields. SCRIPTID is the numerical ID of the field (same as displayed by Hades Workshop when enabling "Show field ID"). MESID is the numerical ID of the batch of texts and dialogs used for that field.

The others are parts of the field's name identifiers:
Field Map Identifier: FBG_N[AREAID]_[FIELDMAPIDENTIFIER]
Script Identifier: EVT_[SCRIPTIDENTIFIER]

The list of fields with their various IDs can be found there.

In order to create a custom field, the following assets should be given:
Natively packed in p0data1X:

  Assets/Resources/FieldMaps/[Field Map Identifier]/atlas.png
  Assets/Resources/FieldMaps/[Field Map Identifier]/[Field Map Identifier].bgi.bytes
  Assets/Resources/FieldMaps/[Field Map Identifier]/[Field Map Identifier].bgs.bytes
  [Optional] Assets/Resources/FieldMaps/[Field Map Identifier]/spt.tcb.bytes
  [Optional for each sps] Assets/Resources/FieldMaps/[Field Map Identifier]/[spsID].sps.bytes
Natively packed in p0data7:
  Assets/Resources/CommonAsset/EventEngine/EventBinary/Field/[LANG]/[Script Identifier].eb.bytes
  [Optional] Assets/Resources/CommonAsset/EventEngine/EventAnimation/[Script Identifier].txt.bytes
  [Optional] Assets/Resources/CommonAsset/MapConfigData/[Script Identifier].bytes
  [Optional] Assets/Resources/CommonAsset/VibrationData/[Script Identifier].bytes

where LANG is one of the game's language code (US, UK, JP, GR, FR, IT, ES).

Example: FieldScene 4000 57 CUSTOM_FIELD CUSTOM_FIELD 2000

BattleScene

BattleScene SCRIPTID BATTLEIDENTIFIER BACKGROUNDIDENTIFIER

Setup battle informations, possibly for custom battles. The battle identifier should not contain the prefix "BSC_" contrary to lines with the code BattleMapModel.

In order to create a custom battle, the following assets should be given:
Natively packed in p0data2:

  Assets/Resources/BattleMap/BattleScene/EVT_BATTLE_[BATTLEIDENTIFIER]/[SCRIPTID].raw17.bytes
  Assets/Resources/BattleMap/BattleScene/EVT_BATTLE_[BATTLEIDENTIFIER]/dbfile0000.raw16.bytes
Natively packed in p0data7:
  Assets/Resources/CommonAsset/EventEngine/EventBinary/Battle/[LANG]/EVT_BATTLE_[BATTLEIDENTIFIER].eb.bytes
Natively packed in resources:
  EmbeddedAsset/Text/[LANG]/Battle/[SCRIPTID].mes

where LANG is one of the game's language code (US, UK, JP, GR, FR, IT, ES).

Example: BattleScene 5000 CUSTOM_BATTLE BBG_B065

CharacterDefaultName

CharacterDefaultName CHARACTERID LANG NAME

Redefine the default name of a character. CHARACTERID is one of the followings:
0. Zidane
1. Vivi
2. Garnet
3. Steiner
4. Freya
5. Quina
6. Eiko
7. Amarant

Remark: Character default names can also be changed with the option [Import] Text = 1 although it would monopolise the whole machinery of text importing. [Import] Text = 1 has the priority over Dictionary Patch.

Example: CharacterDefaultName 0 US Zinedine

3DModel

3DModel LISTOFMODELID MODELNAME

Make all references to any of the given model ID point to the model given by MODELNAME. See the Model Database spreadsheet to have a list of model IDs and model names, with their animations.

Example:

3DModel 98 GEO_NPC_F0_RMF
3DModelAnimation 200 ANH_NPC_F0_RMF_IDLE
3DModelAnimation 25 ANH_NPC_F0_RMF_WALK
3DModelAnimation 38 ANH_NPC_F0_RMF_RUN
3DModelAnimation 40 ANH_NPC_F0_RMF_TURN_L
3DModelAnimation 41 ANH_NPC_F0_RMF_TURN_R
3DModelAnimation 54 55 56 57 59 ANH_NPC_F0_RMF_ANGRY_INN

3DModelAnimation

3DModel LISTOFANIMATIONID ANIMATIONNAME

Make all references to any of the given animation ID point to the animation given by ANIMATIONNAME. See the Model Database spreadsheet to have a list of model IDs and model names, with their animation IDs and names.

Example: see in 3DModel above

PlayerBattleModel

This instruction is not used anymore, because player character battle model datas are now externalised in the file StreamingAssets/Data/Characters/BattleParameters.csv.