helialprofile.png
Welcome to IOPWiki, Commander. You can contribute to this wiki without an account. Learn how to contribute and join our Discord server.

Difference between revisions of "User:MoonlightArchivist/Guidelines"

Welcome to IOP Wiki. This website is maintained by the Girls' Frontline community and is free to edit by anyone.
Jump to navigation Jump to search
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#batchupload:subst:User:MoonlightArchivist/Templates|[[Category:Story artworks]]}}
+
<!--Max 60 files, catches duplicates-->{{#batchupload:subst:User:MoonlightArchivist/Templates|[[Category:Reverse Collapse CGs]]}}
 
__TOC__
 
__TOC__
 
==GFL==
 
==GFL==
 +
===Texts===
 
*assettexttable
 
*assettexttable
 
**explore_affair_server,explore_affair_client: random exploration events
 
**explore_affair_server,explore_affair_client: random exploration events
Line 17: Line 18:
 
**enemy_illustration: name+desc+VA
 
**enemy_illustration: name+desc+VA
 
**sangvis: different desc
 
**sangvis: different desc
**enemy_illustration_skill
+
**enemy_illustration_skill (lore desc) / battle_skill_config+mission_skill_config (data)
 
**commander_uniform
 
**commander_uniform
 
**sangvis_gasha: banner names
 
**sangvis_gasha: banner names
Line 26: Line 27:
 
**unit lines (CharacterVoice, NewCharacterVoice)
 
**unit lines (CharacterVoice, NewCharacterVoice)
 
**Kalina lines (KalinaLevelVoice)
 
**Kalina lines (KalinaLevelVoice)
 +
**campion_ (events data)
 
*assettextavg
 
*assettextavg
**assets/resources/dabao/avgtxt/ ; assets/resources/dabao/avgtxt/battleavg : Cube: -1, -6 ; Arctic Warfare: -2, -3, -4, -5 ; Cube+: -7 ; Rabbit Hunt: -8 ; Deep Dive: -10, -11, -12, -13 ; Only Master: -14, -15 ; Singularity: -16, -17, -18 ; Glory Day: -19, -20, ; Continuum Turbulence: -24, -25, -26, -27, -28 ; Isomer: -31 ; Valhalla: -32 ; Shattered Connexion: -33 ; Freaky Pandemic: -34 ; A Snowy Night Capriccio : -35 ; Polarized Light: -36 ; The Photo Studio Mystery: -37 ; Dream Theatre: -38 ; Far Side of the Sea: -40 ; Dual Randomness: -41 : Butterfly in a Cocoon: -42 ; Bounty Feast: -43 ; Mirror Stage : -44 ; Untranslated: -45 ; My Devil's Frontline: -46 ; The Waves Wrangler: -47 ; Poincaré Recurrence: -48 ; One Coin Short: -49 ; Love Bakery: -50 ; Fixed Point: -51, -99 ; Lycan Sanctuary: -52 ; Longitudinal Strain: -54 ; Eclipses & Saros: -56 ; The Glistening Bloom: -57 ; Slow Shock: -58 ; Maze Guess: -59 ;  
+
**assets/resources/dabao/avgtxt/ ; assets/resources/dabao/avgtxt/battleavg (match with https://github.com/randomqwerty/GFLData/blob/main/en/stc/story_util.json) : Cube: -1, -6 ; Arctic Warfare: -2, -3, -4, -5 ; Cube+: -7 ; Rabbit Hunt: -8 ; Deep Dive: -10, -11, -12, -13 ; Only Master: -14, -15 ; Singularity: -16, -17, -18 ; Glory Day: -19, -20, ; Continuum Turbulence: -24, -25, -26, -27, -28 ; Isomer: -31 ; Valhalla: -32 ; Shattered Connexion: -33 ; Freaky Pandemic: -34 ; A Snowy Night Capriccio : -35 ; Polarized Light: -36 ; The Photo Studio Mystery: -37 ; Dream Theatre: -38 ; Far Side of the Sea: -40 ; Dual Randomness: -41 : Butterfly in a Cocoon: -42 ; Bounty Feast: -43 ; Mirror Stage : -44 ; Untranslated: -45 ; My Devil's Frontline: -46 ; The Waves Wrangler: -47 ; Poincaré Recurrence: -48 ; One Coin Short: -49 ; Love Bakery: -50 ; Fixed Point: -51, -99 ; Lycan Sanctuary: -52 ; Longitudinal Strain: -54 ; Eclipses & Saros: -56 ; The Glistening Bloom: -57 ; Slow Shock: -58 ; Maze Guess: -59 ;  
 
**assets/resources/dabao/avgtxt/anniversary: NPCs with minus tag, assimilation with s_ tag
 
**assets/resources/dabao/avgtxt/anniversary: NPCs with minus tag, assimilation with s_ tag
 
**assets/resources/dabao/avgtxt/fetter/: Bookshelf of Memories
 
**assets/resources/dabao/avgtxt/fetter/: Bookshelf of Memories
Line 34: Line 36:
 
**assets/resources/dabao/avgtxt/va11/va11_1.txt: Valhalla special scenes
 
**assets/resources/dabao/avgtxt/va11/va11_1.txt: Valhalla special scenes
 
**assets/resources/dabao/avgtxt/tutorials: assimilation tutorial
 
**assets/resources/dabao/avgtxt/tutorials: assimilation tutorial
 +
*equip_group: Equip costume sets name+desc, detailed effects in battle_skill_config (join on equip_group.json-group_skill<>battle_skill_config.json.skill_group_id)
 +
 +
===Files===
 +
*resourcecardhomebg: main screen backgrounds
 +
*spritescardbg: player ID backgrounds
 
*resourceavgpicprefab__ ; resourcebossskillpic ; resourcepic__add ; resourcepic_
 
*resourceavgpicprefab__ ; resourcebossskillpic ; resourcepic__add ; resourcepic_
 
**Texture2D alphas for all character types
 
**Texture2D alphas for all character types
Line 63: Line 70:
 
*assetlogin1: login illustration
 
*assetlogin1: login illustration
 
*atlasclipscommonattri: Doll stats icons
 
*atlasclipscommonattri: Doll stats icons
<hr>
+
 
*assets/resources/dabao/avgtxt/profiles.txt
+
===Story backgrounds===
 +
*assets/resources/dabao/avgtxt/profiles.txt -> To find where a background is used in the story: search for the background file name in profiles.txt, check the line number, subtract one to align on zero-indexing, and search in the story files the background ID between the <BIN> tags.
 
**21Jashin: My Devil's Frontline
 
**21Jashin: My Devil's Frontline
 
**CG-Houkai: Only Master
 
**CG-Houkai: Only Master
Line 92: Line 100:
 
**2022saros
 
**2022saros
 
**2023NewYear: Mystery Box Theorem
 
**2023NewYear: Mystery Box Theorem
<hr>
+
**2024ghost: GITS collab
 +
 
 +
===Special unit names===
 
*BOSS-7: Gager
 
*BOSS-7: Gager
 
*BOSS-9: Architect
 
*BOSS-9: Architect
Line 99: Line 109:
 
*Weaver: Ouroboros
 
*Weaver: Ouroboros
 
*resourceavgpicprefabsd\DUMMY_N ?
 
*resourceavgpicprefabsd\DUMMY_N ?
*春田咖啡: Springfield
+
*春田咖啡, m1903, coffee: Springfield
*pmhe: Makarov
 
 
*ar: Galil
 
*ar: Galil
 
*mlemk: Lee-Enfield
 
*mlemk: Lee-Enfield
Line 109: Line 118:
 
*ISC -> Papasha mech
 
*ISC -> Papasha mech
 
*landmine_beach -> krab
 
*landmine_beach -> krab
*PM -> Makarov
+
*PM -> Makarov (close to pm06, pm1910 and pm9)
 
*Rogue -> Machlian or Dandelion
 
*Rogue -> Machlian or Dandelion
 
*Shark -> Sharkitect
 
*Shark -> Sharkitect
Line 115: Line 124:
 
*Teal -> Grig
 
*Teal -> Grig
 
*TeslaTrooper -> Minotaurus
 
*TeslaTrooper -> Minotaurus
 +
*Squad -> HOCs
 
*TOW -> BGM-71
 
*TOW -> BGM-71
 
*Nyto_mecha -> Tareus; Nyto_mecha2 -> Sana
 
*Nyto_mecha -> Tareus; Nyto_mecha2 -> Sana
<hr>
+
*aps -> Stechkin
 +
*CETME556 -> Model L
 +
*95type / 97type / type64 (Howa Type 64) / type100 / type88 (Type 88) / type62 / 59type / 56typeR / 81typeR / 80type / 88type (Hanyang Type 88) / 79type / 64type (Type 64) / 561type / 63type / 4type (4 Shiki) / 06typesmg / howatype89 / 92type
 +
*98k -> Kar98k
 +
*m1 -> M1 Garand (close to m110, m1911, etc)
 +
*tt33 -> Tokarev
 +
*sps -> Serdyukov
 +
*scar -> Steyr ACR
 +
*oc44 -> OTs-44
 +
*js127 -> JS05
 +
*cbjms -> C-MS
 +
*357 -> Astra Revolver
 +
*browninghp -> HP-35
 +
*kp31 -> Suomi
 +
*warjack -> Mobile Armor mecha
 +
*hezism1 -> SM-1
 +
*fnspr -> SPR A3G
 +
*fliegen -> drones
 +
*dtasrs -> SRS
 +
*PDW -> Honey Badger
 +
 
 +
===Sorting bat===
 
@echo off
 
@echo off
 
for /f "skip=1" %%i in ('wmic os get localdatetime') do if not defined fulldate set fulldate=%%i
 
for /f "skip=1" %%i in ('wmic os get localdatetime') do if not defined fulldate set fulldate=%%i
Line 237: Line 268:
 
exit /b
 
exit /b
  
==PNC==
+
==PNC Files==
 
*AvgConfig.*.AvgCfg_*.lua : story chapter configuration
 
*AvgConfig.*.AvgCfg_*.lua : story chapter configuration
 
*AvgConfig.*.AvgLang_*_EN_US.lua : raw text  
 
*AvgConfig.*.AvgLang_*_EN_US.lua : raw text  
Line 244: Line 275:
 
*LuaConfigs.loading_tips.lua: loading screens text
 
*LuaConfigs.loading_tips.lua: loading screens text
 
*LuaConfigs.noun_des.lua : most worldview entries
 
*LuaConfigs.noun_des.lua : most worldview entries
*LuaConfigs.locale_text.lua.bytes.txt : loose strings data
+
*LuaConfigs.locale_text.lua.bytes.txt : loose strings data (use [https://www.ghisler.com/lister/ lister] in UTF-8 for CN version)
 
*LuaConfigs.skin.lua.bytes: Skin names and descriptions
 
*LuaConfigs.skin.lua.bytes: Skin names and descriptions
 
*LuaConfigs.item.lua.bytes: Item descriptions (match id and furniture textures with LuaConfigs.dorm_furniture.lua.bytes.txt)
 
*LuaConfigs.item.lua.bytes: Item descriptions (match id and furniture textures with LuaConfigs.dorm_furniture.lua.bytes.txt)
Line 250: Line 281:
 
*LuaConfigs.hero_relationship.lua.bytes
 
*LuaConfigs.hero_relationship.lua.bytes
 
*LuaConfigs.camp.lua.bytes: hero factions
 
*LuaConfigs.camp.lua.bytes: hero factions
*LuaConfigs.event.lua.bytes/event_replace_txt + LuaConfigs.event_choice.lua.bytes.txt/event_assist: Anomaly Nodes (regular exploration)
+
*LuaConfigs.event.lua.bytes/event_replace_txt + LuaConfigs.event_choice.lua.bytes.txt/event_assist: Anomaly Nodes (regular exploration) - 5 first numbers of IDs encode the story part/event - last number of ID encode the stage number
 
*LuaConfigs.warchess_event.lua.bytes + LuaConfigs.warchess_event_choice.lua.bytes.lua: Anomaly Nodes (Matrix Mode)
 
*LuaConfigs.warchess_event.lua.bytes + LuaConfigs.warchess_event_choice.lua.bytes.lua: Anomaly Nodes (Matrix Mode)
 
*LuaConfigs.hero_data.lua.bytes: hero id
 
*LuaConfigs.hero_data.lua.bytes: hero id
Line 268: Line 299:
 
*images\loginbg.ab: login artwork
 
*images\loginbg.ab: login artwork
 
*LuaConfigs.skill_label_info.lua.bytes: Skill effects tooltips
 
*LuaConfigs.skill_label_info.lua.bytes: Skill effects tooltips
*LuaConfigs.attribute.lua.bytes.lua: Names and IDs of hero stats (calculation formulas in Game.PlayerData.Hero.HeroData.lua.bytes.lua + LuaConfigs.hero_star.lua.bytes + LuaConfigs.hero_potential.lua.bytes)
+
*LuaConfigs.attribute.lua.bytes.lua: Names and IDs of hero stats (calculation formulas in Game.PlayerData.Hero.HeroData.lua.bytes.lua + Game.PlayerData.AttributeBonus.lua.bytes + LuaConfigs.hero_star.lua.bytes + LuaConfigs.hero_potential.lua.bytes)
 
*images\dynhead.ab: animated profile pictures
 
*images\dynhead.ab: animated profile pictures
 
*images\mainscenebg.ab: main menu backgrounds
 
*images\mainscenebg.ab: main menu backgrounds
Line 275: Line 306:
 
*spriteatlas\ui_signinminigamebq.ab: Anniversary Emote Generator chibis
 
*spriteatlas\ui_signinminigamebq.ab: Anniversary Emote Generator chibis
 
*spriteatlas\sectorbuilding: Procedural Efficiency/Specialty Training icons
 
*spriteatlas\sectorbuilding: Procedural Efficiency/Specialty Training icons
*LuaConfigs.warchess_tip.lua.bytes: Warchess story nodes
+
*LuaConfigs.warchess_tip.lua.bytes + LuaConfigs.guide_step.lua.bytes.lua: Warchess story nodes
 +
 
 +
==GFL2==
 +
*GF2Exilium  > GF2 Game > GF2_Exilium_Data
 +
**StreamingAssets > Audio+PC: launch movie+voices
 +
**LocalCache > Data
 +
***Table: Human-readable data
 +
***AssetBundles_Windows: All assets
 +
****Assets > ArtsResource > Audio > CriWare: sounds, voices
 +
****Assets > Cutscene > Video > PC > GunGet: new unit get videos
 +
 
 +
==RCCB==
 +
*ReverseCollapse_Data > StreamingAssets > win
 +
**level: Raw levels data
 +
**txtfile (Secret Documents content, without title)
 +
**table
 +
***secretfile (Secret Documents title and txtfile ID)
 +
**strings
 +
***item_string
 +
***skill_string
 +
***terrainbuff_string
 +
***terrainblock_string
 +
***levelbrief_string
 +
***levelinfo_string (ID+title+desc)
 +
***unitskin_string
 +
***storydialog_string (includes campfire discussions)
 +
***itemkey_string
 +
***weaponaccessory_string
 +
***storyoption_string (story choices)
 +
***secretfile_package_string
 +
***keyword_string
 +
***achievement_string
 +
***secretfile_string
 +
***itemcollection_string
 +
**DlcAB
 +
***dlc_2660430_sprite: costumes
 +
**Icon
 +
***collection: achievements icons, story cgs
 +
***help: enemies splash screens
 +
***item
 +
***keywordimage
 +
***level_bigmap (URNC roster?)
 +
***mainback (main menu?)
 +
***mainremake (new-old logo)
 +
***park (map?)
 +
***portrait (non-final images)
 +
***preparebg+prepare_save_screenshots
 +
***secretdoc+secretdoc_icon (not readable)
 +
***skill
 +
***storybg
 +
***timemap
 +
***unit (icons+full sprite (_drawing))
 +
***weapon (with weapon parts)
 +
**MapPrefab (all map assets)
 +
**Prefab
 +
***avatar (Live2D)
 +
***titleprefab (old menus)
 +
***uiprefabd (documents, game logo, )
  
 
==Files processes==
 
==Files processes==
 
+
===GFL Dolls===
 
{| class="gf-table"
 
{| class="gf-table"
 
! Wiki filename
 
! Wiki filename
 
! Extracted from  
 
! Extracted from  
 
! Comments
 
! Comments
|-
 
! colspan=10 | GFL Dolls
 
 
|-
 
|-
 
|<Name>[_costumeX].png
 
|<Name>[_costumeX].png
 
|Android/New/character<Name>/pic_<Name>[_HD] + pic_<Name>[_HD]_Alpha (use René's tool to combine)
 
|Android/New/character<Name>/pic_<Name>[_HD] + pic_<Name>[_HD]_Alpha (use René's tool to combine)
|full body - main
+
|full body - main (previews are shared on all socials)
 
|-
 
|-
 
|<Name>[_costumeX]_D.png  
 
|<Name>[_costumeX]_D.png  
 
|Android/New/character<Name>/pic_<Name>_D[_HD] + pic_<Name>_D[_HD]_Alpha
 
|Android/New/character<Name>/pic_<Name>_D[_HD] + pic_<Name>_D[_HD]_Alpha
|full body - damaged
+
|full body - damaged (previews are shared only on TW and EN socials)
 
|-
 
|-
 
|<Name>[_costumeX]_S.png  
 
|<Name>[_costumeX]_S.png  
Line 302: Line 388:
 
|icon name fetched from "icon" parameter in /skill[X]data
 
|icon name fetched from "icon" parameter in /skill[X]data
 
|-
 
|-
|<Name>[_costumeX]_chibi_spritemap.png  
+
|<Name>[_costumeX]_chibi[_dorm]_spritemap.png  
 
|Android/New/character<Name>spine/<Name>.png
 
|Android/New/character<Name>spine/<Name>.png
|sprite map (not the files with "R" prefix which are for dorms)
+
|sprite map. There may be another spritemap with the "R" prefix for dorms.
 
|-
 
|-
|<Name>[_costumeX]_chibi_skel.skel  
+
|<Name>[_costumeX]_chibi[_dorm]_skel.skel  
 
|Android/New/character<Name>spine/<Name>.skel
 
|Android/New/character<Name>spine/<Name>.skel
|skel bytes
+
|skel bytes. The "R" version is necessary for the dorm animations switch to work.
 
|-
 
|-
|<Name>[_costumeX]_chibi_atlas.txt  
+
|<Name>[_costumeX]_chibi[_dorm]_atlas.txt  
 
|Android/New/character<Name>spine/<Name>.atlas
 
|Android/New/character<Name>spine/<Name>.atlas
|atlas bytes
+
|atlas bytes. There may be another atlas with the "R" prefix for dorms.
 
|-
 
|-
 
! colspan=10 | Live2D (all assets defined in /Live2DSettings - get hit_areas from CubismHitDrawable - archives internally organized in normal and destroy)
 
! colspan=10 | Live2D (all assets defined in /Live2DSettings - get hit_areas from CubismHitDrawable - archives internally organized in normal and destroy)
Line 331: Line 417:
 
|
 
|
 
|Only for old Live2D
 
|Only for old Live2D
|-
+
|}
! colspan=10 | GFL Enemies/Assimilated
+
 
 +
===GFL Enemies===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
 
|<Name>_I.png  
 
|<Name>_I.png  
Line 348: Line 439:
 
|Icon_Skill_<icon name>.png  
 
|Icon_Skill_<icon name>.png  
 
|Android/New/spritesui
 
|Android/New/spritesui
|icon name fetched from "icon" parameter in /skill[X]data
+
|icon name fetched from "icon" parameter in subpage /skill[X]data
 
|-
 
|-
 
|<Name>_chibi_spritemap.png  
 
|<Name>_chibi_spritemap.png  
Line 361: Line 452:
 
|Android/New/character<Name>spine/<Name>.atlas
 
|Android/New/character<Name>spine/<Name>.atlas
 
|atlas bytes
 
|atlas bytes
 +
|}
 +
 +
===GFL Assimilated===
 +
''Name must always remain the base enemy name without attachment (even for alt versions).''
 +
 +
''If there is only one set of animation files in the game (no "ally" fileset), reuse enemy files.''
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 +
|-
 +
|<Name>_S.png
 +
|Android/New/character<Name>/pic_<Name>_SS + pic_<Name>_SS_Alpha
 +
|portrait
 +
|-
 +
|<Name>.png
 +
|Android/New/character<Name>/pic_<Name>_LL + pic_<Name>_LL_Alpha
 +
|full body
 +
|-
 +
|Icon_Skill_<icon name>.png
 +
|Android/New/spritesui
 +
|icon name fetched from "icon" parameter in subpage /skill[X]data
 +
|-
 +
|<Name>_assimilated[_alt]_chibi_spritemap.png
 +
|Android/New/character<Name>spine/<Name>.png
 +
|sprite map (the ''_alt'' tag is used for "costume" variants) - May be optional
 +
|-
 +
|<Name>_assimilated[_alt]_chibi_skel.skel
 +
|Android/New/character<Name>spine/<Name>.skel
 +
|skel bytes - May be optional
 +
|-
 +
|<Name>_assimilated[_alt]_chibi_atlas.txt
 +
|Android/New/character<Name>spine/<Name>.atlas
 +
|atlas bytes - May be optional
 
|-
 
|-
 
|<Name>_Upgrade.png  
 
|<Name>_Upgrade.png  
 
|Android/New/character<Name>/pic_<Name>_LL_1 + pic_<Name>_LL_1_Alpha
 
|Android/New/character<Name>/pic_<Name>_LL_1 + pic_<Name>_LL_1_Alpha
|full body - assimilation last stage (VGMToolbox for decompression then ffmepg for m2v to mp4 conversion)
+
|full body - assimilation last stage (ringleaders only)
 
|-
 
|-
 
|<Name>_Skill_CutIn.mp4  
 
|<Name>_Skill_CutIn.mp4  
 
|Android/New/<Name>.usm.bytes
 
|Android/New/<Name>.usm.bytes
|assimilated skill anim
+
|assimilated skill anim, script:
|-
+
<code>
! colspan=10 | GFL HOCs
+
for %%a in (*.usm.bytes) do (
 +
UsmToolkit.exe extract %%a
 +
ffmpeg -i %%~na.m2v -i %%~na.adx -c:v libx264 -c:a aac -b:v 4M %%~na.mp4
 +
)
 +
</code>
 +
|}
 +
 
 +
===GFL HOCs===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
 
|<Name>_S.png
 
|<Name>_S.png
|
+
|Android/New/resourcesquads/<Name>.png
 
|
 
|
 
|-
 
|-
Line 405: Line 541:
 
|-
 
|-
 
|<Name>_Promotion.jpg  
 
|<Name>_Promotion.jpg  
|Weibo previews
+
|Weibo (CN)/Twitter (EN) previews
|
+
|Artwork with gameplay info
 
|-
 
|-
 
|<Name>_Artwork.jpg  
 
|<Name>_Artwork.jpg  
 
|Reddit previews
 
|Reddit previews
|
+
|Clean artwork
|-
+
|}
! colspan=10 | GFL Fairies
+
 
 +
===GFL Fairies===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
 
|<Name>[_2/_3].png  
 
|<Name>[_2/_3].png  
Line 420: Line 561:
 
|<Name>_chibi[_2/_3].png
 
|<Name>_chibi[_2/_3].png
 
|Android/New/resourcefairy
 
|Android/New/resourcefairy
|
+
|chibi fairy
 +
|}
 +
 
 +
===GFL Equipment===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
! colspan=10 | PNC Dolls
+
|<Name>.png
 +
|Android/New/resourceiconequip
 +
|Use square picture, not rectangle one
 +
|}
 +
 
 +
===PNC Dolls===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
 
|Character_Profile_<Name>.png  
 
|Character_Profile_<Name>.png  
Line 446: Line 603:
 
|<Name>_Ult.mp4  
 
|<Name>_Ult.mp4  
 
|files\media\videos\UltSkill\ultskill<HeroId>.usm
 
|files\media\videos\UltSkill\ultskill<HeroId>.usm
|ultimate skill animation (decrypt with CRID.usmDemux_Tool -> ffmpeg conversion)
+
|ultimate skill animation (decrypt with CRID.usmDemux_Tool then ffmpeg conversion)
 
|-
 
|-
 
|PNC_<Name>_Promo[_X].[jpg/png]  
 
|PNC_<Name>_Promo[_X].[jpg/png]  
 
|Weibo previews
 
|Weibo previews
 
|
 
|
|-
+
|}
! colspan=10 | PNC Enemies
+
 
 +
===PNC Enemies===
 +
{| class="gf-table"
 +
! Wiki filename
 +
! Extracted from
 +
! Comments
 
|-
 
|-
 
|<Name>.png  
 
|<Name>.png  

Revision as of 12:12, 12 April 2024

Select files (or drop them here)...

    GFL

    Texts

    • assettexttable
      • explore_affair_server,explore_affair_client: random exploration events
      • skin: individual costume names,unlock line,notebook memento,VA
      • skin_group: notebook event names+desc
      • skin_bonus: notebook completion bonus
      • career_quest, achievement
      • item: name+desc
      • furniture: name+desc
      • furniture_establish: upgradable base objects name+desc
      • furniture_classes
      • chess_seasonevent
      • fairy
      • equip
      • enemy_illustration: name+desc+VA
      • sangvis: different desc
      • enemy_illustration_skill (lore desc) / battle_skill_config+mission_skill_config (data)
      • commander_uniform
      • sangvis_gasha: banner names
      • building
      • organization
      • story_util: chapters desc
    • assettextes
      • unit lines (CharacterVoice, NewCharacterVoice)
      • Kalina lines (KalinaLevelVoice)
      • campion_ (events data)
    • assettextavg
      • assets/resources/dabao/avgtxt/ ; assets/resources/dabao/avgtxt/battleavg (match with https://github.com/randomqwerty/GFLData/blob/main/en/stc/story_util.json) : Cube: -1, -6 ; Arctic Warfare: -2, -3, -4, -5 ; Cube+: -7 ; Rabbit Hunt: -8 ; Deep Dive: -10, -11, -12, -13 ; Only Master: -14, -15 ; Singularity: -16, -17, -18 ; Glory Day: -19, -20, ; Continuum Turbulence: -24, -25, -26, -27, -28 ; Isomer: -31 ; Valhalla: -32 ; Shattered Connexion: -33 ; Freaky Pandemic: -34 ; A Snowy Night Capriccio : -35 ; Polarized Light: -36 ; The Photo Studio Mystery: -37 ; Dream Theatre: -38 ; Far Side of the Sea: -40 ; Dual Randomness: -41 : Butterfly in a Cocoon: -42 ; Bounty Feast: -43 ; Mirror Stage : -44 ; Untranslated: -45 ; My Devil's Frontline: -46 ; The Waves Wrangler: -47 ; Poincaré Recurrence: -48 ; One Coin Short: -49 ; Love Bakery: -50 ; Fixed Point: -51, -99 ; Lycan Sanctuary: -52 ; Longitudinal Strain: -54 ; Eclipses & Saros: -56 ; The Glistening Bloom: -57 ; Slow Shock: -58 ; Maze Guess: -59 ;
      • assets/resources/dabao/avgtxt/anniversary: NPCs with minus tag, assimilation with s_ tag
      • assets/resources/dabao/avgtxt/fetter/: Bookshelf of Memories
      • assets/resources/dabao/avgtxt/memoir/: Neural Upgrades
      • assets/resources/dabao/avgtxt/skin/: Notebook
      • assets/resources/dabao/avgtxt/va11/va11_1.txt: Valhalla special scenes
      • assets/resources/dabao/avgtxt/tutorials: assimilation tutorial
    • equip_group: Equip costume sets name+desc, detailed effects in battle_skill_config (join on equip_group.json-group_skill<>battle_skill_config.json.skill_group_id)

    Files

    • resourcecardhomebg: main screen backgrounds
    • spritescardbg: player ID backgrounds
    • resourceavgpicprefab__ ; resourcebossskillpic ; resourcepic__add ; resourcepic_
      • Texture2D alphas for all character types
    • resourceavgtexture_ ; resourceavgbase
      • Story illustrations
      • Sometimes contains Sprite tutorials
    • resourcecommander_ ; charactercommander ; charactersummercommander ; resourceiconcommanderemoji ; resourcecommanderemoji
      • Commander chibi Sprite, Texture2D, TextAsset .skel, MonoBehavior SkeletonData & Atlas, Shader
    • resourceiconenemy
      • _I profile icons
      • On-map structures
    • resourceiconuniform
      • Commander costumes shop icons
    • resourceiconlogo
      • factions cut-in logos
    • character_
      • For Dolls, assimilation and enemies, Sprite, Texture2D, includes alphas
      • Sometimes packages MonoBehavior skeletondata and Shader (characterunknown)
      • characterboss: groups Sangvis bosses
      • characternpc_: includes some fairies duplicated from resourcefairy
      • characterspecial: story sprites for allies
      • characterpet
    • resourcefairy
    • _spine
      • Spritesheets, atlases, shaders and scripts for all chibi dolls, enemies, map structures, pets, dorm characters and animated furniture. Still has Valkyria charas and K7. charactersupershortysangvisspine = Super Shorty during assimilation scene. charactercoffeespine = Springfield in cafe.
    • resourcespine_
    • resourceiconops
    • assetlogin1: login illustration
    • atlasclipscommonattri: Doll stats icons

    Story backgrounds

    • assets/resources/dabao/avgtxt/profiles.txt -> To find where a background is used in the story: search for the background file name in profiles.txt, check the line number, subtract one to align on zero-indexing, and search in the story files the background ID between the <BIN> tags.
      • 21Jashin: My Devil's Frontline
      • CG-Houkai: Only Master
      • 2020TCTD: Bounty Feast
      • gunCG, HenriettaCG: Dream Theater
      • va11_: Valhalla
      • BG-Djmax, CG-DJMAX: Glory Day
      • GGXX: Rabbit Hunt
      • SEAPARTY: Far Side of the Sea
      • sp2.: Cube
      • CG-2017Winter: Arctic Warfare
      • 17xh: Deep Dive
      • 2018Winter: Singularity
      • 2018Summer: Continuum Turbulence
      • 19Winter: Isomer
      • 2019summer: Shattered Connexion
      • 19christmas: A Snowy Night Capriccio
      • 2019halloween: Freaky Pandemic
      • 19winter: Polarized Light
      • 2020summer ; 20summer: Dual Randomness
      • 2020HW: Butterfly in a Cocoon
      • 2021white, 2021_ink: Mirror Stage
      • 2021summer: Poincaré Recurrence
      • 2021_Christmas: One Coin Short
      • 2022winter: Fixed Point
      • 2022summer: Longitudinal Strain
      • 2022saros
      • 2023NewYear: Mystery Box Theorem
      • 2024ghost: GITS collab

    Special unit names

    • BOSS-7: Gager
    • BOSS-9: Architect
    • BOSS-11: Dreamer
    • BossJustice: Judge
    • Weaver: Ouroboros
    • resourceavgpicprefabsd\DUMMY_N ?
    • 春田咖啡, m1903, coffee: Springfield
    • ar: Galil
    • mlemk: Lee-Enfield
    • dupijin: Dupieux
    • mrsgray
    • excutioner: Executioner
    • soldier: Gunner
    • ISC -> Papasha mech
    • landmine_beach -> krab
    • PM -> Makarov (close to pm06, pm1910 and pm9)
    • Rogue -> Machlian or Dandelion
    • Shark -> Sharkitect
    • Gunner -> Soldier_New / StreletPlus
    • Teal -> Grig
    • TeslaTrooper -> Minotaurus
    • Squad -> HOCs
    • TOW -> BGM-71
    • Nyto_mecha -> Tareus; Nyto_mecha2 -> Sana
    • aps -> Stechkin
    • CETME556 -> Model L
    • 95type / 97type / type64 (Howa Type 64) / type100 / type88 (Type 88) / type62 / 59type / 56typeR / 81typeR / 80type / 88type (Hanyang Type 88) / 79type / 64type (Type 64) / 561type / 63type / 4type (4 Shiki) / 06typesmg / howatype89 / 92type
    • 98k -> Kar98k
    • m1 -> M1 Garand (close to m110, m1911, etc)
    • tt33 -> Tokarev
    • sps -> Serdyukov
    • scar -> Steyr ACR
    • oc44 -> OTs-44
    • js127 -> JS05
    • cbjms -> C-MS
    • 357 -> Astra Revolver
    • browninghp -> HP-35
    • kp31 -> Suomi
    • warjack -> Mobile Armor mecha
    • hezism1 -> SM-1
    • fnspr -> SPR A3G
    • fliegen -> drones
    • dtasrs -> SRS
    • PDW -> Honey Badger

    Sorting bat

    @echo off for /f "skip=1" %%i in ('wmic os get localdatetime') do if not defined fulldate set fulldate=%%i set foldername=GFextract%fulldate:~0,8% md %foldername% md %foldername%\alphas md %foldername%\storybg md %foldername%\sounds md %foldername%\videos md %foldername%\commander md %foldername%\NPC md %foldername%\units md %foldername%\furnitures md %foldername%\menus md %foldername%\maps md %foldername%\eventmenus md %foldername%\guide md %foldername%\particles md %foldername%\live2d md %foldername%\spines md %foldername%\text md %foldername%\battlebg md %foldername%\icons

    set "source=%~dp0\" set "destination=%foldername%\alphas" robocopy "%source%" %destination% *resourceavgpic*.ab /mov robocopy "%source%" %destination% *resourcepic*.ab /mov robocopy "%source%" %destination% *resourceboss*.ab /mov set "destination=%foldername%\storybg" robocopy "%source%" %destination% *resourceavgtexture*.ab /mov robocopy "%source%" %destination% *resourceavgbase*.ab /mov set "destination=%foldername%\sounds" robocopy "%source%" %destination% *.acb.bytes /mov set "destination=%foldername%\videos" robocopy "%source%" %destination% *.usm.bytes /mov set "destination=%foldername%\commander" robocopy "%source%" %destination% *resourcecommanderclass*.ab /mov robocopy "%source%" %destination% *resourceiconuniform*.ab /mov robocopy "%source%" %destination% *charactercommander*.ab /mov robocopy "%source%" %destination% *charactersummercommander*.ab /mov robocopy "%source%" %destination% *resourceiconcommanderemoji*.ab /mov robocopy "%source%" %destination% *resourcecommanderemoji*.ab /mov set "destination=%foldername%\furnitures" robocopy "%source%" %destination% *furniture*.ab /mov robocopy "%source%" %destination% *spritesdorm*.ab /mov set "destination=%foldername%\live2d" robocopy "%source%" %destination% *live2d*.ab /mov set "destination=%foldername%\spines" robocopy "%source%" %destination% *spine*.ab /mov set "destination=%foldername%\NPC" robocopy "%source%" %destination% *characternpc*.ab /mov set "destination=%foldername%\maps" robocopy "%source%" %destination% *assetmap*.ab /mov set "destination=%foldername%\eventmenus" robocopy "%source%" %destination% *activemap*.ab /mov robocopy "%source%" %destination% *activityops*.ab /mov robocopy "%source%" %destination% *resourceactivitymap*.ab /mov set "destination=%foldername%\guide" robocopy "%source%" %destination% *guide*.ab /mov set "destination=%foldername%\particles" robocopy "%source%" %destination% *assetparticles*.ab /mov set "destination=%foldername%\icons" robocopy "%source%" %destination% *resourcenotebook*.ab /mov robocopy "%source%" %destination% *spritescardbg*.ab /mov robocopy "%source%" %destination% *resourceicon*.ab /mov robocopy "%source%" %destination% *spritesguncamps*.ab /mov robocopy "%source%" %destination% *spritesui*.ab /mov robocopy "%source%" %destination% *spritesdeploymentbuilding*.ab /mov robocopy "%source%" %destination% *resourcecardavatar*.ab /mov robocopy "%source%" %destination% *resourcecardhomebg*.ab /mov set "destination=%foldername%\menus" robocopy "%source%" %destination% *spriteshome*.ab /mov robocopy "%source%" %destination% *atlasclips*.ab /mov robocopy "%source%" %destination% *characterbuild*.ab /mov robocopy "%source%" %destination% *spritestips*.ab /mov robocopy "%source%" %destination% *spritescredits*.ab /mov

    robocopy "%source%" %destination% *assetotherres*.ab /mov robocopy "%source%" %destination% *assetthreedscenes*.ab /mov robocopy "%source%" %destination% *assetmotherbase*.ab /mov robocopy "%source%" %destination% *assettheater*.ab /mov robocopy "%source%" %destination% *assetmaterials*.ab /mov robocopy "%source%" %destination% *assetplayable*.ab /mov robocopy "%source%" %destination% *assetmanual*.ab /mov robocopy "%source%" %destination% *assetassetother*.ab /mov robocopy "%source%" %destination% *assetspecialops*.ab /mov robocopy "%source%" %destination% *assetshader*.ab /mov robocopy "%source%" %destination% *assetfonts*.ab /mov robocopy "%source%" %destination% *assetlogin*.ab /mov robocopy "%source%" %destination% *assetanimation*.ab /mov robocopy "%source%" %destination% *assetflightchessmap*.ab /mov

    robocopy "%source%" %destination% *resourceavglanguage*.ab /mov robocopy "%source%" %destination% *resourcecard*.ab /mov robocopy "%source%" %destination% *resourcebattle*.ab /mov robocopy "%source%" %destination% *resourcetitle*.ab /mov robocopy "%source%" %destination% *resourcefairy*.ab /mov robocopy "%source%" %destination% *resourcetopstory*.ab /mov robocopy "%source%" %destination% *resourceeffect*.ab /mov robocopy "%source%" %destination% *resource*prefab*.ab /mov robocopy "%source%" %destination% *resourceguncamps*.ab /mov robocopy "%source%" %destination% *resourcetargettrain*.ab /mov robocopy "%source%" %destination% *resourcesquad*.ab /mov robocopy "%source%" %destination% *resourcefetter*.ab /mov robocopy "%source%" %destination% *resourceprofiles*.ab /mov robocopy "%source%" %destination% *resourcefontsprefabs*.ab /mov robocopy "%source%" %destination% *resourcewishgunbg*.ab /mov robocopy "%source%" %destination% *resourceworldcollide*.ab /mov robocopy "%source%" %destination% *resourcesquads.ab /mov robocopy "%source%" %destination% *resourcetheater.ab /mov set "destination=%foldername%\units" robocopy "%source%" %destination% *character*.ab /mov set "destination=%foldername%\text" robocopy "%source%" %destination% *text*.ab /mov set "destination=%foldername%\battlebg" robocopy "%source%" %destination% *sprites*.ab /mov

    exit /b

    PNC Files

    • AvgConfig.*.AvgCfg_*.lua : story chapter configuration
    • AvgConfig.*.AvgLang_*_EN_US.lua : raw text
    • CharacterTextConfig.*_EN_US.lua : Files + Story text
    • CvTextConfig.*_EN_US.lua : voice lines transcriptions
    • LuaConfigs.loading_tips.lua: loading screens text
    • LuaConfigs.noun_des.lua : most worldview entries
    • LuaConfigs.locale_text.lua.bytes.txt : loose strings data (use lister in UTF-8 for CN version)
    • LuaConfigs.skin.lua.bytes: Skin names and descriptions
    • LuaConfigs.item.lua.bytes: Item descriptions (match id and furniture textures with LuaConfigs.dorm_furniture.lua.bytes.txt)
    • LuaConfigs.activity_name.lua.bytes: Events names
    • LuaConfigs.hero_relationship.lua.bytes
    • LuaConfigs.camp.lua.bytes: hero factions
    • LuaConfigs.event.lua.bytes/event_replace_txt + LuaConfigs.event_choice.lua.bytes.txt/event_assist: Anomaly Nodes (regular exploration) - 5 first numbers of IDs encode the story part/event - last number of ID encode the stage number
    • LuaConfigs.warchess_event.lua.bytes + LuaConfigs.warchess_event_choice.lua.bytes.lua: Anomaly Nodes (Matrix Mode)
    • LuaConfigs.hero_data.lua.bytes: hero id
    • LuaConfigs.avg_character.lua.bytes.lua: hero id in stories
    • LuaConfigs.sector.lua.bytes.txt: chapters + event names
    • LuaConfigs.sector_stage.lua.bytes.txt: stages names
    • spriteatlas/athsuiticon: Algo Sets icons
    • LuaConfigs.noun_des: World View (Horizon Records -> Type = 7)
    • tables.ab\BattleSkillCfg.bytes: skills description
    • spriteatlas\skillicon.ab: hero + commander + enemy skill icons
    • LuaConfigs.monster.lua.bytes.lua: Enemies names, description, skills id
    • LuaConfigs.battle_grid.lua.bytes.lua: Grid effects names and descriptions
    • spriteatlas\explorationicon.ab: protocol, active tiles, function pools icons
    • spriteatlas\commonicon.ab: items, dorm, functions, attributes icons
    • images\activity\whiteday22.ab: white day portraits 1024
    • LuaConfigs.career.lua.bytes.lua: Classes ids and names
    • images\loginbg.ab: login artwork
    • LuaConfigs.skill_label_info.lua.bytes: Skill effects tooltips
    • LuaConfigs.attribute.lua.bytes.lua: Names and IDs of hero stats (calculation formulas in Game.PlayerData.Hero.HeroData.lua.bytes.lua + Game.PlayerData.AttributeBonus.lua.bytes + LuaConfigs.hero_star.lua.bytes + LuaConfigs.hero_potential.lua.bytes)
    • images\dynhead.ab: animated profile pictures
    • images\mainscenebg.ab: main menu backgrounds
    • images\oasisbuilding.ab
    • images\sectoricon.ab
    • spriteatlas\ui_signinminigamebq.ab: Anniversary Emote Generator chibis
    • spriteatlas\sectorbuilding: Procedural Efficiency/Specialty Training icons
    • LuaConfigs.warchess_tip.lua.bytes + LuaConfigs.guide_step.lua.bytes.lua: Warchess story nodes

    GFL2

    • GF2Exilium > GF2 Game > GF2_Exilium_Data
      • StreamingAssets > Audio+PC: launch movie+voices
      • LocalCache > Data
        • Table: Human-readable data
        • AssetBundles_Windows: All assets
          • Assets > ArtsResource > Audio > CriWare: sounds, voices
          • Assets > Cutscene > Video > PC > GunGet: new unit get videos

    RCCB

    • ReverseCollapse_Data > StreamingAssets > win
      • level: Raw levels data
      • txtfile (Secret Documents content, without title)
      • table
        • secretfile (Secret Documents title and txtfile ID)
      • strings
        • item_string
        • skill_string
        • terrainbuff_string
        • terrainblock_string
        • levelbrief_string
        • levelinfo_string (ID+title+desc)
        • unitskin_string
        • storydialog_string (includes campfire discussions)
        • itemkey_string
        • weaponaccessory_string
        • storyoption_string (story choices)
        • secretfile_package_string
        • keyword_string
        • achievement_string
        • secretfile_string
        • itemcollection_string
      • DlcAB
        • dlc_2660430_sprite: costumes
      • Icon
        • collection: achievements icons, story cgs
        • help: enemies splash screens
        • item
        • keywordimage
        • level_bigmap (URNC roster?)
        • mainback (main menu?)
        • mainremake (new-old logo)
        • park (map?)
        • portrait (non-final images)
        • preparebg+prepare_save_screenshots
        • secretdoc+secretdoc_icon (not readable)
        • skill
        • storybg
        • timemap
        • unit (icons+full sprite (_drawing))
        • weapon (with weapon parts)
      • MapPrefab (all map assets)
      • Prefab
        • avatar (Live2D)
        • titleprefab (old menus)
        • uiprefabd (documents, game logo, )

    Files processes

    GFL Dolls

    Wiki filename Extracted from Comments
    <Name>[_costumeX].png Android/New/character<Name>/pic_<Name>[_HD] + pic_<Name>[_HD]_Alpha (use René's tool to combine) full body - main (previews are shared on all socials)
    <Name>[_costumeX]_D.png Android/New/character<Name>/pic_<Name>_D[_HD] + pic_<Name>_D[_HD]_Alpha full body - damaged (previews are shared only on TW and EN socials)
    <Name>[_costumeX]_S.png Android/New/character<Name>/pic_<Name>_N portrait (use René's extractor to separate and recrop)
    Icon_Skill_<icon name>.png Android/New/spritesui icon name fetched from "icon" parameter in /skill[X]data
    <Name>[_costumeX]_chibi[_dorm]_spritemap.png Android/New/character<Name>spine/<Name>.png sprite map. There may be another spritemap with the "R" prefix for dorms.
    <Name>[_costumeX]_chibi[_dorm]_skel.skel Android/New/character<Name>spine/<Name>.skel skel bytes. The "R" version is necessary for the dorm animations switch to work.
    <Name>[_costumeX]_chibi[_dorm]_atlas.txt Android/New/character<Name>spine/<Name>.atlas atlas bytes. There may be another atlas with the "R" prefix for dorms.
    Live2D (all assets defined in /Live2DSettings - get hit_areas from CubismHitDrawable - archives internally organized in normal and destroy)
    <Name>[_costumeX][_D]_live2d_texture.png Android/New/live2dnewgun<Name>/*.png
    <Name>[_costumeX][_D]_live2d_[motion id].mtn Android/New/live2dnewgun<Name>/*.fade.json (AnimationClip)
    <Name>[_costumeX][_D]_live2d_model.moc Android/New/live2dnewgun<Name>/*.fbx (Animator)
    <Name>[_costumeX][_D]_live2d_physics.txt Only for old Live2D

    GFL Enemies

    Wiki filename Extracted from Comments
    <Name>_I.png Android/New/resourceiconenemy icon
    <Name>_S.png Android/New/character<Name>/pic_<Name>_SS + pic_<Name>_SS_Alpha portrait
    <Name>.png Android/New/character<Name>/pic_<Name>_LL + pic_<Name>_LL_Alpha full body
    Icon_Skill_<icon name>.png Android/New/spritesui icon name fetched from "icon" parameter in subpage /skill[X]data
    <Name>_chibi_spritemap.png Android/New/character<Name>spine/<Name>.png sprite map
    <Name>_chibi_skel.skel Android/New/character<Name>spine/<Name>.skel skel bytes
    <Name>_chibi_atlas.txt Android/New/character<Name>spine/<Name>.atlas atlas bytes

    GFL Assimilated

    Name must always remain the base enemy name without attachment (even for alt versions).

    If there is only one set of animation files in the game (no "ally" fileset), reuse enemy files.

    Wiki filename Extracted from Comments
    <Name>_S.png Android/New/character<Name>/pic_<Name>_SS + pic_<Name>_SS_Alpha portrait
    <Name>.png Android/New/character<Name>/pic_<Name>_LL + pic_<Name>_LL_Alpha full body
    Icon_Skill_<icon name>.png Android/New/spritesui icon name fetched from "icon" parameter in subpage /skill[X]data
    <Name>_assimilated[_alt]_chibi_spritemap.png Android/New/character<Name>spine/<Name>.png sprite map (the _alt tag is used for "costume" variants) - May be optional
    <Name>_assimilated[_alt]_chibi_skel.skel Android/New/character<Name>spine/<Name>.skel skel bytes - May be optional
    <Name>_assimilated[_alt]_chibi_atlas.txt Android/New/character<Name>spine/<Name>.atlas atlas bytes - May be optional
    <Name>_Upgrade.png Android/New/character<Name>/pic_<Name>_LL_1 + pic_<Name>_LL_1_Alpha full body - assimilation last stage (ringleaders only)
    <Name>_Skill_CutIn.mp4 Android/New/<Name>.usm.bytes assimilated skill anim, script:

    for %%a in (*.usm.bytes) do ( UsmToolkit.exe extract %%a ffmpeg -i %%~na.m2v -i %%~na.adx -c:v libx264 -c:a aac -b:v 4M %%~na.mp4 )

    GFL HOCs

    Wiki filename Extracted from Comments
    <Name>_S.png Android/New/resourcesquads/<Name>.png
    Icon_Skill_<icon name>.png Android/New/spritesui icon name fetched from "icon" parameter in /skill[X]data
    <Name>_chibi_spritemap.png Android/New/character<Name>spine/<Name>.png full unit - sprite map
    <Name>_chibi_skel.skel Android/New/character<Name>spine/<Name>.skel full unit - skel bytes
    <Name>_chibi_atlas.txt Android/New/character<Name>spine/<Name>.atlas full unit - atlas bytes
    <Name>[_A/_B/_C]_chibi_spritemap.png Android/New/character<Name>spine/R_<Name>_M[1/2/3].png single unit - sprite map
    <Name>_chibi_skel.skel Android/New/character<Name>spine/R_<Name>_M[1/2/3].skel single unit - skel bytes
    <Name>_chibi_atlas.txt Android/New/character<Name>spine/R_<Name>_M[1/2/3].atlas single unit - atlas bytes
    <Name>_Promotion.jpg Weibo (CN)/Twitter (EN) previews Artwork with gameplay info
    <Name>_Artwork.jpg Reddit previews Clean artwork

    GFL Fairies

    Wiki filename Extracted from Comments
    <Name>[_2/_3].png Android/New/resourcefairy full body
    <Name>_chibi[_2/_3].png Android/New/resourcefairy chibi fairy

    GFL Equipment

    Wiki filename Extracted from Comments
    <Name>.png Android/New/resourceiconequip Use square picture, not rectangle one

    PNC Dolls

    Wiki filename Extracted from Comments
    Character_Profile_<Name>.png files\bundles\res\character_npic portrait
    <Name>[_costumeX].png files\bundles\res\character\<Name>\lpic_<Name>\lpic_<Name>.png full body
    <Name>_base[2/3].png files\bundles\res\character\<Name>_p[2/3]\lpic_<Name>_p[2/3]\lpic_<Name>_p[2/3].png full body - first and second breakthrough
    Icon_Skill_<name>_[passive/skill/ult].png files\bundles\res\spriteatlas\skillicon
    <name>_face[X].png files\bundles\res\character\<Name>_avg\face
    <Name>_Ult.mp4 files\media\videos\UltSkill\ultskill<HeroId>.usm ultimate skill animation (decrypt with CRID.usmDemux_Tool then ffmpeg conversion)
    PNC_<Name>_Promo[_X].[jpg/png] Weibo previews

    PNC Enemies

    Wiki filename Extracted from Comments
    <Name>.png files\bundles\res\character\<Name>_avg\lpic_<Name>_avg full body
    <Name>_face[_X].png files\bundles\res\character\<Name>_avg\face
    spic_<name>.png files\bundles\res\character_spic icon