Layer Overhaul for Modders
Last updated 2021-02-19 20:30 PST
Introduction
WHEN is this coming?
WHY do I want this?
Example of how things are intended to work
Files you’ll have to modify
Why Data is cool
How to create Data Assets
How to create Data Tables
Regarding future updates
Project Setup
Asset Manager Paths
Folder Structure
Tools
Validators
Handy Editor Play Settings you should know about
Level Spawner Setup
Deployables
Vehicles
Vehicle Spawner Best Practices
Level Data
Data Table
Data Asset
Layer Data
Data Table
Data Asset
Team Setup: Working with Layer Team Configs
Faction
Data Table
Data Asset
Faction Setup (Units)
Data Table
Data Asset
Vehicles
Data Table
Data Asset
Deployables
FOB Deployables
Data Table
Data Asset
Deployable Items
Data Table
Data Asset
Roles
Data Table
Data Asset
Actions
Advanced: Availability and Delay
Game Modes
Introduction
Welcome to the complete tutorial for how to create content or convert your existing Squad mod for compatibility with the new Layer Overhaul framework.
WHEN is this coming?
The Layer Overhaul framework will be rolled out in Squad v2.0, February 2021. Most Layers will use the Legacy format (no voting) at first, but will be progressively updated to the new Generic format over successive updates.
WHY do I want this?
Layer Overhaul gives modders, and OWI developers, the ability to do things we could never have done before. These include:
- Server and team-wide votes on next layer and even next faction
- The ability to mix and match armies on layers without having to create a whole new layer
- An easy to use set of hooks and blueprint functions for implementing new features and game modes
- Significant performance improvements due to memory optimization
- Ability for modders and devs to quickly update layers without having to actually open a map
Example of how things are intended to work
- Within a Faction are many different Units: Team setups which have different vehicle compositions and availabilities. There can even be unique deployables, soldier kits, and commander actions defined on a per-Unit basis.
- Layers are Faction-agnostic, allowing any compatible faction to appear on them.
- Units can be mixed and matched with appropriate opponents across all compatible Layers, allowing for a huge amount of variety.
- Before a round, players can vote for which Unit, and thus which playstyle, they want to play with.
- Modded Factions and Units can be seamlessly integrated with the vanilla game, available for vote alongside Vanilla factions, maps, and layers.
- (WIP) Integrated analytics can determine win-loss rates across the game.
- (WIP) A Battle Rating system for Units allows possible matchups to be adjusted dynamically as Squad’s meta evolves, without having to push a client or server update.
Files you’ll have to modify
The files you need to modify will depend on what types of content your mod adds.
- Level Data (for modded Levels)
- Layer Data, Spawners, and Main Base Deployables (for modded Layers)
- Faction Data (for modded Factions)
- Faction Setups, i.e. 10th Mountain Division or 5th Guards Tank Army. The player-facing term is Units. (For modded layers and factions)
- Vehicles Data (for modded vehicles)
- Deployables Data (for modded deployables)
- Role Data (for modded soldiers)
- Commander Actions (not yet implemented, but will be used for modded Commander abilities)
- Advanced: Availability and Delay assets (for creating custom availability and delay rulesets for vehicles, deployables and abilities)
Why Data is cool
With the exception of updating some spawners on gameplay layers, we won’t need to modify any maps or blueprint scripts here. Rather than referencing blueprints directly, we now use Data Tables and Data Assets as containers for those blueprints. This means:
- We don’t have to load tons of assets up front in order to make a small change
- Allows us to standardize data across multiple variants
- Makes for faster editor workflows
How to create Data Assets
Right click in Content Browser → Miscellaneous → Data Asset
Select a base class when prompted and press OK
How to create Data Tables
Right click in Content Browser → Miscellaneous → Data Table
Select a base structure (table columns) when prompted and press OK
Regarding future updates
One of the great things about Layer Overhaul is that it makes it very easy to iterate and improve on these systems over time. This means some of the information here may become out of date, and you will have to keep on top of your mod’s compatibility in future versions of the SDK.
The main changes coming in the future will involve:
- Battle Rating system (auto-balancing of factions offered for vote)
- Layer Overhaul compatible Commander Actions
- Role Grouping Strategies (unifying the source of where different UIs and systems determine what category a player kit fits in, like Specialist and Fire Support)
Project Setup
Asset Manager Paths
- First, we need to tell the engine where to look for our files. This is necessary to enable an optimization.
- Go to Project Settings → Game → Asset Manager
- For each of the following asset types, add your mod’s equivalent folder path to the Directories array. If you don’t do this, nothing will happen when you try to Play In Editor and your files will not cook.
- BP_SQLevel_C
- BP_SQLayer_C
- BP_SQFaction_C
- BP_SQFactionSetup_C
- Example:
Folder Structure
Most new assets should go in a new folder called Settings. Look at the vanilla Settings folder as an example.
Layer and Level data should live within a Gameplay_Layer_Data folder within each individual Map folder.
Tools
We have a number of handy tools to aid in your workflow. These can be found in the Tools folder.
To run, right click a tool in the Content Browser and click “Run Editor Utility Widget”
WARNING: The tools described here are the only ones we recommend you use. If you want to use the potentially out of date tools in the Tools folder, you do so at your own risk!
- Tools/TeamUpgrader/EUW_FactionSetupCloner
- Reliable bulk-editing of Kits, Deployables, Vehicles or Actions (future release) across multiple Faction Setups. Weird things are known to happen if you try to manually copy arrays from one Data Asset to another, so we made this tool to handle it.
- On one Faction Setup data asset, make the changes which you want to be propagated to other Faction Setups.
- Select the Faction Setup Data Asset in the Content Browser, then click button 1
- Select as many target Faction Setup Data Assets as you want in the Content Browser, then click button 2
- Tick the checkboxes for which fields you wish to copy to the target Faction Setup(s)
- Choose an operation for each field:
- If you want the copied fields to completely replace the fields in the target Faction Setup(s), tick the Replace checkbox.
- If you want the copied fields to be appended to the existing arrays in the target Faction Setup(s), tick the Add To Existing checkbox.
- If you don’t want to do anything to a certain field (you’re just unifying Roles across all setups in a Faction, for example), tick neither checkbox for that row.
- Click Copy Things to execute
- Check the log to see exactly what has been modified
- If your layer contains modded deployables, the tool may not detect them. You can tell the tool what to search for by opening the blueprint and editing the Targets map.
- Tools/SpawnerUpdater/EUW_DeployableReplacer
- Automatically upgrade Main Base Deployables of your existing pre-v2 layer.
- Load your Layer
- Click Get Needed Replacements
- A list will be generated, showing what objects get converted and what they turn into. Verify that the generated list looks correct.
- Click Switch To Spawners to execute.
- Your Deployables are now generic deployable spawners and should require no further setup!
Validators
Scripts which automatically run when saving Layer Overhaul assets, to ensure you don’t accidentally enter bad data. Output is sent to the Message Log.
- Right click folder → Validate Assets In Folder (avoid doing this on the Maps folder as it will also try to validate .umaps themselves)
- OR right click an asset → Asset Actions → Validate Asset
- OR just attempt to save an asset.
- Be sure to clear the Message Log between uses as it doesn’t clear on its own (bottom right corner)
- In this case we’ve referenced a line in a data table which is already used by another asset. That probably means we did that by mistake, so the validator is flagging it for us.
Handy Editor Play Settings you should know about
- Editor Preferences → Level Editor → Play Squad
- Default pawn override
- Default weapon override
- Layer Editor Override (Spoofs another layer to show where vehicles would spawn)
- Prevent Data Loading - Optimization when loading a lot of layers. Shows vehicle previews when disabled. Recommend you keep this off.
- Simulate various server config settings
- Force Direct Spawn - allows spawning at camera location, bypassing Squad spawn screenflow
Level Spawner Setup
All spawners, for both Vehicles and Main Base Deployables, are now generic. They can accept any vehicle/deployable from any faction that plays on the layer, and require some setup and housekeeping. This needs to be set up for Legacy layers too.
Deployables
Deployables are now created by a spawner blueprint, BP_SQDeployableSpawner.
To convert your existing Main Base Deployables, run Tools/SpawnerUpdated/EUW_DeployableReplacer
If your layer contains modded deployables, the tool may not detect them. You can tell the tool what to search for by opening the blueprint and editing the Targets map.
- Refresh Preview - Refreshes the clip bounds preview (green box).
- The size of the bounds depends on the data asset in Settings
- Preview has 3 modes:
- Green: No clipping issues
- Orange: Clipping with environment - spawn will fail
- Red: Floating too far from ground - spawn will fail
- If all your boxes are red, you probably just need to run Refresh Preview once.
- Settings - Data asset which defines what type of deployable will spawn here.
- Neutral Copy Deployable From Team - IGNORE ME! Should be deprecated but it just won’t go away!
- Specific Deployable - Overrides generic spawner functionality and forces a particular deployable to spawn, regardless of team. This should only be used for testing.
- Spawn Position Height Check - Starting height of the line trace from the spawner to the terrain. Reduce this value to fit under roofs and overhangs.
- Spawn Position Offset - Offset from ground to compensate for irregularities in terrain
- Team - Defines which team owns this deployable
- Advanced (drop down arrow)
- Spawn State - Allows you to spawn deployable in an unbuilt state
- Prevent Unbuilding/Damaging/RequireFOB/RequireSameTeam - these are the overrides which make Main Base deployables behave differently from player-created deployables. You may want to override some of these in a custom game mode.
- Spawn Life Time: Causes the deployable to self-destruct after a set number of seconds. Use this to purge forward-positioned ammo crates in Invasion.
Vehicles
The Vehicle Spawner Class has been updated. Your existing spawners will inherit this new functionality.
- Refresh Preview - Same as in Deployable Spawner, see above
- Settings - Data asset which defines some limits as to what can spawn here. You won’t have to make new ones, but it helps to know what it actually contains.
- Size: Determines the size of the largest vehicle which can fit in this spawner, represented by the bounding box preview.
- Tag Priorities: Prioritizes spawning vehicles with a certain tag
- Types Priorities: Prioritizes spawning vehicles of a certain type (tank, logi, etc)
- Additional Delay: Used to help ensure correct spawn order, prevent spawner stealing
- Authorized Vehicle Types: Hard limits what types of vehicle can use this spawner. Use with care! This aggressive method can lead to other vehicles having nowhere to spawn in some cases.
- Max Num Spawn - Limits the number of times this spawner can be activated. 0 <= no limit.
- Should only be used for single-use Forward Spawners (invasion game mode)
- Neutral Copy Vehicle - IGNORE THIS! Trying to hide this but it keeps showing up again >:(
- Specific Vehicle - Overrides generic spawner functionality and forces a particular vehicle to spawn, regardless of team. This should only be used for testing, or on layers like Jensen’s Range.
- Do not try to make Legacy layers this way, as this functionality is not fully supported by all game systems.
- Spawn Position Height Check - Starting height of the line trace from the spawner to the terrain. Reduce this value to fit under roofs and overhangs.
- Spawn Position Offset - Offset from ground to compensate for irregularities in terrain
- Team - Defines which team owns this vehicle
Vehicle Spawner Best Practices
- Ensuring vehicles always have a spawner: Make sure you have enough vehicle spawners! And ensure the type limits are not overly restrictive. It’s always good to have a few more spawners than you think will be needed.
- Most vehicles should use the Ground_Any spawner setting, which is the biggest and most generic.
- Bigger is better, as a small vehicle can spawn in a big spawner, but a big spawner cannot spawn in a small spawner.
- Remember - some generic faction setups, like Insurgents, will have a lot more vehicles than others, and may have unique spawner sizes (Minsk motorbikes). Take this into account when making a generic layer.
- Keeping Main Base spawner locations organized and predictable: You have less control over Main Base setup than before, now that spawners are generic. On their own, generic spawners have no idea how to keep a Main Base tidy and well organized. To compensate, you can use the preset Settings assets to group vehicle types in the Main Base. The provided Settings assets allow you some control over the locations of the following vehicle types:
- Logistics (note that small logis like technicals will still have to use the same big bounding boxes as big logies, in order to ensure ANY team’s truck can spawn here)
- Transport
- Light Armour (IFVs and APCs)
- MBT (Tanks)
Level Data
Data Table
Create a Data Table of type LevelEntry called “[YourMod]_LevelTable” in [YourMod]/Settings/Maps. Add a Row for each map in your mod.
- DisplayName - Player-facing name of map to display in UI
- Country Name - Geographical location of this map
- Lore - Description of this map, to appear in Loading Screen and Team Select UI
- Thumbnail - Image to appear in server browser
- Loading Screen_FHD - Loading Screen variant in 1920x1080
- Loading Screen_UHD - Loading Screen variant in 3840x2160
- Loading Screen_DQHD - Loading Screen variant in 5120x1440
- Map - Texture for minimap
- Loading Music - Music to play in loading screen
Data Asset
Create a Data Asset of type BP_SQLevel in [YourMod]/Maps/[YourMap] named “[YourMap]_LevelData”
- Biome - The environment type, determines what camouflage to use
- Theater of Operations - Region of the world where this map is set. Controls what factions are considered for voting here. Undefined is open to all.
- World - Base geo .umap
- Never Add to Rotation - Check this to ensure testing maps can only be accessed in builds via console commands
- Data Table - Select the Data Table you created earlier, and select the row corresponding to this Level.
Layer Data
Data Table
For each map in your mod, create a Data Table of struct SQLayerEntry named “[YourMod]_[YourMap]_LayerTable” in [YourMod]/Maps/[YourMap]/Gameplay_Layer_Data.
- The Row Name corresponds to the ID you’ll type in the console when switching layers with AdminChangeLayer
- The Display Name is how the name will be displayed in player-facing UI (no underscores)
Data Asset
For each Layer, create a Data Asset of type BP_SQLayer in [YourMod]/Maps/[YourMap]/Gameplay_Layer_Data.
For consistency, its name should match the Row Name in the Layer Table.
- Vehicle Count Modifiers - WIP, do not touch.
- Will eventually let you use vehicle tags to override vehicle counts of Faction Setups on a per-layer basis.
- Level ID - ROW NAME of the Map as it appears in the Levels data table.
- This text must match exactly!
- Worlds - Gameplay Layer .umap
- Team Configs - Structures defining each team. This is discussed in more detail below.
- Add an array element and select BP_SQLayerTeamConfig to make fields appear
- Game Mode - Select a Game Mode from GameModeTable.
- You can also select a custom game mode from a custom GameModeTable.
- Game Flags - Overrides and debug settings, useful for training layers.
- The main thing you’ll have to remember here is to disable Commander on small layers and to enable Fog Of War depending on the game mode.
- Used to live in World Settings.
- Data Table - Link to Layer Table and specific Row associated with this Layer
Team Setup: Working with Layer Team Configs
There are two ways to set up a layer:
Legacy
- Emulates the old paradigm, where each Layer always has the same two teams with the same vehicles.
- In v2, most layers use this format. Layers will be upgraded gradually in future updates as the system matures and community feedback is gathered.
To create a Legacy team:
- Assign a specific Faction Setup.
- Leave the fields above it blank.
- The faction setup you use should be custom made for a specific layer and live in its own Legacy folder.
- The Faction Setup Type MUST be Single Use.
Generic
- The future of Squad.
- Allows players to vote for their team’s faction at match start (or randomizes, depending on server setting)
To create a Generic team:
- Set one or more Allowed Alliances.
- This determines which factions will be offered for vote.
- Set desired Allowed Faction Setup types.
- This determines what unit types can be offered for vote on this team. You probably don’t want to put an armoured division on Logar. Or do you...
- Set required tags if desired.
- Leave Specific Faction Setup blank.
Faction
Say goodbye to the bloated Team Settings blueprints.
This represents a team, in the sense of US Army, Russian Ground Forces, Insurgents, etc.
Data Table
Create a Data Table of type SQ_FactionEntry called “[YourMod]_FactionTable” in [YourMod]/Settings/Factions. Add a Row for each Faction in your mod.
- Short Name: Abbreviation for your faction
- Display Name: Full name of this faction
- Description: Description text which appears in Team Select screen
- Rally Point Mesh: Biome-specific meshes for placed rally points. If playing in a biome that is not specified in this field, it will default to the mesh in the first index.
- UI_BannerOverlay: Biome-specific Team Image to use in Team Select menu. If playing in a biome that is not specified in this field, it will default to the image in the first index.
- UI_RoleGroupingStrategies: Defines categories for roles for use in UI radial menus, ie, specialist, fire support, etc. NOTE: Make sure your custom ammo crates use the generic BP_Radial_AmmoBox for their Interact UI, or the radial will not populate properly!
- UI_DeployableGroupingStrategies: Defines categories for deployables in radial deployment UI, ie, fortifications, emplacements, etc
- UI_ActionGroupingStrategies: WIP, not used in v2. Same as above but for Commander abilities.
Data Asset
Create a Data Asset of type BP_SQFaction called “[YourMod]_Faction_[YourFactionAbreviation]” in [YourMod]/Settings/Factions.
- Voice Tables: Voicelines for common soldiers and SLs
- Alliance: A way to group Factions which are friendly to one another. In this example, you would mark
- BLUFOR - NATO and similar factions
- REDFOR - Just Russia for now, as MEA has been moved to Indie
- INDEPENDENT - Factions which would make sense fighting just about anyone
- Theaters of Operations: Regions of the world where this faction is allowed to fight.. Consult this map for reference.
- Note: This array will probably be replaced by a Data Table in the near future, to allow for better mod compatibility and the creation of custom Theaters.
- Data - Select the Data Table and Row pertaining to this Faction
Faction Setup (Units)
Data Table
Create a Data Table using the SQFactionSetupEntry struct in [YourMod]/Settings/FactionSetups/[YourFaction]. This will contain individual entries for all Faction Setups in your mod.
Open it and add a row named for Faction Setup in your mod.
- Short Name: Abbreviation to appear in UI
- Display Name: Full name to appear in UI
- Description: Description of this Division and its history (not currently enabled)
- UI_UnitBadge: Custom UI unit badge for this unit (defaults to Faction badge if empty)
- UI_UNitBannerOverlay: Custom team overlay for use in Team Select UI.
- OuterFactionID: Name of parent Faction. Must match the ROW NAME in the Faction data table.
- UI_GroupingStrategies: Defines role categories for kits. Leave blank for now. Currently handled in the Factions table.
Data Asset
Now, create a Data Asset of type BP_SQFactionSetup
- Type: Represents the strategy and playstyle of this unit. Layers can filter allowed Faction Setups based on this tag.
- If this is a one-shot (legacy) Faction Setup, it MUST use the Single Use type.
- Tags: Generic tagging system, not currently in use.
- Can Use Commander Action Near Vehicle: Allows CO to use Commander abilities when in proximity to a friendly vehicle
- Has Buddy Rally: Enables Buddy Rally feature for this Faction Setup (but you don’t really want to use it, do you)
- Faction ID: Name of parent faction.
- MUST match the ROW NAME of the faction in the Factions Data Table
- Leave Squad Role: Role the player receives when leaving a squad (should be recruit)
- Roles: This array defines all kits available to this team, and the limits placed on them. Select BP_SQAvailabilityRole from the drop-down to reveal fields. Create an entry for each kit on the team, including those listed in Default kits.
- Setting: The Role data asset to use. Note: You should never reference the role data assets in the /Content/Gameplay folder. These are deprecated and will be removed soon. Roles should only live in a /Settings/Roles folder.
- Limited Count: Choose a limited count ruleset. Refer to vanilla Faction Setups to make sure yours is balanced correctly, as it is difficult to test these team and squad limits by yourself.
- Other Restrictions: Special requirements not covered by Limited Count, such as requiring the player to be the squad leader.
- Delay: Can be ignored. Generic Delay asset. Not typically used with Roles, but it can allow you to limit the availability of a role to later in the match, for example.
- Cost: Can be ignored. Generic Resource cost asset for use. Not yet implemented for Roles.
- Deployables: This array defines all FOB Deployables available to this team. Select BP_SQAvailabilityDeployable from the drop-down to reveal fields. Create an entry for each Deployable
- Setting: The Deployable Data Asset to use
- Cost: Cost in resources when placed
- Limited Count: Limits the number available per-team or per-FOB, mainly used for Emplacements
- Other Restrictions: Special restrictions to placement, especially important for radios
- Delay: Not used for Deployables
- Vehicles: This array defines all Vehicles available to the team. Select BP_SQAvailabilityVehicle from the dropdown to generate fields. Create an entry for each vehicle variant (NOT each individual vehicle).
- Setting: The data asset representing this vehicle
- Delay: Standardized delays depending on the vehicle. Controls both initial delay and respawn delay.
- Cost: Resource cost for spawning vehicle (not yet implemented)
- Limited Count: Number of vehicles available to the team.
- In this case, AlwaysPerTeam_03 allows up to 3 CAF logies to be alive at any given time, with infinite respawns.
- Actions: Commander abilities. Not yet implemented.
- Data: Select the Data Table and Row associated with this Faction Setup.
Note: While you can use any existing SQRestrictionRoleCount to set role limits in a Faction Setup, we do not recommend you attempt to create your own at the current time. This feature is still being fleshed out and developed. Documentation will be provided here when the Count Parameter data assets are ready for your use.
Vehicles
Data Table
Create a Data Table using the VehicleEntry struct in [YourMod]/Settings/Vehicles. This will contain individual entries for all vehicles in your mod.
Open it and add a row named for each vehicle in your mod.
- Display Name - Name which will appear in player UI during gameplay
- Details - Description text about the vehicle (not shown in UI yet in v2)
- Specifics - Stats and stuff (no UI to display this yet in v2)
- Icon - Icon which will represent this vehicle on the map
Data Asset
Now, create a Data Asset of type BP_SQVehicle.
- Vehicle Type - What battlefield role does this vehicle fill? Check tooltips if unsure of what category to choose.
- Tags
- An example use case of Vehicle Tags would be marking a CROWS MATV as “RWS”. On certain layers, the availability system might be configured to remove one “RWS” tagged vehicle and add one “low caliber” variant instead.
- Must include Class (Light, Heavy, Medium). This is used together with Type to determine ticket cost.
- One data asset can be used to group multiple variants together and automatically spawn the correct camouflage variant based on the level.
- Biome - Forest, Desert or Snow.
- If you only fill in one, it will be used for everything.
- If you fill in multiple variants for a single biome, a random variant will be chosen. Be careful, as that will increase memory usage during gameplay if there are multiple vehicle variants on the field at once.
- Vehicle - A reference to the vehicle blueprint to use for this biome.
- This field specifies the minimum spawner size which can accommodate this vehicle.
- Spawners are all generic now, and can spawn any vehicle that fits, allowing interchangeable Faction Setups.
- Finally, select the Data Table you created earlier, and select the row corresponding to this vehicle.
Deployables
The Deployables setup process is very similar to Vehicles, however, there is a distinction between Deployable Items (ammo bags, mines) and FOB Deployables (ammo crates, HMGs).
Create a folder structure within [YourMod]/Settings/Deployables with separate folders for FOB Deployables based on category, plus one for Items.
FOB Deployables
Data Table
First, create a Data Table using struct DeployableEntry. This one table will serve all deployables in your mod, just keep adding rows.
- Display Name - Name which will appear in player UI during gameplay
- Details - Description text about the deployable, not shown in UI yet in v2
- Tooltip - Text to show in UI tooltips, check Ammo crates and Habs for an example of how this should be used.
- Icon - Icon to show when placing this deployable through the Radial menu
- MapIcon - Icon to represent this deployable on the map, mainly used for Emplacements and Tech Structures
- Category - Category in which to include this in the Radial Deployment Menu
- TextKey0 - Appears in tooltips to prompt user input, check Ammo Crates for an example
Data Asset
Now, create a DataAsset of type BP_SQDeployableSettings within the folder which matches its category (Tech Structures, Emplacements, etc)
- Data - Select the Data Table and Row pertaining to this Deployable
- Type - What type of deployable is this
- Deployable Versions - Biome-specific models allow for different camouflage patterns for arid, forest, or snow. If only one biome variant is defined, it will be used for all biomes.
- Should Be Tracked By FOB - Should be true for objects with a limited deployment count, so that the FOB can keep track of them.
Deployable Items
Data Table
Create a Data Table of struct DeployableItemEntry in [YourMod]/Settings/Deployables. Add a row for each Deployable Item in your mod.
- Icon - The icon which will represent this item in the player’s inventory
Data Asset
Create a Data Asset of type BP_SQDeployableSettings within the folder which matches its category (Tech Structures, Emplacements, etc)
Setup is identical to FOB Deployables.
Roles
These represent individual soldier kits.
Note: There is some duplication necessary at this point. Role Categories are currently read from both Tags and the Role Group enum, by different systems. In the near future, these will be consolidated into Role Grouping Strategies, which live in the Faction and can be overridden in the Faction Setup. For the moment, ensure the correct Role category is defined in both fields.
Data Table
Create a Data Table of struct SQRoleEntry in [YourMod]/Settings/Roles/[YourFaction]. Add a row for each Kit/Role in your mod.
- Display Name - Name of Kit to appear in UI
- Details - Text description appearing in Role Select UI
- Specifics - Special instructions appearing in Role Select UI
- UI_Icon - Icon representing this kit in UI
- UI_Weapon - Icon representing primary weapon of this kit as shown in Squad list
Data Asset
Create a Data Asset of type BP_SQDeployableSettings within the folder which matches its category (Tech Structures, Emplacements, etc)
- Data - Reference to Data Table and Row set up above
- Vehicle Capability - What tier of vehicle seat this role can use
- Tags - Used to group and categorize roles across various game systems. Use vanilla roles for reference. This is also where you define a role’s category, ie, Fire Support, etc
- Role Versions - Biome specific camouflage variants. Define a specific character blueprint for each biome. If only one is defined, it will be used for all biomes.
- Inventory - Weapons in inventory by slot, including mag count, rearming rules, etc
- Role Specifics Action Name - Control input references used in Role Select description UI
- Soldier Menu Anim Montage - Soldier animation used in Picture-In-Picture Role Select UI
Actions
WIP. Commander actions will eventually be integrated into Layer Overhaul.
Advanced: Availability and Delay
This section will be updated later. You will not usually need to customize this stuff.
Game Modes
WIP. Game Modes will receive new functionality and capabilities later.
In the meantime, just remember to define your custom Game Modes in a new Data Table. See Content/Settings/Maps/GameModeTable for reference.
This is only used by the UI and systems like the staging phase timer. Referencing a different row in this table will not actually change a layer’s game mode. That must still be set in the layer umap itself, in World Settings.
Other stuff that’s changed
- In order for custom ammo crates to interface with the new Role Grouping Strategies system for sorting roles into categories (fire support, specialist, etc), you must set Interact UI to BP_Radial_Ammobox. This replaces the practice of making unique widgets for each faction, as they will now be auto-populated.
- Handheld Rally Point can now swap meshes to reflect the current map’s biome. This must be set on the handheld rally “weapon” blueprint.