Skip to content

Externalised databases

Tirlititi edited this page Aug 11, 2024 · 3 revisions

This page briefly describes the databases and files that can be found in StreamingAssets/Data/ sub-folders.

Table of Contents

CSV files

CSV files have the extension .csv. The implementation used by Memoria separates the fields with semicolons instead of commas. They also use the character # to specify that the rest of the line is a comment or the code #! to specify a meta-data option.

Meta-data options can be specified at the start of the file or between lines to change the data format. Several meta-data options can be used to add or remove fields for each entries following them. They allow backward compatibility with CSV generated at a time when some fields were not available. All the meta-data options are disabled by default. It is possible to disable an option that was previously enabled by placing a - right before it, eg. #! -IncludeCastingTitleType.

The rule of thumb there, at least when modifying CSV files manually, is usually to check what are the current meta-data options specified in the base version of the CSV and use the same options and the same format for modded CSV.

File sub-path Description Optional meta-datas
Battle/Actions.csv This file contains character actions IncludeCastingTitleType
Battle/MagicSwordSets.csv This file contains sets of ablities that get unlocked by other abilities
Battle/StatusData.csv This file contains data of statuses
Battle/StatusSets.csv This file contains set of statuses what will be applied to targets in the battle
Characters/Abilities/AbilityGems.csv This file contains a number of gems, which are required for the activation of passive abilities IncludeBoosted
Characters/Abilities/{CharacterName}.csv These files contain the sets of learnable abilities for the different characters
Characters/Abilities/{CharacterID}.csv Same as above for custom characters that don't have a native character ID: in this situation, use the numerical ID directly
Characters/CharacterParameters.csv This file define basic parameters of characters
Characters/BattleParameters.csv This file define battle parameters of characters IncludeWeaponSound
Characters/BaseStats.csv This file contains base stats of characters
Characters/Commands.csv This file contains battle commands IncludeId
Characters/CommandSets.csv This file contains character command sets IncludeId
Characters/CommandTitles.csv This file contains map of active ability's id to command's title; it is now replaced by a field in Actions.csv when the option IncludeCastingTitleType is enabled
Characters/DefaultEquipment.csv This file contains predefined equipment sets
Characters/Leveling.csv This file contains amount of experience to the next level and bonus for HP and MP
Items/InitialItems.csv This file contains the items with which the player starts a new game
Items/Items.csv This file contains a set of game items IncludeId
IncludeAuxiliaryIds
IncludeWeaponId
IncludeArmorId
IncludeEffectId
Items/Weapons.csv This file contains a set of game weapons IncludeHitSfx
IncludeCustomTexture
Items/Armors.csv This file contains a set of game armors
Items/ItemEffects.csv This file contains a set of usable item effects IncludeId
Items/Stats.csv This file contains a set of bonuses of equipment
Items/ShopItems.csv This file contains a set of item shops
Items/Synthesis.csv This file contains a set of game items that can be synthesized UseShopList
Items/MixItems.csv This file contains the mix table for a potential Mix command
SpecialEffects/Common/SPS.csv This file contains a set of SPS prototypes
SpecialEffects/Common/SHP.csv This file contains a set of SHP prototypes
TetraMaster/TripleTriad.csv This file contains base stats of cards
World/TransportControls.csv This file contains world map transport control parameters
World/WeatherColors.csv This file contains world map weather colors

Special Effects

This folder contains SFX sequences that are used by the SFXRework system. Check its own page.

It can also contain custom SFX models, which are JSON-formatted files with the extension .sfxmodel.

SFX models can be channeling SFX, in which case they should have the sub-path SpecialEffects/Common/Channel{ChannelName}.sfxmodel. Once a custom channeling SFX is created, it can be used in custom sequence files with lines like Channel: Type={ChannelName}.

They can also be custom SFX models for spells and abilities, in which case they should be registered like that:

  1. Create a file SpecialEffects/ef{SFX ID}/FileList.txt,
  2. Write the line Model {Custom SFX Name}.sfxmodel inside that file,
  3. Place your custom SFX model with the path SpecialEffects/ef{SFX ID}/{Custom SFX Name}.sfxmodel.
A SFX model can contain particle emitters as well as manipulations of existing FBX models.

To be completed

Ability Features

The file Characters/Abilities/AbilityFeatures.txt contains the effects of supporting abilities and special active ability features.

World Map Environment

The file World/Environment.txt can contain special activation conditions of different World Map effects, such as ambiant lights, presence of the mist, rain, sandstorm, alternate form of cities and places.

For example, the default behaviours can be coded with the following lines. It's also possible to have no coding lines (in which case, the default hard-coded behaviours will be used).

# Use the "disc 4" settings when the scenario counter reaches 11100 (the cutscene after returning from Terra)
Disc4 [Condition=ScenarioCounter >= 11090]

# Enable mist before reaching the Outer Continent or after returning from Terra
Mist [Condition=ScenarioCounter < 5990 || ScenarioCounter > 11090]

