-
Notifications
You must be signed in to change notification settings - Fork 51
Externalised databases
This page briefly describes the databases and files that can be found in StreamingAssets/Data/
sub-folders.
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 |
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:
- Create a file
SpecialEffects/ef{SFX ID}/FileList.txt
, - Write the line
Model {Custom SFX Name}.sfxmodel
inside that file, - Place your custom SFX model with the path
SpecialEffects/ef{SFX ID}/{Custom SFX Name}.sfxmodel
.
To be completed
The file Characters/Abilities/AbilityFeatures.txt
contains the effects of supporting abilities and special active ability features.
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]
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
andSet
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.
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
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.