User:MoonlightArchivist/Guidelines
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)
- 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
- 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
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
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:
|
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 |