# Have the South Gate destroyed between the explosive cinematic and the return from the Outer Continent
Place SouthGate_Gate [Condition=WorldDisc == 1 && ScenarioCounter >= 2990 && ScenarioCounter < 6990]
# Have Cleyra destroyed after the Odin cinematic
Place Cleyra [Condition=WorldDisc == 1 && ScenarioCounter >= 4990]
# Have Lindblum destroyed after the Atomos cinematic
Place Lindblum [Condition=WorldDisc == 1 && ScenarioCounter >= 5598]
# Have the Black Mage Village found form (?) after entering it for the first time
Place BlackMageVillage [Condition=WorldDisc == 1 && ScenarioCounter >= 6200]
# Have Alexandria destroyed after the Alexander cinematic
Place Alexandria [Condition=WorldDisc == 1 && ScenarioCounter >= 8800]
# Have the different shrines opened for a short time after the Ipsen Castle events
Place WaterShrine [Condition=WorldDisc == 1 && ScenarioCounter >= 10600 && ScenarioCounter < 10700]
Place FireShrine [Condition=WorldDisc == 1 && ScenarioCounter >= 10600 && ScenarioCounter < 10700]
# Have the Chocobo Paradise entrance opened after using a Dead Pepper on it
Place ChocoboParadise [Condition=(GetEventGlobalByte(101) & 64) != 0]
# Have the Mognet Central entrance opened after using a Dead Pepper on it
Place MognetCentral [Condition=(GetEventGlobalByte(101) & 128) != 0]

# Use the Alexandria's Waterfall effect permanently (splashing at the bottom)
Effect AlexandriaWaterfall [Condition=true]
# Use Dali's Windmill effect when there is mist (rotating windmill sails)
Effect Windmill [Condition=ScenarioCounter < 6990 || ScenarioCounter >= 11090]
# Use Cleyra's Sandstorm before its destruction (sandstorm effect)
Effect SandStorm [Condition=WorldDisc == 1 && ScenarioCounter < 4990]
# Use Desert Palace's fake entrance effects between its availability and Kuja's departure from there (sand splashing)
Effect SandPit [Condition=ScenarioCounter >= 9450 && ScenarioCounter <= 9890]
# Use the Water Shrine effect while it is opened (splashing at its base)
Effect WaterShrine [Condition=WorldDisc == 1 && ScenarioCounter >= 10600 && ScenarioCounter < 10700]
# Use the Fire Shrine effect permanently (lava movements)
Effect FireShrine [Condition=true]
# Never use the Wind Shrine effect (no effect)
Effect WindShrine [Condition=false]
# Use Memoria's effect in "disc 4" settings (purple orb above the Iifa Tree)
Effect Memoria [Condition=WorldDisc == 4]

# Have Burmecia's surroundings be rainy in "World Map: No Transport" and "World Map: Invincible" (mist presence, more or less)
Rain Add [Condition=GetEventGlobalByte(102) == 0 || GetEventGlobalByte(102) == 8] [Position=(247888, 808, -185944)] [RadiusLarge=9184] [RadiusSmall=992] [RainStrength=64] [RainSpeed=64]

# Have Treno's surroundings use evening and then night ambiant colors
Light Add [Position=(329728, -240896)] [Radius=22016] [Light=1]
Light Add [Position=(330496, -237568)] [Radius=15104] [Light=2]
# Have the south part of the Forgotten Continent use evening ambiant colors
Light Add [Position=(128000, -202240)] [Radius=46080] [Light=1]
# Have Memoria's surroundings use purple ambiant colors
Light Add [Condition=WorldDisc == 4] [Position=(196158, -81825)] [Radius=26080] [Light=3]

Item Equip Patch

It is possible to have an optional file Items/ItemEquipPatch.txt that changes the characters' equipment availabilities.

This allows to logically tie equipping availabilities to characters instead of tying them to the items themselves (as they are in Items/Items.csv). It also allows to define these datas for custom characters.

In this file, comments start with //; the other lines must be formatted like the following:

{Character ID} {Add/Remove/Set} {List of item IDs}
  • The character ID must be the number identifying the character.
  • The keywords Add, Remove and Set can be used to either add, remove or clear-then-add equipment availabilities.
  • The list of item IDs must be a space-separated list of numbers identifying the items.
Note that the kind of equipment (weapon, head equipment, wrist equipment, armor and/or accessory) is a property of the items themselves, defined in Items/Items.csv.

Example: the following line makes it so Vivi (1) can use both the Rod (57) as a weapon and the Glutton Robe (171) as an armor (on top of the other stuff that he can natively equip).

1 Add 57 171

Localization Patch

It is possible to have an optional file Text/LocalizationPatch.txt that adds or changes the different "interface" texts which are normally defined in the asset EmbeddedAsset/Manifest/Text/Localization.txt (which is itself natively present in the archive resources.assets).

The format for this file is exactly the same as in Localization.txt, that is to say each line corresponds to a text associated with a key code:

{Key code},{Text in US English},{Text in UK English},{Text in Japanese},{Text in Spanish},{Text in French},{Text in German},{Text in Italian}

The differences with Localization.txt are just that it can be incomplete instead of defining all the key codes required by the game, and also it should not contain the KEY or the Symbol key codes.