| title | FAF version - Mapping Guidelines |
|---|---|
| description | GPG, unknown & inactive author map rework |
| published | false |
| date | 2023-07-13 18:24:01 UTC |
| tags | mapping, guidelines, advanced, faf_version |
| editor | markdown |
| dateCreated | 2023-06-19 22:22:31 UTC |
The goals of the FAF version maps are fair / balanced gaming conditions and an improved / up-to-date gaming experience. To ensure the goals are met for every FAF version map, these Mapping Guidelines were created to empower authorized FAF version map maker. These guidelines are based on the FAF version maps created by svenni_badbwoi.
IMPORTANT NOTES:
- Map upload of approved content stays in the hands of authorized
FAF versionmap maker! Don't upload anyFAF versionmap without authorization!- If you can’t meet the requirements mentioned in this document, regardless of your authorization status, you are not qualified / allowed to create and upload a
FAF versionmap!- Adaptive maps and maps with individual assets are even harder to rework and require a total understanding of all dependencies.
FAF version maps that have been released already can be found in the FAF vault if you search for the suffix - FAF version. Please download the latest map version .v000X for the best in game experience.
The documentation of the map-related changes can be found here:
Note: The Indivudual Map Issue Documentation provides an overview of all reported isses and deails on how these issues have been resolved in specific map versions. This documentation is intended for authorized
FAF versionmap makers to track and resolve open reported map-related issues as well as individual issues that arise during the map creation process. (This documentation should be replaced and merged into the future ticket system data base enties, with similar requirements / columns)
Have you ever found yourself frustrated by unbalanced heightmaps or unevenly distributed marker, props and units in the following maps:
- Gas Powered Games (GPG) maps Add Link to GPG Editor "Original Maps" table - need a cross- reference at "Original Maps" section - or copy table to this article? https://wiki.faforever.com/en/Development/Mapping/GPG-Map-Editor
- Supreme Commander and Forged Alliance stock maps included in the original game
- Unknown author maps
- Inactive author maps
If the issue has not already been resolved (see 1.1), please feel free to inform us about any map-related issues here:
- Ticket System Add Link
Get Visual Studio Code, the recommended text editor of the FAF development guide, which can format and highlight the LUA file structure.
The GPG-Editor can only read and save Supreme Commander v56 map versions.
Notes:
- If the GPG-Editor is unable to load the map, place the map folder in the default Supreme Commander maps path (see 3.1.1).
- If the GPG-Editor crashes while loading, try re-saving the map in
v56format via FAF-Editor and try again.- The GPG-Editor needs a no-rush radius value (see 2.2.2), otherwise it will crash during loading.
FAF content The GPG-Editor does not include the latest FAF changes.
Map preview
The GPG-Editor can create a 100% realistic Supreme Commander and Forged Alliance map preview. Meaning the map preview gets rendered like in game, except for the recent FAF water shader changes.
Note: One could copy over the shader files into the vanilla
gamedatafolder to achieve a 100% realistic map preview, but there's no written guide on that yet.
Minimap
The GPG-Editor DOES NOT color the land and water areas in the minimap differently.
Skybox
The GPG-Editor DOES NOT support the export and import of skybox files.
Reclaim
The GPG-Editor REMOVES the reclaim value from _scenario.lua.
Note: The
reclaimvalue is a feature of the FAF-Editor.
The FAF-Editor can read and save Supreme Commander v56 and Forged Alliance v60 map versions.
Note: FAF-Editor can be used to save a
v60map inv56format to be able to edit the map in the GPG-Editor. Keep in mind that theskyboxand other content gets lost while re-saving av60map asv56format.
FAF content The FAF-Editor includes the latest FAF changes.
Map preview
The map preview created in the FAF-Editor DOES NOT look 100% realistic. The textures and water get rendered differently.
Minimap
The FAF-Editor colors the land and water areas in the minimap differently.
Skybox
The FAF-Editor supports the export and import of skybox files.
Reclaim
The FAF-Editor adds / writes the reclaim value to _scenario.lua.
The MapTransformer by Sheikah is the recommended tool to recreate the map based on the source map version and source area or angle. You can request the latest version of the MapTransformer from Sheikah through a personal message. Usage see 3.5.1.
Credit: Huge thanks to Sheikah for creating the
MapTransformer. Note: If you encounter any issues or have questions, don't hesitate to reach out to Sheikah for assistance.
To make precise and efficient map modifications, it's crucial to understand the content of each map file in order to determine which files and changes should be used and which can be ignored safely (see 3.4).
It's a non-text binary file. Changes need to be performed in a map editor or binary / hex editor. The file will be changed / rewritten when a map gets saved in a map editor.
The file holds the following information:
- preview
- minimap
- heightmap
- strata / layer (mask and path)
- props (position and path)
- decals (position and path)
- skybox (
v60maps only)
Note: The only difference between
v56andv60map formats is the content of the.scmapfile. The other map files can be used across all map formats.
Individual assets such as paths to prop or decal are hard-coded in the .scmap file. The path / version needs to be adapted, otherwise assets are missing or only loading when the original map is still in the maps folder.
-
Changed map name / path
- Change path in map editor or replace asset
-
Changed map version
- Open
.scmapfile in binary / hex editor (Visual Studio Code, Okteta, ...) and change version.v000X
- Open
Note: Like GPG maps, the majority of maps do not contain individual assets. However, there are a community maps that incorporate individual assets.
It's a plain text file that contains LUA code. Changes can be performed with a text or map editor. Except for the reclaim value, there is no need to use a _scenario.lua that gets created while saving the map in the editor, you can simply modify the old file in a text editor.
Note: Once you have a working
_scenario.luafile with all the relevant information it can be placed in theMaster Map Versionfolder. No further changes are needed.
The file holds the following information:
- name - Name of your map that will be displayed in game lobby.
- description - Description of your map that will be displayed in the game lobby.
- type - Set map type to
skirmish. - starts - Set it to
true. - preview - Keep this empty to have a working map preview in the FAF lobby. Are custom previews from map folder not working?
- reclaim – Value is generated by FAF-Editor / value will be lost in GPG-Editor.
- size - Size of the map (set in map editor), do not change it.
- map_version - Current version number of the map.
- map - Path to
.scmapfile. - save - Path to
_save.luafile. - script - Path to
_script.luafile. - norushradius – Radius used if no rush is enabled.
- norushoffset – Offset that is used to move the no rush radius of every army (e.g. to ensure same mex/hydro amount).
- armies configuration - Playable
ArmiesandExtraArmiesof the map. Check dependency in_save.lua(see 2.2.3).- Ensure that
ARMY_9orARMY_17as well asNEUTRAL_CIVILIANare added toExtraArmies.- GPG maps need
ARMY_9andNEUTRAL_CIVILIAN. The player count was limited to 8Armies.armies = {'ARMY_1', 'ARMY_2', 'ARMY_3', 'ARMY_4', 'ARMY_5', 'ARMY_6', 'ARMY_7', 'ARMY_8'} ['ExtraArmies'] = STRING( 'ARMY_9 NEUTRAL_CIVILIAN' )
- Other maps need
ARMY_17andNEUTRAL_CIVILIAN. The player count is limited to 16Armies.Or should it be ARMY_17 in GPG map rework as well?armies = {'ARMY_1', 'ARMY_2', 'ARMY_3', 'ARMY_4', 'ARMY_5', 'ARMY_6', 'ARMY_7', 'ARMY_8' ,'ARMY_9', 'ARMY_10', 'ARMY_11', 'ARMY_12', 'ARMY_13', 'ARMY_14', 'ARMY_15', 'ARMY_16'} ['ExtraArmies'] = STRING( 'ARMY_17 NEUTRAL_CIVILIAN' )
- GPG maps need
- Ensure that
version = 3 -- Lua Version. Dont touch this
ScenarioInfo = {
name = 'Setons Clutch - FAF version',
description = 'Dozens of battles have been fought over the years across Setons Clutch. A patient searcher could find the remains of thousands of units resting beneath the earth and under the waves. - FAF version of the original Forged Alliance map "SCMAP_009": Ensures symmetrical heightmap, textures, decals, marker, props and units. Contains improved AI marker. - Modified by FAF Creative: https://forum.faforever.com/topic/398/faf-version-gpg-unknown-inactive-author-map-rework',
preview = '',
map_version = 1,
type = 'skirmish',
starts = true,
size = {1024, 1024},
reclaim = {55561.41, 336980.6},
map = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_script.lua',
norushradius = 70.000000,
norushoffsetX_ARMY_1 = 15.000000,
norushoffsetY_ARMY_1 = 40.000000,
norushoffsetX_ARMY_2 = -15.000000,
norushoffsetY_ARMY_2 = -40.000000,
norushoffsetX_ARMY_3 = 12.000000,
norushoffsetY_ARMY_3 = 38.000000,
norushoffsetX_ARMY_4 = -12.000000,
norushoffsetY_ARMY_4 = -38.000000,
norushoffsetX_ARMY_5 = -40.000000,
norushoffsetY_ARMY_5 = -15.000000,
norushoffsetX_ARMY_6 = 40.000000,
norushoffsetY_ARMY_6 = 15.000000,
norushoffsetX_ARMY_7 = -10.000000,
norushoffsetY_ARMY_7 = -10.000000,
norushoffsetX_ARMY_8 = 10.000000,
norushoffsetY_ARMY_8 = 10.000000,
Configurations = {
['standard'] = {
teams = {
{
name = 'FFA',
armies = {'ARMY_1', 'ARMY_2', 'ARMY_3', 'ARMY_4', 'ARMY_5', 'ARMY_6', 'ARMY_7', 'ARMY_8'}
},
},
customprops = {
['ExtraArmies'] = STRING( 'ARMY_9 NEUTRAL_CIVILIAN' ),
},
},
},
}It's a plain text file that contains LUA code. Changes need to be performed in a map editor. The file will be changed / rewritten when a map gets saved in a map editor.
The file holds the following information:
- marker (position, group and path)
ARMY_XExtraArmiesARMY_9orARMY_17NEUTRAL_CIVILIAN
- Units & Structures
INITIAL– living (not moving)WRECKAGE– deadPlatoonBuilders– living (moving) with hard-coded purpose
- Resources
- AI marker
Note: Changes to scripted maps like adaptive maps, require an understanding of all scripted dependencies e.g. army related mex spawning in
_tables.luaand adaptive_options.lua.
Living NEUTRAL_CIVILIAN units and structures should be placed in INITIAL group. They need a radar and enough power to work properly. Dead units and structures should be placed in WRECKAGE group.
Every playable ARMY_X needs an INITIAL Group at Units. ExtraArmies like ARMY_9 or ARMY_17 and NEUTRAL_CIVILIAN need an INITIAL & WRECKAGE Group at Units. Check dependency in _scenario.lua (see 2.2.2).
Note: This is needed for some mods to work. Is that true?
It's a plain text file that contains LUA code. Changes can be performed with a text editor.
The file holds the following information:
- how the map starts / behaves
Note:
- There is no need to change the file content (except filename) while reworking GPG (Supreme Commander and Forged Alliance) maps.
- Some maps (e.g. adaptive maps) have a map folder and file reference in the
_script.lua. Make sure to update the path as well.
local ScenarioUtils = import('/lua/sim/ScenarioUtilities.lua')
function OnPopulate()
ScenarioUtils.InitializeArmies()
end
function OnStart(self)
endA lot of map-specific issues are already documented or fixed (see 1.1). Get familiar with the open map-specific issues for optimal map rework results.
Check the issues in game.
Check the issues in GPG or FAF Editor.
Download other FAF version maps from the FAF vault and get familiar with the requirements.
The primary focus of this section is to guide the creation of a balanced and optimized FAF version map while preserving its original essence and improving specific aspects.
If the source map version of the FAF version is a GPG (Supreme Commader and Forged Alliance) map, Forged Alliance v60 maps should always be used. The Forged Alliance v60 maps are further developed (e.g. skybox, different units, ...) compared to the Supreme Commander v56 ones (see 3.1.1, 3.1.2 and 3.1.4).
In case of unknown author and inactive author maps, the source map version can be downloaded from the FAF Vault and will then be accessible in the Forged Alliance Forever maps path (see 3.1.3).
Note: GPG named the map folder and files differently than the map
name. The mapnameis only visible in game or in the_scenario.luafile.
GPG Skirmish Maps
SCMP_0XXare official Supreme Comanderv56and Forged Alliancev60skirmish map folder and filesX1MP_0XXare additional official Forged Alliancev60skirmish map folder and filesGPG Campain Maps
SCCA_XXXare official Supreme Commanderv56campain map folder and filesX1CA_0XXare official Forged Alliancev60campaign map folder and files
Default GPG path: \Gas Powered Games\Supreme Commander\maps
Default Stream path: /steam/steamapps/common/Supreme Commander/maps
Default GPG path: \THQ\Gas Powered Games\Supreme Commander - Forged Alliance\maps
Default Stream path: /steam/steamapps/common/Supreme Commander Forged Alliance/maps
Needed for testing or if a map from unknown or inactive author has been downloaded from the FAF Vault as source map version.
Default FAF path: /My Games/Gas Powered Games/Supreme Commander Forged Alliance/maps/
Different units/structure placement and count between Supreme Commander v56 and Forged Alliance v60 map versions.
Image: Theta Passage – Supreme Commander v56 (left) VS Forged Alliance v60 map version (right)
For a balanced FAF version of the map, it is crucial to correctly identify the source area or angle. The source marks the map content that will be used for the FAF version rework. If the map issue doesn't dictate a specific source area or angle (e.g. remove heightmap difference at map bottom > source = TOP), the source area or angle needs to be found/discussed.
Note: In some cases, a different
sourcearea or angle was used to rework the heightmap and props differently.
To prepare the discussion, one of the following steps is advisable:
- Export
heightmap.rawand create a 360° rotation/mirror video to discuss thesourcearea or angle.- Worldmachine Template add
- Create and test a few
sourcearea or angle options on the correctsource map versionwith theMapTransformerand compare the results.- Terrain issues at
sourcearea or angle. - Changes in
prop valueandmarkerplacement, ...
- Terrain issues at
Engage in discussions with the ladder team, Team Match Maker (TMM), and the issue reporter to determine the optimal source area or angle based on the open individual map issues (see 1.1), preparations and other map specific requirements. Please create a thread in the following channel on Discord:
- Official Forged Alliance Forever Discord
Note: It is recommended for authorized
FAF versionmap makers to engage in discussions regarding open questions and unexpected issues that arise during the map rework process.
In the case of the Setons Clutch – FAF version, we agreed on a source angle of 115° (white area was used). See forum post for more examples.

