RF:G Editing Main Page: Difference between revisions
(Link Nanoforge basics page) |
(Added recently released tools and fixed some tool descriptions) |
||
| (90 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
This will serve as a landing page for all resources related to [[Red Faction: Guerrilla]] editing. | {{BubbleNav|RFG|no|no}}This will serve as a landing page for all resources related to [[Red Faction: Guerrilla]] editing for the '''Re-Mars-tered Edition'''. | ||
==External Links== | ==External Links== | ||
===Community=== | ===Community=== | ||
*[https://discord.gg/ | *[https://discord.gg/factionfiles Faction Files Community Discord] - Active Red Faction series community Discord with #map-mod-development channel for community development discussion | ||
*[https:// | *[https://rfg-modding.github.io/SyncFaction/#/modding/intro SyncFaction Modding Intro] - Extensive writeup of all available mod formats and distribution methods. Includes mod examples! | ||
===Downloads=== | ===Downloads=== | ||
*[https://www.factionfiles.com/ff.php?action=files FactionFiles.com] - Custom mods, tools, patches, and reference material | *[https://www.factionfiles.com/ff.php?action=files FactionFiles.com] - Custom mods, tools, patches, and reference material | ||
*[https://www.nexusmods.com/redfactionguerilla/mods/ Nexus Mods] - Custom mods | *[https://www.nexusmods.com/redfactionguerilla/mods/ Nexus Mods] - Custom mods | ||
*[https://www.nexusmods.com/redfactionguerrillaremarstered/mods/ Nexus Mods Re-Mars-tered] - Custom mods | |||
==Documentation== | ==Documentation== | ||
*[[RF:G Map organization]] | |||
*[[Nanoforge basics]] | |||
*[https://github.com/Moneyl/RfgTools/blob/main/Documentation/RfgZonexFormat.md Zone file format docs] - Describes the zone format used by RFG in more detail | |||
===Core Concepts=== | ===Core Concepts=== | ||
*[[Red Faction: Guerrilla]]'s level editor is [[CLOE]], which is not publicly available. | *[[Red Faction: Guerrilla]]'s level editor is [[CLOE]], which is not publicly available. | ||
===Red Faction: Guerrilla File Formats=== | ===Red Faction: Guerrilla File Formats=== | ||
* | * <code>.xtbl</code> - XML table files are used to store properties or attributes in Red Faction: Guerrilla. Overall, their function is similar to the <code>.tbl</code> files of Red Faction and Red Faction II. | ||
* | * <code>.scriptx</code> - Internal XML scripting language file, commonly used for missions and activities | ||
* | * <code>.dtodx</code> - Weather/lighting file for maps that controls things like fog, tint, ambient colour, eye adaption, bloom, cloud color and speed | ||
* | * <code>.gtodx</code> - Skybox file for maps that controls things like the sun texture, moon positions and if the horizon mountain texture is enabled | ||
*[ | * <code>.vpp_pc</code> - Packfile | ||
* <code>.rigx</code> - Rig | |||
* <code>.str2_pc</code> - Texture Packfile | |||
* <code>.rfgzone_pc</code> - Map zone | |||
* <code>.layer_pc</code> - Map zone | |||
* <code>.cpeg_pc, cvbm_pc</code> - Texture cpu file | |||
* <code>.gpeg_pc, gvbm_pc</code> - Texture gpu file | |||
* <code>.asm_pc</code> - Asset assembler file | |||
* <code>.csmesh_pc</code> - Static mesh cpu file | |||
* <code>.gsmesh_pc</code> - Static mesh gpu file | |||
* <code>.ccmesh_pc</code> - Character mesh cpu file | |||
* <code>.gcmesh_pc</code> - Character mesh gpu file | |||
* <code>.ccar_pc</code> - Vehicle mesh cpu file | |||
* <code>.gcar_pc</code> - Vehicle mesh gpu file | |||
* <code>.anim_pc</code> - Animation | |||
* <code>.cchk_pc</code> - Destructible object cpu file | |||
* <code>.gchk_pc</code> - Destructible object gpu file | |||
* <code>.cefct_pc</code> - Visual effect cpu file | |||
* <code>.gefct_pc</code> - Visual effect gpu file | |||
* <code>.cfmesh_pc</code> - Foliage mesh | |||
* <code>.cstch</code> - Terrain clutter mesh cpu file | |||
* <code>.gstch</code> - Terrain clutter mesh gpu file | |||
* <code>.cterrain_pc</code> - Terrain zone cpu file | |||
* <code>.gterrain_pc</code> - Terrain zone gpu file | |||
* <code>.ctmesh_pc</code> - Terrain subzone cpu file | |||
* <code>.gtmesh_pc</code> - Terrain subzone gpu file | |||
* <code>.fsmib</code> - Fullscreen map data | |||
* <code>.fxo_kg</code> - Shader | |||
* <code>.le_strings</code> - Steam localization strings | |||
* <code>.rfglocatext</code> - Localization strings | |||
* <code>.mat_pc</code> - Render material | |||
* <code>.morph_pc</code> - Animation Morph | |||
* <code>.vint_doc</code> - UI | |||
* <code>.sim_pc</code> - Cloth sim | |||
* <code>.xgs_pc</code> - Sound config | |||
* <code>.xsb_pc</code> - Soundbank | |||
* <code>.xwb_pc</code> - Wavebank | |||
* <code>.aud_pc</code> - Audio categories | |||
* <code>.vf3_pc</code> - Font | |||
* <code>.vfdvp_pc</code> - ? | |||
* <code>.rfgvp_pc</code> - ? | |||
===Red Faction: Guerrilla File Structure=== | |||
\Red Faction Guerrilla Re-MARS-tered\data\ | |||
The two most important files for modding most of RF:G are <code>misc.vpp_pc</code> & <code>table.vpp_pc</code> | |||
* <code>activities.vpp_pc</code> - contains textures for singleplayer activities | |||
* <code>anims.vpp_pc</code> - contains animation files | |||
* <code>chunks.vpp_pc</code> - contains <code>.rfgchunkx</code> files and seems to be related to the <code>preload_chunks.xtbl</code> file, it's possible to add them to a map using the correct <code>dest_checksum</code> & <code>uid</code> numbers. Game might also spawn <code>missing_chunk</code> or <code>missing_destroyable</code> if a mesh fails to load. | |||
* <code>cloth_sim.vpp_pc</code> - contains cloth simulation files | |||
* <code>decals.vpp_pc</code> - contains decal textures | |||
* <code>dlc01_l0.vpp_pc</code> - singleplayer DLC map | |||
* <code>dlc01_l1.vpp_pc</code> - only contains a blank <code>asm_pc</code> file | |||
* <code>dlc01_precache.vpp_pc</code> - similar to <code>mp_common.vpp_pc</code> but for the singleplayer DLC map | |||
* <code>dlcp01_activities.vpp_pc</code> - contains textures for singleplayer DLC activities | |||
* <code>dlcp01_anims.vpp_pc</code> - contains animation files for singleplayer DLC | |||
* <code>dlcp01_cloth_sim.vpp_pc</code> - contains cloth simulation files for singleplayer DLC | |||
* <code>dlcp01_effects.vpp_pc</code> - contains visual effect files for singleplayer DLC, some are <code>.str2</code> | |||
* <code>dlcp01_humans.vpp_pc</code> - contains textures and meshes for characters in singleplayer DLC | |||
* <code>dlcp01_interface.vpp_pc</code> - contains textures for loading screens & thumbnails in singleplayer DLC | |||
* <code>dlcp01_items.vpp_pc</code> - contains textures and meshes for weapons, character props and misc objects in singleplayer DLC | |||
* <code>dlc01_misc.vpp_pc</code> - contains <code>.rig_pc</code> files, the <code>.fsmib</code> file and two <code>.xtbl</code> files for singleplayer DLC | |||
* <code>dlc01_missions.vpp_pc</code> - contains textures related to singleplayer DLC missions | |||
* <code>dlcp01_personas_en_us.vpp_pc</code> - | |||
* <code>dlcp01_vehicles.vpp_pc</code> - contains textures and meshes for singleplayer DLC vehicles | |||
* <code>dlcp01_voices_en_us.vpp_pc</code> - | |||
* <code>dlcp02_interface.vpp_pc</code> - contains textures for loading screens & thumbnails for multiplayer DLC | |||
* <code>dlcp02_misc.vpp_pc</code> - | |||
* <code>dlcp03_interface.vpp_pc</code> - contains textures for loading screens & thumbnails for wrecking crew DLC | |||
* <code>dlcp03_misc.vpp_pc</code> - | |||
* <code>effects.vpp_pc</code> - contains visual effect files, some are <code>.str2</code> | |||
* <code>effects_mp.vpp_pc</code> - contains multiplayer only visual effect files, some are <code>.str2</code> | |||
* <code>humans.vpp_pc</code> - contains textures and meshes for characters in both singleplayer and multiplayer | |||
* <code>interface.vpp_pc</code> - contains textures for loading screens & thumbnails in both SP and MP and character portraits in multiplayer | |||
* <code>items.vpp_pc</code> - contains textures and meshes for weapons, character props and misc objects in both singleplayer & multiplayer | |||
* <code>items_mp.vpp_pc</code> - contains multiplayer only textures and meshes | |||
* <code>misc.vpp_pc</code> contains <code>.xtbl</code> files and most other file types | |||
* <code>missions.vpp_pc</code> - contains textures for singleplayer missions | |||
* <code>mp_common.vpp_pc</code> - contains textures shared between multiplayer maps | |||
* <code>mp_xxx.vpp_pc</code> - multiplayer maps, excluding <code>mp_common.vpp_pc</code> | |||
* <code>mpdlc_xxx.vpp_pc</code> - DLC multiplayer maps | |||
* <code>personas_de_de.vpp_pc</code> - | |||
* <code>personas_en_us.vpp_pc</code> - | |||
* <code>personas_es_es.vpp_pc</code> - | |||
* <code>personas_fr_fr.vpp_pc</code> - | |||
* <code>personas_it_it.vpp_pc</code> - | |||
* <code>personas_ru_ru.vpp_pc</code> - | |||
* <code>rfg_cine_00a.bik_xbox2</code> - | |||
* <code>rfg_cine_01a.bik_xbox2</code> - | |||
* <code>rfg_cine_02a.bik_xbox2</code> - | |||
* <code>rfg_cine_03a.bik_xbox2</code> - | |||
* <code>rfg_cine_03b.bik_xbox2</code> - | |||
* <code>rfg_cine_04a.bik_xbox2</code> - | |||
* <code>rfg_cine_05a.bik_xbox2</code> - | |||
* <code>rfg_cine_06a.bik_xbox2</code> - | |||
* <code>skybox.vpp_pc</code> - contains textures for the skybox like the clouds | |||
* <code>sounds_r.vpp_pc</code> - contains <code>.xmb_pc</code> sound files | |||
* <code>steam.vpp_pc</code> - | |||
* <code>table.vpp_pc</code> - contains only <code>.xtbl</code> files and will overwrite <code>.xtbl</code> files in <code>misc.vpp_pc</code> | |||
* <code>terr01_l0.vpp_pc</code> - singleplayer map | |||
* <code>terr01_l1.vpp_pc</code> - singleplayer map | |||
* <code>terr01_precache.vpp_pc</code> - similar to <code>mp_common.vpp_pc</code> but for the singleplayer map | |||
* <code>vehicles_r.vpp_pc</code> - contains textures and meshes for singleplayer vehicles | |||
* <code>voices_de_de.vpp_pc</code> - | |||
* <code>voices_en_us.vpp_pc</code> - | |||
* <code>voices_es_es.vpp_pc</code> - | |||
* <code>voices_fr_fr.vpp_pc</code> - | |||
* <code>voices_it_it.vpp_pc</code> - | |||
* <code>voices_ru_ru.vpp_pc</code> - | |||
* <code>wcxxx.vpp_c</code> - wrecking crew maps | |||
* <code>zonescript_dlc01.vpp_pc</code> - contains <code>.scriptx</code> and <code>.rfgzone_pc</code> files for singleplayer DLC map | |||
* <code>zonescript_terr01.vpp_pc</code> - contains <code>.scriptx</code> and <code>.rfgzone_pc</code> files for singleplayer map | |||
* <code>xxx.bik</code> - pre-rendered custscenes | |||
===Scriptx Functions=== | |||
* [https://www.factionfiles.com/ff.php?action=scriptxfuncs .scriptx functions] | |||
===Primitive data types & limits=== | |||
* Floats (floating decimal points): Max value <code>3.4028237</code> and move the decimal place right 38 times. Examples: <code>1.0, 0.0</code> | |||
* Integer (whole number that could hold a zero, positive or negative value): Max value <code>2147483647</code> | |||
* Boolean (truth value with two constants objects True and False , basically a toggle to enable or disable something using "true" or "false"): Examples: <code><Unlocks_Cheat>True</Unlocks_Cheat>, <Unlocks_Cheat>False</Unlocks_Cheat></code> | |||
* String (represents a sequence or characters/text): Example: <code><string>OldCoot</string></code> | |||
===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 | |||
===Misc Notes=== | |||
* When repacking <code>.vpp_pc</code> 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: <code>items.vpp_pc</code>, <code>interface.vpp_pc</code>, map files etc. See the table below. | |||
* When repacking <code>.str2_pc</code> files ensure they are compressed and condensed. | |||
* <code>table.vpp_pc</code> overwrites changes to <code>.xtbl</code> files in <code>misc.vpp_pc</code>. 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 <code>.xtbl</code> files in both <code>misc.vpp_pc</code> & <code>table.vpp_pc</code>. | |||
{| class="wikitable" | |||
|+ | |||
|- | |||
! 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=== | ===Red Faction: Guerrilla Tools=== | ||
*[[ | |||
*[[ | * [https://github.com/Moneyl/RfgUtil/releases RfgUtil] - Used for unpacking most file formats and updating <code>.asm_pc</code> files. | ||
*[[ | * [https://github.com/rfg-modding/Nanoforge/releases Nanoforge Beef] - Multiplayer & wrecking crew map editor, highly recommended to use this version for map editing instead of the C++ versions map editor, however you cannot import & view the singleplayer maps or edit them yet. | ||
*[[ | * [https://github.com/rfg-modding/Nanoforge/releases/download/v0.21.1/Nanoforge_v0_21_1.zip Nanoforge C++] - Map editor, Mesh viewer, Texture editor, <code>.xtbl</code> editor and much more. | ||
*[[ | * [https://github.com/CamoRF/Red-Faction-Guerrilla-Terraform-Patch/raw/main/z_tools/mTools.zip mTools] - Drag and drop tool to convert <code>.asm_pc</code> files to XML and vice versa. | ||
* [https://github.com/rsl-dev/RSL/releases RSL] - Script Loader. | |||
* [https://github.com/Moneyl/AsmTool/releases AsmTool]- WIP Tool for modifying <code>.asm_pc</code> files used by Red Faction Guerrilla. This is meant to replace hand editing them, which is very error prone and tedious. | |||
* [https://github.com/rfg-modding/SyncFaction/releases SyncFaction] - Tool for automatically installing the Terraform Patch replaces the legacy mod manager with bug fixes and new features. | |||
* [https://www.factionfiles.com/ff.php?action=file&id=5686 xdelta UI] - GUI for generating <code>.xdelta</code> (binary) patches | |||
* [http://www.ximple.cz/download.php XiMpLe XML Editor] - Lightweight GUI XML Editor that displays XML type files in table grid views. | |||
* [https://github.com/CamoRF/Red-Faction-Guerrilla-Terraform-Patch/raw/main/z_tools/Volition_Table_File_Editor.zip Volition Table File Editor] - GUI for editing <code>.xtbl</code> files. | |||
* [https://jsonformatter.org/xml-formatter XML Formatter] - Use this to format <code>.xtbl</code> files so they are easier to read. | |||
* [https://www.w3schools.com/xml/xml_validator.asp XML Validator] - Use this to validate <code>.xtbl</code> edits, any mistakes you make will crash the game. | |||
* [https://onecompiler.com/lua/3ykpyrhhb LUA Validator] - Useful for validating RSL scripts for errors, note it's safe to ignore <code>attempt to index a nil value (global 'rfg')</code>. | |||
* [https://github.com/rfg-modding/RfgToolsPlusPlus/releases/tag/ExperimentalChunkExtractor_v0.2.0 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. | |||
* [https://github.com/rfg-modding/RfgToolsPlusPlus/releases/tag/MiscMeshExtractor_V1.1.0 Misc mesh extractor] - Extract 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. | |||
* [https://www.factionfiles.com/ff.php?action=file&id=8144 RFGR.SaveEditor] - A save editor for Red Faction: Guerrilla Re-Mars-tered. Compatible with GOG and Steam. | |||
* [https://www.factionfiles.com/ff.php?action=file&id=8095 RFGM.Archiver] - Archiver tool for RFG Re-MARS-tered that supports the following formats: VPP, PEG, STR2 & rfglocatext. | |||
* [https://www.factionfiles.com/ff.php?action=file&id=8043 Localization Tool] - A tool made to decode, edit, and encode localization string files (.rfglocatext) for Red Faction: Guerrilla Re-Mars-tered. | |||
===Useful Software=== | |||
* [https://www.voidtools.com/ Voidtools Everything] - Locate files and folders by name instantly | |||
* [https://www.mythicsoft.com/agentransack/ Agent Ransack] - Bulk search for keywords within unpacked files | |||
* [https://notepad-plus-plus.org/downloads/ Notepad++] - Good text editor for manually editing <code>.xtbl</code> files, set language as XML | |||
==Tutorials== | ==Tutorials== | ||
*[[Nanoforge | *[[Nanoforge xtbl editing]] - How to edit [[.xtbl]] files in Nanoforge. | ||
*[[Nanoforge Texture Editing]] - How to edit textures using Nanoforge. | |||
* XTBL Editing Guide [Placeholder] | |||
* RFGM.Archiver Texture Editing Guide [Placeholder] [Include updating .asm_pc and adding new textures] | |||
[[Category: Red Faction: Guerrilla]] | [[Category: Red Faction: Guerrilla]] | ||
[[Category: RF:G Editing]] | [[Category: RF:G Editing]] | ||
Latest revision as of 22:06, 3 July 2025
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
- Faction Files Community Discord - Active Red Faction series community Discord with #map-mod-development channel for community development discussion
- SyncFaction Modding Intro - Extensive writeup of all available mod formats and distribution methods. Includes mod examples!
Downloads
- FactionFiles.com - Custom mods, tools, patches, and reference material
- Nexus Mods - Custom mods
- Nexus Mods Re-Mars-tered - Custom mods
Documentation
- RF:G Map organization
- Nanoforge basics
- Zone file format docs - Describes the zone format used by RFG in more detail
Core Concepts
- Red Faction: Guerrilla's level editor is CLOE, which is not publicly available.
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.tblfiles 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 activitiesanims.vpp_pc- contains animation fileschunks.vpp_pc- contains.rfgchunkxfiles and seems to be related to thepreload_chunks.xtblfile, it's possible to add them to a map using the correctdest_checksum&uidnumbers. Game might also spawnmissing_chunkormissing_destroyableif a mesh fails to load.cloth_sim.vpp_pc- contains cloth simulation filesdecals.vpp_pc- contains decal texturesdlc01_l0.vpp_pc- singleplayer DLC mapdlc01_l1.vpp_pc- only contains a blankasm_pcfiledlc01_precache.vpp_pc- similar tomp_common.vpp_pcbut for the singleplayer DLC mapdlcp01_activities.vpp_pc- contains textures for singleplayer DLC activitiesdlcp01_anims.vpp_pc- contains animation files for singleplayer DLCdlcp01_cloth_sim.vpp_pc- contains cloth simulation files for singleplayer DLCdlcp01_effects.vpp_pc- contains visual effect files for singleplayer DLC, some are.str2dlcp01_humans.vpp_pc- contains textures and meshes for characters in singleplayer DLCdlcp01_interface.vpp_pc- contains textures for loading screens & thumbnails in singleplayer DLCdlcp01_items.vpp_pc- contains textures and meshes for weapons, character props and misc objects in singleplayer DLCdlc01_misc.vpp_pc- contains.rig_pcfiles, the.fsmibfile and two.xtblfiles for singleplayer DLCdlc01_missions.vpp_pc- contains textures related to singleplayer DLC missionsdlcp01_personas_en_us.vpp_pc-dlcp01_vehicles.vpp_pc- contains textures and meshes for singleplayer DLC vehiclesdlcp01_voices_en_us.vpp_pc-dlcp02_interface.vpp_pc- contains textures for loading screens & thumbnails for multiplayer DLCdlcp02_misc.vpp_pc-dlcp03_interface.vpp_pc- contains textures for loading screens & thumbnails for wrecking crew DLCdlcp03_misc.vpp_pc-effects.vpp_pc- contains visual effect files, some are.str2effects_mp.vpp_pc- contains multiplayer only visual effect files, some are.str2humans.vpp_pc- contains textures and meshes for characters in both singleplayer and multiplayerinterface.vpp_pc- contains textures for loading screens & thumbnails in both SP and MP and character portraits in multiplayeritems.vpp_pc- contains textures and meshes for weapons, character props and misc objects in both singleplayer & multiplayeritems_mp.vpp_pc- contains multiplayer only textures and meshesmisc.vpp_pccontains.xtblfiles and most other file typesmissions.vpp_pc- contains textures for singleplayer missionsmp_common.vpp_pc- contains textures shared between multiplayer mapsmp_xxx.vpp_pc- multiplayer maps, excludingmp_common.vpp_pcmpdlc_xxx.vpp_pc- DLC multiplayer mapspersonas_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 cloudssounds_r.vpp_pc- contains.xmb_pcsound filessteam.vpp_pc-table.vpp_pc- contains only.xtblfiles and will overwrite.xtblfiles inmisc.vpp_pcterr01_l0.vpp_pc- singleplayer mapterr01_l1.vpp_pc- singleplayer mapterr01_precache.vpp_pc- similar tomp_common.vpp_pcbut for the singleplayer mapvehicles_r.vpp_pc- contains textures and meshes for singleplayer vehiclesvoices_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 mapszonescript_dlc01.vpp_pc- contains.scriptxand.rfgzone_pcfiles for singleplayer DLC mapzonescript_terr01.vpp_pc- contains.scriptxand.rfgzone_pcfiles for singleplayer mapxxx.bik- pre-rendered custscenes
Scriptx Functions
Primitive data types & limits
- Floats (floating decimal points): Max value
3.4028237and 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
Misc Notes
- When repacking
.vpp_pcfiles 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_pcfiles ensure they are compressed and condensed. table.vpp_pcoverwrites changes to.xtblfiles inmisc.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.xtblfiles in bothmisc.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_pcfiles. - Nanoforge Beef - Multiplayer & wrecking crew map editor, highly recommended to use this version for map editing instead of the C++ versions map editor, however you cannot import & view the singleplayer maps or edit them yet.
- Nanoforge C++ - Map editor, Mesh viewer, Texture editor,
.xtbleditor and much more. - mTools - Drag and drop tool to convert
.asm_pcfiles to XML and vice versa. - RSL - Script Loader.
- AsmTool- WIP Tool for modifying
.asm_pcfiles 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 table grid views.
- Volition Table File Editor - GUI for editing
.xtblfiles. - XML Formatter - Use this to format
.xtblfiles so they are easier to read. - XML Validator - Use this to validate
.xtbledits, 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 - Extract 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.
- RFGR.SaveEditor - A save editor for Red Faction: Guerrilla Re-Mars-tered. Compatible with GOG and Steam.
- RFGM.Archiver - Archiver tool for RFG Re-MARS-tered that supports the following formats: VPP, PEG, STR2 & rfglocatext.
- Localization Tool - A tool made to decode, edit, and encode localization string files (.rfglocatext) for Red Faction: Guerrilla Re-Mars-tered.
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
.xtblfiles, set language as XML
Tutorials
- Nanoforge xtbl editing - How to edit .xtbl files in Nanoforge.
- Nanoforge Texture Editing - How to edit textures using Nanoforge.
- XTBL Editing Guide [Placeholder]
- RFGM.Archiver Texture Editing Guide [Placeholder] [Include updating .asm_pc and adding new textures]