Database¶
This page describes where the client-side database of the game app is stored and how it is processed during game initialization.
Client Database¶
At runtime, the client-side database is not stored in a relational database (like SQLite). Instead, all master data is packaged into a single AssetBundle: database/database.muast.
The raw JSON and CSV files from the repository are compiled into serialization objects (ScriptableObjects) within this asset bundle for faster loading and optimization.
Database Tables and Descriptions¶
All sub-database components stored in database/database.muast are categorized below based on their domain and functional roles within the game client.
Character and Growth Databases¶
These databases manage character metadata, growth curves, visual offsets, profiles, and associated voice lines.
| Database Name | Class / Asset Name | Description |
|---|---|---|
CharaListDB |
CharacterListDB (CharacterList.json) |
Base attributes, element, rarities, stats, and character templates. |
CharaOverrideDB |
CharacterOverrideDB (CharacterOverride.json) |
Overrides or adjustments for specific characters (e.g., event versions). |
CharaWeaponOverrideDB |
CharacterWeaponOverrideDB (CharacterWeaponOverride.json) |
Custom animation and visual effect overrides when a specific character equips a weapon. |
NamedListDB |
NamedListDB (NamedList.json) |
Unique naming parameters (to avoid duplicate entity creation) and friendship type classifications. |
CharaLimitBreakListDB |
CharacterLimitBreakListDB (CharacterLimitBreakList.json) |
Requisites and caps for character limit breaking (uncapping levels). |
CharaEvolutionListDB |
CharacterEvolutionListDB (CharacterEvolutionList.json) |
Material requirements and details for character evolution (which alters card art). |
ArousalLevelsDB |
ArousalLevelsDB (ArousalLevels.json) |
Stat multipliers and level cap increases corresponding to arousal (awakening) tiers. |
CharaExpDB |
CharacterExpDB (CharacterExp.json) |
Cumulative experience point threshold table required for character levels. |
NamedFriendshipExpDB |
NamedFriendshipExpDB (NamedFriendshipExp.json) |
Experience thresholds needed to level up character friendship tiers. |
CharaParamGrowthListDB |
CharacterParamGrowthListDB (CharacterParamGrowthList.json) |
Mathematical growth scaling slopes for character level-ups. |
CharaIllustOffsetDB |
CharacterIllustOffsetDB (CharacterIllustOffset.json) |
Visual offset coordinates for rendering card art correctly in various UI panels. |
CharaFacialDB |
CharacterFacialDB (CharacterFacial.json) |
Facial expression mapping for adventure scenarios and visual menus. |
CharaFlavorTextDB |
CharacterFlavorTextDB (CharacterFlavorText.json) |
Profile texts, trivia, and flavor descriptions displayed in the character viewer. |
ProfileVoiceListDB |
ProfileVoiceListDB (ProfileVoiceList.json) |
Definitions of dynamic voices playable from the character profile interface. |
FlavorsDB |
FlavorsDB (Flavors.json) |
Voice lines, subtitles, and system flavor quotes. |
Battle and Skill Databases¶
These databases govern combat stats, active and passive skills, effects, damage calculations, and combat UI assets.
| Database Name | Class / Asset Name | Description |
|---|---|---|
SkillListDB_* |
SkillListDB (SkillList_PL / _EN / _WPN / _MST / _CARD) |
Core definitions of active skills for players (PL), enemies (EN), weapons (WPN), master skills (MST), and character-specific cards (CARD). |
SkillContentList_* |
SkillContentListDB (SkillContentList_PL / _EN / _WPN / _MST / _CARD) |
Concrete gameplay effects (damage coefficients, healing amounts, status ailments) for all skills. |
PassiveSkillList_* |
PassiveSkillListDB (PassiveSkillList_PL / _EN / _WPN / _ABL) |
Definitions for permanently active passive skills attached to players, enemies, weapons, or ability boards (ABL). |
SkillLvCoefDB |
SkillLvCoefDB (SkillLvCoef.json) |
Level-up scaling coefficients that boost skill effectiveness per level. |
SkillContentAndEffectCombiDB |
SkillContentAndEffectCombiDB (SkillContentAndEffectCombi.json) |
Mappings that bind specific gameplay effects to corresponding visual VFX. |
UniqueSkillSoundDB |
UniqueSkillSoundDB (UniqueSkillSound.json) |
Sound effects (SE) and voice cues tied to character-exclusive Ultimate Skills (とっておき). |
BattleDefineDB |
BattleDefineDB (BattleDefine.json) |
Core constants for damage calculation, status ailment duration, and combat rules. |
BattleStatusRatioByHpDB |
BattleStatusRatioByHpDB (BattleStatusRatioByHp.json) |
Stat multipliers (e.g., higher attack or defense) triggered based on remaining HP percentage. |
BattleRandomStatusChangeDB |
BattleRandomStatusChangeDB (BattleRandomStatusChange.json) |
Tables determining combat probabilities when triggering randomized status modifications. |
TogetherChargeDefineDB |
TogetherChargeDefineDB (TogetherChargeDefine.json) |
Gauge charging rate definitions when multiple characters initiate consecutive ultimate skills. |
SkillActionConvertsDB_* |
SkillActionConvertsDB (SkillActionConverts_SAP / _SAG) |
Combat motion plans and sequence conversion maps for skill animation pipelines. |
PopUpStateIconListDB |
PopUpStateIconListDB (PopUpStateIconList.json) |
Dynamic pop-up icons displaying buff/debuff text immediately during combat hits. |
StateIconListDB |
StateIconListDB (StateIconList.json) |
Status icons shown next to HP bars for persistent effects. |
Quest and Story Databases¶
These databases handle story chapters, wave structures, enemy placements, loot drops, and visual map configurations.
| Database Name | Class / Asset Name | Description |
|---|---|---|
QuestWaveListDB |
QuestWaveListDB (QuestWaveList.json) |
Defines spawn cycles, monster counts, and waves of combat inside a quest. |
QuestWaveRandomListDB |
QuestWaveRandomListDB (QuestWaveRandomList.json) |
Probability tables for randomized or rare monster spawns during quest waves. |
QuestWaveDropsDB |
QuestWaveDropsDB (QuestWaveDrops.json) |
Loot tables, probability rates, and drop counts for defeating wave entities. |
QuestEnemyListDB |
QuestEnemyListDB (QuestEnemyList.json) |
Stats, level configurations, and specific AI controller IDs for quest enemies. |
QuestADVTriggerDB |
QuestADVTriggerDB (QuestADVTrigger.json) |
Triggers defining when adventure story scenarios (ADV) play before or after battles. |
QuestMapSDPositionDB |
QuestMapSDPositionDB (QuestMapSDPosition.json) |
Coordinates mapping SD characters to specific nodes on the quest selection map. |
QuestMapResourceListDB |
QuestMapResourceListDB (QuestMapResourceList.json) |
Background textures, map nodes, and environmental assets for world navigation. |
EnemyResourceListDB |
EnemyResourceListDB (EnemyResourceList.json) |
3D models, SD rigs, and visual textures associated with enemy monsters. |
ADVListDB |
ADVListDB (ADVList.json) |
Metadata, IDs, and assets of all in-game text scenarios and story chapters. |
ADVLibraryListDB |
ADVLibraryListDB (ADVLibraryList.json) |
Master definition for the story replay library, detailing unlock conditions. |
OriginalCharaLibraryListDB |
OriginalCharaLibraryListDB (OriginalCharaLibraryList.json) |
Directory listing and unlock conditions for original characters unique to the game's lore. |
WordLibraryListDB |
WordLibraryListDB (WordLibraryList.json) |
Descriptions, pronunciations, and category tags for the in-game terms dictionary. |
EventsDB |
EventsDB (Events.json) |
Timing and metadata settings for limited-time game events. |
EventGroupsDB |
EventGroupsDB (EventGroups.json) |
Group tags that organize distinct events into cohesive chapters or hubs. |
EventQuestDropExtDB |
EventQuestDropExtDB (EventQuestDropExt.json) |
Multipliers and drop bonus boosts granted when playing with featured "bonus characters." |
EventQuestUISettingDB |
EventQuestUISettingDB (EventQuestUISetting.json) |
Banners, decorations, and custom styling for limited-time quest selection screens. |
ChapterUISettingDB |
ChapterUISettingDB (ChapterUISetting.json) |
UI headers, layouts, and art assets for main story chapter lists. |
Shop and Item Databases¶
These databases store inventory items, crafting recipes, shop inventories, and purchase structures.
| Database Name | Class / Asset Name | Description |
|---|---|---|
ItemListDB |
ItemListDB (ItemList.json) |
Inventory directory for upgrade items, evolution materials, consumables, and currencies. |
WeaponRecipeListDB |
WeaponRecipeListDB (WeaponRecipeList.json) |
Recipes, materials, and gold costs required to synthesize or craft weapons at the alchemy shop. |
WeaponEvolutionListDB |
WeaponEvolutionListDB (WeaponEvolutionList.json) |
Evolutionary trees and required items to upgrade weapons to next tiers. |
WeaponSkillUpItemsDB |
WeaponSkillUpItemsDB (WeaponSkillUpItems.json) |
Target exp values for weapon-specific skill enhancement items. |
PackageItemListDB |
PackageItemListDB (PackageItemList.json) |
Storefront definitions for premium shop bundle packages, detailing prices and limits. |
PackageItemContentsDB |
PackageItemContentsDB (PackageItemContents.json) |
Itemized content list contained inside each premium shop bundle. |
TownShopListDB |
TownShopListDB (TownShopList.json) |
Store pricing and unlocking prerequisites for town buildings and ornaments. |
RoomShopListDB |
RoomShopListDB (RoomShopList.json) |
Catalog listings, currency requirements, and tags for purchasing private room furniture. |
Town and Room Databases¶
These databases support custom town layout configurations, room placements, and decoration bonuses.
| Database Name | Class / Asset Name | Description |
|---|---|---|
TownObjListDB |
TownObjectListDB (TownObjectList.json) |
Models, categories, and properties of town buildings (e.g., character training tents). |
TownObjLvUpDB |
TownObjectLevelUpDB (TownObjectLevelUp.json) |
Upgrade parameters (currencies, materials, and build timers) for town structures. |
TownObjBuffDB |
TownObjectBuffDB (TownObjectBuff.json) |
passive boosts (stat buffs, resource regeneration rates) provided by upgraded buildings. |
TownObjBuildSubDB |
TownObjectBuildSubCodeDB (TownObjectBuildSubCode.json) |
Sub-parameters and sorting logic for town construction filters. |
RoomListDB |
RoomListDB (RoomList.json) |
Base definitions and unlocked private room layouts. |
RoomObjectListDB |
RoomObjectListDB (RoomObjectList.json) |
Item data, placement grids, and assets for indoor room furniture. |
RoomObjFilterCategoryDB |
RoomObjectFilterCategoryDB (RoomObjectFilterCategory.json) |
Sorting tags and filter groupings used during the room editor interface. |
RoomEnvEffectDB |
RoomEnvEffectDB (RoomEnvEffect.json) |
Environmental lighting, color filters, and indoor particle overlay effects. |
ContentRoomPresetDBs |
ContentRoomPresetDB (ContentRoomPreset_*.json) |
Full decorative furniture layout presets awarded via titles or special promotions. |
System and Presentation Databases¶
These databases control global localization, user experience UI elements, game sounds, and core system parameters.
| Database Name | Class / Asset Name | Description |
|---|---|---|
TextCmnDB |
Text_CommonDB (Text_Common.json) |
Interface localization, static buttons, UI labels, and standard error notifications. |
TextMessageDB |
Text_MessageDB (Text_Message.json) |
Dialogue pop-ups, quest summaries, mission goals, and localized notification dialogs. |
TipsLoadingDB |
TipsDB (Tips_Loading.json) |
General loading tips shown at the bottom of scene loading screens. |
MoviePlayListDB |
MoviePlayListDB (MoviePlayList.json) |
Playback configurations and paths for movie video files. |
SoundCueListDB / SoundCueSheetDB |
SoundCueListDB / SoundCueSheetDB (SoundCueSheet.json) |
CRIWARE audio cue associations and binary asset sheet configurations. |
SoundBgmListDB |
SoundBgmListDB (SoundBgmList.json) |
Audio paths and parameters for standard stage background music (BGM). |
SoundHomeBgmListDB |
SoundHomeBgmListDB (SoundHomeBgmList.json) |
Directory of custom BGM selections available to play inside the Home lobby. |
SoundSeListDB |
SoundSeListDB (SoundSeList.json) |
Systems, interface interactions, and weapon strike sound effects (SE). |
SoundVoiceListDB |
SoundVoiceListDB (SoundVoiceList.json) |
Voice lines triggered during combat, summons, and home menu interactions. |
SoundVoiceControllListDB |
SoundVoiceControllListDB (SoundVoiceControllList.json) |
Audio channel limits, fade parameters, and playback priority overrides for voice tracks. |
GachaCutInListDB |
GachaCutInListDB (GachaCutInList.json) |
Custom splash art and banner text loaded during high-rarity summon animations. |
GachaItemLabelListDB |
GachaItemLabelListDB (GachaItemLabelList.json) |
UI badges, tags, and banner headers designating rate-up elements in summons. |
MasterOrbListDB / MasterOrbBuffsDB |
MasterOrbListDB / MasterOrbBuffsDB (MasterOrbList.json) |
Master items (魔道具) selectable by players, and their associated passive combat benefits. |
MasterRankDB |
MasterRankDB (MasterRank.json) |
Level thresholds, stamina limits, and friend list extensions per player rank. |
WeaponExpDB / SkillExpDB |
WeaponExpDB / SkillExpDB (WeaponExp.json / SkillExp.json) |
Experience curves for leveling up weapon raw stats and active skill proficiencies. |
FieldItemDropListDB |
FieldItemDropListDB (FieldItemDropList.json) |
Physics behaviors, 3D meshes, and spin rates of treasure chests/materials falling on battlefield grids. |
EffectListDB |
EffectListDB (EffectList.json) |
Common particle effects, visual VFX triggers, and dynamic assets mapped for rendering. |
SceneInfoListDB |
SceneInfoListDB (SceneInfoList.json) |
Global scene index, detailing initial music, load settings, and required background resources. |
TutorialTipsListDB / RetireTipsListDB |
TutorialTipsListDB / RetireTipsListDB (TutorialTipsList.json / RetireTipsList.json) |
Instructive guides shown for new players and gameplay advice shown after combat defeats. |
TutorialMessageListDB |
TutorialMessageListDB (TutorialMessageList.json) |
Standard instructional scripts pointing players to menu buttons during tutorials. |
WebDataListDB |
WebDataListDB (WebDataList.json) |
Web URL paths linking external FAQs, inquiries, and news sheets in pop-up WebViews. |
Database Processing Lifecycle¶
The loading, parsing, and management of the client-side database are handled by DatabaseManager.cs. The overall process consists of the following steps:
Initialization¶
During the game startup, GameSystem.cs instantiates the DatabaseManager and triggers the database preparation.
- Trigger:
GameSystem.cscalls thePrepare()method ofDatabaseManager. - Action:
DatabaseManagercreates an instance ofABResourceLoaderand starts an asynchronous load for the AssetBundledatabase/database.muast. - State Change: The preparation step (
m_PrepareStep) changes fromNonetoPreparing.
Loading and Extraction¶
While the game is in the loading state, GameSystem.cs calls Update() on DatabaseManager every frame.
- Polling: The
UpdatingandPreparinglifecycle handles the asynchronous resource loading. - Extraction: Once the AssetBundle load is complete,
DatabaseManagerextracts all sub-database objects from the bundle usingm_LoadingHndl.FindObj(). - Mapping: Each extracted database object is cast to its corresponding DB class and mapped to strongly-typed properties, such as:
CharaListDB(for character profiles)WeaponListDB(for weapons)QuestWaveListDB(for quest battle waves)Text_CommonDB(for common interface strings)SoundVoiceListDB(for voice line mappings)
Parsing and Optimization¶
After mapping all database structures, DatabaseManager executes internal parser methods to optimize lookups:
- Text Parsing:
ParseTextCommonDB()andParseTextMessageDB()extract key-value pairs into fast-lookupDictionary<int, string>collections (m_TextCommonandm_TextMessage). - Weapon Overrides:
ParseCharaWeaponOverrideDB()maps special character-weapon animations and visual effects. - Dynamic Registrations: Collects arrays and dictionaries for variable-sized data lists, such as battle AIs (
BattleAIData), skill graphics (SkillActionGraphics), and room presets (ContentRoomPresetDB).
Cleanup and Unloading¶
To keep the memory footprint low:
- Cleanup: Once all ScriptableObjects are mapped and parsed,
DatabaseManagerunloads the asset bundle handle usingm_Loader.Unload(m_LoadingHndl)and nullifies the loading handler. - Completion: The preparation step (
m_PrepareStep) is set toDonePrepare.GameSystem.cstransitions the game to the next state, confirming the database is ready for consumption by game scenes and systems.