While creating a new map, it is important to set up the folder, files, and file path according to the map name (see Example _scenario.lua and already uploaded FAF version maps). Copy the source map version folder to the Master Map Version directory (see 3.4) and make the following adjustments manually.
Note: Manual adjustment is recommended at this step to ensure that the changes are made correctly. Re-saving the map with a different
namewill change the original content!
Derive the new map name from the original map name in _scenario.lua and change it accordingly:
- Capitalize the first letters of the original map
name. - Special characters (except
-) are not allowed.- Also see:
- Map
nameand_scenario.luacontent validation page. - FAF Vault Rules.
- Map
- Also see:
- Add the suffix
- FAF versionto get the final map name. Should “FAF Version” be allowed as well?
name = 'map name',
name = 'Map Name - FAF version',name = 'Seton’s Clutch',
name = 'Setons Clutch - FAF version',Derive the FILE_NAME from the new map name and change the map file names accordingly:
- All characters need to be lowered (
Abecomesa). - White-spaces (
) need to be replaced with an underscore (_).
--INPUT
name = 'Setons Clutch - FAF version'
FILE_NAME = 'setons_clutch_-_faf_version'--RESULT
scmap = 'setons_clutch_-_faf_version.scmap'
scenario = 'setons_clutch_-_faf_version_scenario.lua'
save = 'setons_clutch_-_faf_version_save.lua'
script = 'setons_clutch_-_faf_version_script.lua'Add the correct map_version to the _scenario.lua file. The value map_version was implemented by FAF and is needed for versioning/upload.
Note: The first version of a map should be number
1.
--RESULT
map_version = 1,Create FOLDER_NAME (from FILE_NAME and map_version) and rename the map folder accordingly.
FOLDER_NAME = FILE_NAME + MAP_VERSION_STRING
official_folder_name = 'SCMP_009'
map_version = 1,
MAP_VERSION_STRING = '.v0001'
FILE_NAME = 'setons_clutch_-_faf_version'--RESULT
FOLDER_NAME = 'setons_clutch_-_faf_version.v0001'Set the path according to the new map FILE_NAME and FOLDER_NAME in the _scenario.lua file.
Note: Some maps (e.g. adaptive maps) have a map file reference in the
_script.lua. Make sure to update that path as well.
map = '/maps/FOLDER_NAME/FILE_NAME.scmap',
save = '/maps/FOLDER_NAME/FILE_NAME_save.lua',
script = '/maps/FOLDER_NAME/FILE_NAME_script.lua'--INPUT
FILE_NAME = 'setons_clutch_-_faf_version'
FOLDER_NAME = 'setons_clutch_-_faf_version.v0001'--RESULT
map = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_script.lua'Use the validate map metadata web-page to validate the map name and _scenario.lua content.
Test the map in-game before you proceed with the next step.
To streamline the process and maintain backups of the latest changes, it is recommended to create an Editor Map Version and Master Map Version in different directories. This ensures that only necessary and tested changes/files are transferred to the final version of the FAF version map.
Note: To ensure that work is always being done on the latest version of the map, it's important to regularly replace the
Editor Map Versionwith theMaster Map Versionfolder.
The Editor Map Version folder represents the work in progress as well as test version of the map. The Editor Map Version folder needs to be placed in the required map folder (simply copy the folder created in 3.3 into the required directory, see 3.1). The benefits of the Editor Map Version are, it can be edited, saved, destroyed or deleted without affecting the Master Map Version backup.
Note: All changes that require the map editor or
MapTransformershould be made in theEditor Map Versionfolder.
The Master Map Version folder is used to store, test and discuss final results and during the Map Upload Process. The Master Map Version should be placed in a separate project directory outside the FAF environment. The content of the Master Map Version will be updated by copying the tested necessary files (e.g. .scmap or _save.lua) from the Editor Map Version folder and replacing the files in the Master Map Version folder. This way, only relevant changes are transferred and the Master Map Version serves as a backup of the latest version of the map. It is not recommended to overwrite all files or to save the Master Map Version in a map editor, as this could result in unintended changes to the original content. Simply copy & replace .scmap if a new map preview was created / _save.lua if marker where changed (see 2.2).
Notes:
- Git is the recommended tool for committing final results in the
Master Map Versionfolder.- The
_scenario.luacontent as well as the default quotation mark settings will be changed while using different map editors. It's good practice to finalize the_scenario.luain theMaster Map Versionfolder.
After completing all the necessary preparation steps, it is now time to implement the source area or angle (see 3.2) based on the Editor Map Version.
Automating the implementation of the source area or angle using the MapTransformer by Sheikah is highly recommended. This ensures consistency and accuracy in the process, while also saving time and effort. If you need to manually implement or recreate map assets, such as mirroring decals, refer to the documented steps at 3.5.2.
The MapTransformer is a java command line tool. The MapTransformer rotates and mirrors² the map content based on the symmetry and source settings of the input map. Content that does not belong to the source gets deleted and repopulated according to the symmetry settings. Changes can be done separately or --all at once. .
Notes:
- The
symmetrysettings (rotation, mirror) derive from the originalsource map version.- The
--alloption should be used to ensure a balancedFAF versionmap.- The
MapTransformerdoes not create AI markers / preserve connections.- ² The
MapTransformeris currently unable to mirror decals, see b2ag’s scmap_mirror_tool to mirror.scmapcontent.
- Install
Java 17(minimum requirement) - In the directory where the
MapTransformer-17.jarfile is placed:- Create
TransformedMapsfolder - Create
InputMapsfolder - Place the map folder (
Editor Map Version) in theInputMapsfolder
- Create
- Adjust the code examples (
in-folder-path,symmetryandsourcearea or angle) to your needs - Run terminal in the directory where the
MapTransformer-17.jarfile is placed - Run code in terminal
- Open
TransformedMapsto access the modified map
The options can be seen by running java -jar MapTransformer-17.jar –help.
--help // produce help message
--in-folder-path // arg required, set the input folder for the map
--out-folder-path // arg required, set the output folder for the transformed map
--symmetry // arg required, set the symmetry for the map
• POINT2 // 180° rotation
• POINTN // 360°/N rotation
• X // mirror / flip
• Z // mirror / flip
• XZ // mirror / flip
• ZX // mirror / flip
--source // arg required, set which half to use as base for forced symmetry
• ANGLE
• TOP
• BOTTOM
• LEFT
• RIGHT
• TOP_LEFT
• TOP_RIGHT
• BOTTOM_LEFT
• BOTTOM_RIGHT
• ALL
--all // optional, force symmetry for all components
--spawns // optional, force spawn symmetry
--resources // optional, force mex symmetry
--props // optional, force prop symmetry
--decals // optional, force decal symmetry
--wrecks // optional, force wreck symmetry
--civilians // optional, force civilian symmetry
--terrain // optional, force terrain symmetry
--debug // optional, turn on debugging optionsjava -jar MapTransformer-17.jar --debug --in-folder-path "InputMaps/setons_clutch_-_faf_version.v0001" --out-folder-path TransformedMaps --symmetry POINT2 --source 115 –alljava -jar MapTransformer-17.jar --debug --in-folder-path "InputMaps/the_ditch_-_faf_version.v0001" --out-folder-path TransformedMaps --symmetry POINT2 --source BOTTOM_LEFT –alljava -jar MapTransformer-17.jar --debug --in-folder-path "InputMaps/serenity_desert_small_-_faf_version.v0002" --out-folder-path TransformedMaps --symmetry ZX --source TOP_LEFT –all- Create rotation/mirror strata/layer mask of
sourcearea or angle for usage in map editor. - Create rotation/mirror setup for
sourcearea or angle in Worldmachine.
- Export map
heightmap.raw. - Rotate/mirror and heightmap in Worldmachine, Image editing Software.
- Keep terrain issues at
sourcearea or angle axis in mind.
- Keep terrain issues at
- Import rotated/mirrored
heightmap.raw.
- Import rotation/mirror mask of
sourcearea or angle as strata/layer in map editor. - Delete props at opposite side of
sourcearea or angle. - Export props.
- Import props.
- Set the correct angle (opposite of
sourcearea or angle) while importing.
- Set the correct angle (opposite of
- Realign props to terrain.
- Use
STRG+Ato select all props, then delete them and pressSTRG+Zto undo it.
- Use
- Import rotation/mirror mask of
sourcearea or angle as strata/layer in map editor. - Set the correct symmetry in FAF-Editor. Select the marker on the
sourceside and adjust the marker on the opposite side to the correct/marked position.
Note: Marker refers to the content of the
_save.luafile (see 2.2.3).
Image: Seton's Clutch - Manual marker rework.
- Export all map strata/layer.
- Rotate/mirror strata/layer in Worldmachine, Image editing Software.
- Keep coloring issues at
sourcearea or angle axis in mind.
- Keep coloring issues at
- Import rotated/mirrored strata/layer.
- Import rotation/mirror mask of
sourcearea or angle as strata/layer in map editor. - Delete decals at opposite side of
sourcearea or angle. - Export decals.
- Import decals.
- Rotate manually to the correct angle (opposite of
sourcearea or angle) after import while the decals are still selected.
- Rotate manually to the correct angle (opposite of
Note: Decals can currently only be mirrored with b2ag’s scmap_mirror_tool.
After implementing the source area or angle, it is necessary to polish the map files to eliminate issues and provide an up-to-date gaming experience.
Note: Issues could be introduced while implementing the
sourcearea or angle. Pay special attention to the rotation/mirror axis.
Also see 2.2.1.
After using the MapTransformer, it's necessary to create a new map preview because the changes are based on the source area or angle and not on the correct perspective and lighting. Saving the map will overwrite the .scmap file and generate a new map preview.
Notes:
- To preserve the original look of the map
preview, it's recommended to save the.scmapfile in the GPG-Editorv56map format (see 2.1.2).- If the map contains a
skybox, it is a Forged Alliancev60map. In this case, it's recommended to save the.scmapfile only in the FAF-Editor asv60map format. Otherwise, theskyboxcontent will be lost (see 2.1.3). All Forged Alliance maps contain a individualskybox.
Check/fix terrain issues at the rotation/mirror axis of the source area or angle.
- Example: The heightmap of Forbidden Pass – FAF version needed a terrain fix at the rotation line.
Check/fix strata/layer mask issues at the rotation/mirror axis of the source area or angle.
- Example: The layer of Forbidden Pass – FAF version needed a strata/layer fix at the rotation line.
Check/fix prop issues at the rotation/mirror axis of the source area or angle.
GPG-Editor Note: If props need to be realigned to the terrain, follow step 3. If props need to be submerged and realigned to the terrain, follow steps 1-4:
- Make note of the current water level.
- Set the water level to
0.- Realign props to terrain.
- Use
STRG+Ato select all props, then delete them and pressSTRG+Zto undo it.- Set the water level to its original value.
Check/fix decal issues at the rotation/mirror axis of the source area or angle.
For a consistent visual experience, set the same Cutoff Distance value for all decals. This will ensure that they blend in and out at the same time. Use STRG+A to select all decals, then change the value according to map size:
| Map Size | Cutoff Distance |
|---|---|
| 5x5 km | 1000 |
| 10x10 km | 2000 |
| 20x20 km | 3000 |
| 40x40km | 4000 |
Note: See 2.2.1.1 Individual Assets.
Also see 2.2.2.
Add a similar description with a link to the forum channel:
description = "Dozens of battles have been fought over the years across Seton's Clutch. A patient searcher could find the remains of thousands of units resting beneath the earth and under the waves. - FAF version of the original FA map 'SCMAP_009': Ensures symmetrical heightmap, textures, decals, marker, props, and units. Contains improved AI marker. - Modified by FAF Creative: https://forum.faforever.com/topic/398/faf-version-gpg-unknown-inactive-author-map-rework"description = "FAF version of the unknown author map 'Loki': Ensures symmetrical marker and props. Contains new AI marker. - Modified by FAF Creative: https://forum.faforever.com/topic/398/faf-version-gpg-unknown-inactive-author-map-rework"What should be written instead of "FAF creative" in the future?
Add a reasonable norushradius if the value is 0.
Adapt the norushoffsetX/Y_ARMY_X to changes.
Note: The
norushoffsetX/Y_ARMY_Xcan be deleted if the offset value is0.
See 2.2.2.
Also see 2.2.3.
Check/fix marker issues at the rotation/mirror axis of the source area or angle.
Add, optimize and improve the AI marker. Should AI marker be add, even if they get generated automatically now?
Note: Marker refers to the content of the
_save.luafile (see 2.2.3).
Units and structures
Pay special attention to the reclaim value, as well as the quantity of structures and units located at the rotation/mirror axis or in the middle of the map. Take note of the reclaim value, as well as the quantity of structures and units used in the original source map version. Ensure the units and structures are placed as closely as possible to the original in the FAF version. Try to ensure they match in reclaim value, placement, type and quantity, while considering the new source area or angle.
Note: If a radar belongs to the
INITIALNEUTRAL_CIVILIANgroup, ensure it has sufficient power to operate effectively.
Image: Syrtis Major - Middle base
Image: Arctic Refuge - Middle base
Image: Seton's Clutch - Special middle units rework.
See 2.2.3.
See 2.2.4.
Testing the Master Map Version is a crucial step in ensuring its quality and functionality.
- Once all changes are final, remove the
Editor Map Versionfrom the FAF maps path. - Copy the
Master Map Versionto the FAF maps path. - Test the created
Master Map Versionthoroughly in game to ensure:- That the map is working like intended.
- That all map-related
issueshave been resolved (see 1.1) and no newissueshave been introduced.- Open the
Moho Logby pressingF9and check for any additional issues.
- Open the
- That all
FAF version-related requirements have been met (see 3). - That structures can be built on every
resource marker. - That
AI Markersare working.
- If necessary, make changes based on testing results and restart the process from step 1.
Reviewing and documenting changes are essential steps in ensuring transparency and effective communication within the community
Use the FAF-Editor to retrieve the prop values for mass and energy of the original source map version and the FAF version map. Calculate the difference for discussion and documentation.
| Seton's Clutch - Prop Value | Mass | Energy |
|---|---|---|
| SCMP_009 (original v60 source map version) | 36.525,34 | 333.853,70 |
| FAF version (v0001, 115° source angle) | 37.814,32 | 336.974,80 |
| Difference | 288,98 | 3.121,10 |
Present the FAF version to the ladder team, Team Match Maker (TMM), and the issue reporter to review and test the changes (see 3.2). Before proceeding, ensure that you have received approval for the following:
Changes in prop value and marker placement, ...
Note: To make the map accessible prior to uploading it to the
FAF Vault, create a zip file from theMaster Map Versionfolder and upload the zip file to the Matchmaker-submissions Discord channel (see 3.2.2). This allows others to access and review the map before it is officially uploaded.
Comprehensive documentation is crucial for maintaining a record of changes and facilitating future issue tracking.
- Individual Map Issue Documentation
Document version related changes in
Individual Map Issue Documentationfor future documentation and issue tracking (see 1.1). Where should it be documented in the future, currently i got this. - Forum Post Explain map changes in one forum post in a clear and concise manner for documentation (in case issues arise from changes) and to inform the community about the changes made to the map. Provide detailed and issue-related information about the values that have been changed. This ensures that the community is fully informed about the changes made to the map and can provide feedback accordingly.
Note: Keep the
Individual Map Issue Documentationand the corresondingForum Postup to date whenever a new map version is uploaded the theFAF Vault.
The map upload process is the final step in making the FAF version map available to the FAF community. It involves preparing the map files, adjusting the folder and file paths and uploading the map to the FAF Vault.
To prevent the occurrence of the DOUBLE MAP_VERSION_STRING (see 6.1.) error, it is essential to remove the .v000X from both the folder and file paths prior to uploading. This is because the map file paths for all map files will be automatically generated during the upload process, using the selected FOLDER_NAME and the map_version specified in the _scenario.lua file.
Is that true or is the name from the scenario.lua used? If FOLDER_NAME, would it be enough, to only change the folder name and leave the map file path unchanged?
- Copy the final
Master Map Versionfolder to a separate directory. - Remove the
MAP_VERSION_STRING.v000Xfrom theFOLDER_NAME.
--INPUT
MAP_VERSION_STRING = '.v0001'
FOLDER_NAME = 'setons_clutch_-_faf_version.v0001'--RESULT
FOLDER_NAME = 'setons_clutch_-_faf_version'- Remove the
MAP_VERSION_STRING.v000Xfrom the map file path in_scenario.luaand_script.lua(if present).
Note The
.scmapfile does not require any modifications. It remains unchanged throughout the upload process. Is that true?
--INPUT
MAP_VERSION_STRING = '.v0001'
map = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_script.lua',--RESULT
map = '/maps/setons_clutch_-_faf_version/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version/setons_clutch_-_faf_version_script.lua',- Select the renamed folder with the adapted file path during the upload process.
- If the upload is successful, delete the
Editor Map VersionorMaster Map Versionfrom the FAF map path. - Download the newly uploaded map.
- Test the map to ensure it is working as intended (see 4).
When the MAP_VERSION_STRING .v000X is not removed from both the folder and file paths before uploading, it triggers the DOUBLE MAP_VERSION_STRING error. This results in the duplication of the MAP_VERSION_STRING (.v000X.v000X), leading to an incorrect file path and an unplayable map version.
--INPUT
FOLDER_NAME = 'setons_clutch_-_faf_version.v0001'
map_version = 1
MAP_VERSION-STRING = '.v0001'
map = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version.v0001/setons_clutch_-_faf_version_script.lua',--RESULT AFTER UPLOAD ('.v0001.v0001')
version = 3 -- Lua Version. Dont touch this
ScenarioInfo = {
name = 'Setons Clutch - FAF version',
...
map_version = 1,
...
map = '/maps/setons_clutch_-_faf_version.v0001.v0001/setons_clutch_-_faf_version.scmap',
save = '/maps/setons_clutch_-_faf_version.v0001.v0001/setons_clutch_-_faf_version_save.lua',
script = '/maps/setons_clutch_-_faf_version.v0001.v0001/setons_clutch_-_faf_version_script.lua',--INPUT
FOLDER_NAME = 'adaptive_monument_valley.v0005'
map_version = 5
MAP_VERSION-STRING = '.v0005'
local Tables = import('/maps/adaptive_monument_valley.v0005/adaptive_monument_valley_tables.lua')--RESULT AFTER UPLOAD ('.v0005.v0005'):
------------------------------------------------------------------------
----- Script by CookieNoob and KeyBlue (modified by svenni_badbwoi)-----
------------------------------------------------------------------------
...
local Tables = import('/maps/adaptive_monument_valley.v0005.v0005/adaptive_monument_valley_tables.lua')
...

