Skip to content

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.cs calls the Prepare() method of DatabaseManager.
  • Action: DatabaseManager creates an instance of ABResourceLoader and starts an asynchronous load for the AssetBundle database/database.muast.
  • State Change: The preparation step (m_PrepareStep) changes from None to Preparing.

Loading and Extraction

While the game is in the loading state, GameSystem.cs calls Update() on DatabaseManager every frame.

  • Polling: The Updating and Preparing lifecycle handles the asynchronous resource loading.
  • Extraction: Once the AssetBundle load is complete, DatabaseManager extracts all sub-database objects from the bundle using m_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() and ParseTextMessageDB() extract key-value pairs into fast-lookup Dictionary<int, string> collections (m_TextCommon and m_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, DatabaseManager unloads the asset bundle handle using m_Loader.Unload(m_LoadingHndl) and nullifies the loading handler.
  • Completion: The preparation step (m_PrepareStep) is set to DonePrepare. GameSystem.cs transitions the game to the next state, confirming the database is ready for consumption by game scenes and systems.