RF:G Editing Main Page

From Red Faction Wiki
Revision as of 17:41, 8 March 2024 by Camo (talk | contribs)
  • This will serve as a landing page for all resources related to Red Faction: Guerrilla editing for the Re-Mars-tered Edition.

    External Links

    Community

    Downloads

    Documentation

    Core Concepts

    Red Faction: Guerrilla File Formats

    • .xtbl - XML table files are used to store properties or attributes in Red Faction: Guerrilla. Overall, their function is similar to the .tbl files of Red Faction and Red Faction II.
    • .scriptx - Internal XML scripting language file, commonly used for missions and activities
    • .dtodx - Weather/lighting file for maps that controls things like fog, tint, ambient colour, eye adaption, bloom, cloud color and speed
    • .gtodx - Skybox file for maps that controls things like the sun texture, moon positions and if the horizon mountain texture is enabled
    • .vpp_pc - Packfile
    • .rigx - Rig
    • .str2_pc - Texture Packfile
    • .rfgzone_pc - Map zone
    • .layer_pc - Map zone
    • .cpeg_pc, cvbm_pc - Texture cpu file
    • .gpeg_pc, gvbm_pc - Texture gpu file
    • .asm_pc - Asset assembler file
    • .csmesh_pc - Static mesh cpu file
    • .gsmesh_pc - Static mesh gpu file
    • .ccmesh_pc - Character mesh cpu file
    • .gcmesh_pc - Character mesh gpu file
    • .ccar_pc - Vehicle mesh cpu file
    • .gcar_pc - Vehicle mesh gpu file
    • .anim_pc - Animation
    • .cchk_pc - Destructible object cpu file
    • .gchk_pc - Destructible object gpu file
    • .cefct_pc - Visual effect cpu file
    • .gefct_pc - Visual effect gpu file
    • .cfmesh_pc - Foliage mesh
    • .cstch - Terrain clutter mesh cpu file
    • .gstch - Terrain clutter mesh gpu file
    • .cterrain_pc - Terrain zone cpu file
    • .gterrain_pc - Terrain zone gpu file
    • .ctmesh_pc - Terrain subzone cpu file
    • .gtmesh_pc - Terrain subzone gpu file
    • .fsmib - Fullscreen map data
    • .fxo_kg - Shader
    • .le_strings - Steam localization strings
    • .rfglocatext - Localization strings
    • .mat_pc - Render material
    • .morph_pc - Animation Morph
    • .vint_doc - UI
    • .sim_pc - Cloth sim
    • .xgs_pc - Sound config
    • .xsb_pc - Soundbank
    • .xwb_pc - Wavebank
    • .aud_pc - Audio categories
    • .vf3_pc - Font
    • .vfdvp_pc - ?
    • .rfgvp_pc - ?

    Red Faction: Guerrilla File Structure

    \Red Faction Guerrilla Re-MARS-tered\data\

    The two most important files for modding most of RF:G are misc.vpp_pc & table.vpp_pc

    • activities.vpp_pc - contains textures for singleplayer activities
    • anims.vpp_pc - contains animation files
    • chunks.vpp_pc - contains .rfgchunkx files and seems to be related to the preload_chunks.xtbl file, it's possible to add them to a map using the correct dest_checksum & uid numbers. Game might also spawn missing_chunk or missing_destroyable if a mesh fails to load.
    • cloth_sim.vpp_pc - contains cloth simulation files
    • decals.vpp_pc - contains decal textures
    • dlc01_l0.vpp_pc - singleplayer DLC map
    • dlc01_l1.vpp_pc - only contains a blank asm_pc file
    • dlc01_precache.vpp_pc - similar to mp_common.vpp_pc but for the singleplayer DLC map
    • dlcp01_activities.vpp_pc - contains textures for singleplayer DLC activities
    • dlcp01_anims.vpp_pc - contains animation files for singleplayer DLC
    • dlcp01_cloth_sim.vpp_pc - contains cloth simulation files for singleplayer DLC
    • dlcp01_effects.vpp_pc - contains visual effect files for singleplayer DLC, some are .str2
    • dlcp01_humans.vpp_pc - contains textures and meshes for characters in singleplayer DLC
    • dlcp01_interface.vpp_pc - contains textures for loading screens & thumbnails in singleplayer DLC
    • dlcp01_items.vpp_pc - contains textures and meshes for weapons, character props and misc objects in singleplayer DLC
    • dlc01_misc.vpp_pc - contains .rig_pc files, the .fsmib file and two .xtbl files for singleplayer DLC
    • dlc01_missions.vpp_pc - contains textures related to singleplayer DLC missions
    • dlcp01_personas_en_us.vpp_pc -
    • dlcp01_vehicles.vpp_pc - contains textures and meshes for singleplayer DLC vehicles
    • dlcp01_voices_en_us.vpp_pc -
    • dlcp02_interface.vpp_pc - contains textures for loading screens & thumbnails for multiplayer DLC
    • dlcp02_misc.vpp_pc -
    • dlcp03_interface.vpp_pc - contains textures for loading screens & thumbnails for wrecking crew DLC
    • dlcp03_misc.vpp_pc -
    • effects.vpp_pc - contains visual effect files, some are .str2
    • effects_mp.vpp_pc - contains multiplayer only visual effect files, some are .str2
    • humans.vpp_pc - contains textures and meshes for characters in both singleplayer and multiplayer
    • interface.vpp_pc - contains textures for loading screens & thumbnails in both SP and MP and character portraits in multiplayer
    • items.vpp_pc - contains textures and meshes for weapons, character props and misc objects in both singleplayer & multiplayer
    • items_mp.vpp_pc - contains multiplayer only textures and meshes
    • misc.vpp_pc contains .xtbl files and most other file types
    • missions.vpp_pc - contains textures for singleplayer missions
    • mp_common.vpp_pc - contains textures shared between multiplayer maps
    • mp_xxx.vpp_pc - multiplayer maps, excluding mp_common.vpp_pc
    • mpdlc_xxx.vpp_pc - DLC multiplayer maps
    • personas_de_de.vpp_pc -
    • personas_en_us.vpp_pc -
    • personas_es_es.vpp_pc -
    • personas_fr_fr.vpp_pc -
    • personas_it_it.vpp_pc -
    • personas_ru_ru.vpp_pc -
    • rfg_cine_00a.bik_xbox2 -
    • rfg_cine_01a.bik_xbox2 -
    • rfg_cine_02a.bik_xbox2 -
    • rfg_cine_03a.bik_xbox2 -
    • rfg_cine_03b.bik_xbox2 -
    • rfg_cine_04a.bik_xbox2 -
    • rfg_cine_05a.bik_xbox2 -
    • rfg_cine_06a.bik_xbox2 -
    • skybox.vpp_pc - contains textures for the skybox like the clouds
    • sounds_r.vpp_pc - contains .xmb_pc sound files
    • steam.vpp_pc -
    • table.vpp_pc - contains only .xtbl files and will overwrite .xtbl files in misc.vpp_pc
    • terr01_l0.vpp_pc - singleplayer map
    • terr01_l1.vpp_pc - singleplayer map
    • terr01_precache.vpp_pc - similar to mp_common.vpp_pc but for the singleplayer map
    • vehicles_r.vpp_pc - contains textures and meshes for singleplayer vehicles
    • voices_de_de.vpp_pc -
    • voices_en_us.vpp_pc -
    • voices_es_es.vpp_pc -
    • voices_fr_fr.vpp_pc -
    • voices_it_it.vpp_pc -
    • voices_ru_ru.vpp_pc -
    • wcxxx.vpp_c - wrecking crew maps
    • zonescript_dlc01.vpp_pc - contains .scriptx and .rfgzone_pc files for singleplayer DLC map
    • zonescript_terr01.vpp_pc - contains .scriptx and .rfgzone_pc files for singleplayer map
    • xxx.bik - pre-rendered custscenes

    Scriptx Functions

    Primitive data types & limits

    • Floats (floating decimal points): Max value 3.4028237 and move the decimal place right 38 times. Examples: 1.0, 0.0
    • Integer (whole number that could hold a zero, positive or negative value): Max value 2147483647
    • Boolean (truth value with two constants objects True and False , basically a toggle to enable or disable something using "true" or "false"): Examples: <Unlocks_Cheat>True</Unlocks_Cheat>, <Unlocks_Cheat>False</Unlocks_Cheat>
    • String (represents a sequence or characters/text): Example: <string>OldCoot</string>

    sounds_r.vpp_pc Info

    • S16 = Signed 16 bit
    • LE = Little endian
    • 2CH = 2 channels (stereo)
       * destruction.xwb_pc - unknown
       * dlc01_voc_d01offcam.xwb_pc.en_us.xwb_pc - unknown               
       * dlc01_voc_spe_d01dan.xwb_pc.en_us.xwb_pc - unknown              
       * dlc01_voc_spe_d01msm01.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01msm02.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01msm03.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01msm04.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01msm05.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01msm06.xwb_pc.en_us.xwb_pc - unknown            
       * dlc01_voc_spe_d01rfc.xwb_pc.en_us.xwb_pc - unknown              
       * dlc01_voc_spe_d01sam_pcm01.xwb_pc.en_us.xwb_pc - unknown        
       * dlc01_voc_spe_d01vasha_safe.xwb_pc.en_us.xwb_pc - unknown       
       * mov_foley.xwb_pc - unknown                                       
       * mov_jet_pack.xwb_pc - unknown                                    
       * mov_male.xwb_pc - unknown                                        
       * mov_npc_male.xwb_pc - unknown                                    
       * mp_backpacks.xwb_pc - S16, LE, 2CH. Intermittent static starting ~28sec                  
       * mp_wep.xwb_pc - S16, LE, 2CH. Static at start and end                                           
       * mus_briefings.xwb_pc - S16, LE, 2CH.      
       * mus_demomaster.xwb_pc - S16, LE, 2CH.      
       * mus_frontend.xwb_pc - S16, LE, 2CH.        
       * mus_multiplayer.xwb_pc - S16, LE, 2CH.     
       * mus_progression_01.xwb_pc - S16, LE, 2CH. Static at start, may be header 
       * mus_progression_02.xwb_pc - S16, LE, 2CH.  
       * mus_progression_03.xwb_pc - S16, LE, 2CH.  
       * mus_sting.xwb_pc - S16, LE, 2CH. 
       * obj_shared_ambient.xwb_pc - unknown
       * obj_shared_dth.xwb_pc - unknown     
       * obj_shared_exp.xwb_pc - unknown
       * obj_shared_impact.xwb_pc - unknown 
       * scripted_raids.xwb_pc - unknown    
       * system.xwb_pc - S16, LE, 2CH. Mostly static, valid sound in middle            
       * system_mp.xwb_pc - unknown         
       * veh_civ_bus.xwb_pc - S16, LE, 2CH. Some static, some valid sound.       
       * veh_civ_car1.xwb_pc - S16, LE, 2CH. Some static, some valid sound.          
       * veh_civ_car2.xwb_pc - S16, LE, 2CH. Some static, some valid sound.          
       * veh_civ_car3.xwb_pc - S16, LE, 2CH. Some static, some valid sound.        
       * veh_civ_flat.xwb_pc - unknown    
       * veh_civ_flat2.xwb_pc - unknown
       * veh_civ_fuel.xwb_pc - S16, LE, 2CH. Some static, some valid sound.        
       * veh_civ_hauler.xwb_pc - S16, LE, 2CH. Some static, some valid sound.      
       * veh_civ_taxi.xwb_pc - S16, LE, 2CH. Some static, some valid sound.        
       * veh_civ_trash.xwb_pc - S16, LE, 2CH. Some static, some valid sound.       
       * veh_civ_walker.xwb_pc - S16, LE, 2CH. Some static, some valid sound.      
       * veh_edf_aax.xwb_pc - S16, LE, 2CH. Mostly static, some valid sound at end.        
       * veh_edf_abx.xwb_pc - S16, LE, 2CH. Mostly static, some valid sound at end.                 
       * veh_edf_apc.xwb_pc - S16, LE, 2CH. Some static, some valid sound.       
       * veh_edf_atank.xwb_pc - S16, LE, 2CH. Some static, some valid sound.     
       * veh_edf_htank.xwb_pc - S16, LE, 2CH. Some static, some valid sound.     
       * veh_edf_mtank.xwb_pc - S16, LE, 2CH. Some static, some valid sound.     
       * veh_edf_scout.xwb_pc - S16, LE, 2CH. Some static, some valid sound.     
       * veh_edf_staff.xwb_pc - S16, LE, 2CH. Some static, some valid sound.     
       * veh_edf_staffh2h.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_edf_supply.xwb_pc - S16, LE, 2CH. Some static, some valid sound.    
       * veh_mar_jetter.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_mar_raider.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_atv.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_bull.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_dtruck.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_etruck.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_jetter.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_pickup.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_rover.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_roverwk.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_supply.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_supplyrt.xwb_pc - unknown
       * veh_min_wlklg.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_min_wlkmd.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * veh_shared.xwb_pc - S16, LE, 2CH. Some static, some valid sound.  
       * walla.xwb_pc - unknown
       * weather.xwb_pc - S16, LE, 2CH.
       * wep_rfg.xwb_pc -  S16, LE, 2CH. Mostly valid, some static
    

    RfgUtil Guide

    • Unpacking [Placeholder]
    • Repacking [Placeholder]
    • Command arguments [Placeholder]
    • Scripts [Placeholder]
    • Updating .asm_pc files [Placeholder]

    Misc Notes

    • When repacking .vpp_pc files don't compress and/or condense them if they weren't like that in the vanilla game, it will cause the game to crash. Eg: items.vpp_pc, interface.vpp_pc, map files etc. See the table below.
    • When repacking .str2_pc files ensure they are compressed and condensed.
    • table.vpp_pc overwrites changes to .xtbl files in misc.vpp_pc. The work around for this with the legacy mod manager is to rename the file however this breaks multiplayer and reduces the stability of the game. You should edit the same .xtbl files in both misc.vpp_pc & table.vpp_pc.
    Filename Alignment Compressed Condensed
    ALL .str2 0 Yes Yes
    MOST .vpp_pc 2048 No No
    dlc01_precache.vpp_pc 2048 Yes No
    dlcp01_misc.vpp_pc 2048 Yes No
    misc.vpp_pc 2048 Yes No
    mp_common.vpp_pc 2048 Yes No
    steam.vpp_pc 2048 Yes No
    terr01_precache.vpp_pc 2048 Yes No
    zonescript_dlc01.vpp_pc 2048 Yes No
    zonescript_terr01.vpp_pc 2048 Yes No
    dlc01_l1.vpp_pc 0 No No
    dlcp01_voices_en_us.vpp_pc 0 No No
    dlcp02_misc.vpp_pc 0 Yes No
    dlcp03_misc.vpp_pc 0? Yes No
    dlcp01_anims.vpp_pc 16? Yes Yes
    anims.vpp_pc 16 Yes Yes
    table.vpp_pc 64 Yes Yes
    skybox.vpp_pc 4096 No No
    dlcp01_personas_en_us.vpp_pc 4096 No No

    Red Faction: Guerrilla Tools

    • RfgUtil - Used for unpacking most file formats and updating .asm_pc files
    • Nanoforge - Map editor, texture editor, .xtbl editor and more
    • mTools - Drag and drop tool to convert .asm_pc files to XML and vice versa
    • RSL - Script Loader
    • AsmTool- WIP Tool for modifying .asm_pc files used by Red Faction Guerrilla. This is meant to replace hand editing them, which is very error prone and tedious
    • SyncFaction - Tool for automatically installing the Terraform Patch replaces the legacy mod manager with bug fixes and new features
    • xdelta UI - GUI for generating .xdelta (binary) patches
    • XiMpLe XML Editor - Lightweight GUI XML Editor that displays XML type files in a table grid views and shows what other .xtbls it is referencing. Very useful for understanding and editing .xtbl files.
    • Volition Table File Editor - GUI for editing .xtbl files
    • XML Formatter - Use this to format .xtbl files so they are easier to read
    • XML Validator - Use this to validate .xtbl edits, any mistakes you make will crash the game
    • LUA Validator - Useful for validating RSL scripts for errors, note it's safe to ignore attempt to index a nil value (global 'rfg')
    • Building extractor - Experimental building extractor (.cchk_pc & .gchk_pc files). It isn't able to extract all buildings and it doesn't extract the textures.
    • Misc mesh extractor - Extractor miscellaneous mesh formats. For .cfmesh_pc, .cstch_pc, .cefct_pc, and .ccar_pc files. Requires the .NET 7 runtime to run. It doesn't extract the textures.

    Useful Software

    • Voidtools Everything - Locate files and folders by name instantly
    • Agent Ransack - Bulk search for keywords within unpacked files
    • Notepad++ - Good text editor for manually editing .xtbl files, set language as XML

    Tutorials