Difference between revisions of "Map Editing"
m (→Community Maps) |
(Removed console links, fixed phrasing, removed link to old workshop discord) |
||
Line 60: | Line 60: | ||
:'''<pX> <pY> <pZ>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the prop will be spawned onto the map using x, y, and z coordinates | :'''<pX> <pY> <pZ>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the prop will be spawned onto the map using x, y, and z coordinates | ||
− | :: Enter <code>get playerPosition</code> into the | + | :: Enter <code>get playerPosition</code> into the console to display your character's position. |
:'''<rX> <rY> <rZ>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The rotation in degrees of the prop around the x, y, and z axes. | :'''<rX> <rY> <rZ>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The rotation in degrees of the prop around the x, y, and z axes. | ||
− | :: Enter <code>get playerRotation</code> into the | + | :: Enter <code>get playerRotation</code> into the console to display your character's position. |
[[File:Holdfast_CustomMap_TargetDummy.jpg|right|600px|CustomMap]] | [[File:Holdfast_CustomMap_TargetDummy.jpg|right|600px|CustomMap]] | ||
Line 99: | Line 99: | ||
:'''<Object Position>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the Weapon Rack will be spawned onto the map using x, y, and z coordinates | :'''<Object Position>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the Weapon Rack will be spawned onto the map using x, y, and z coordinates | ||
− | :: Enter <code>get playerPosition</code> into the | + | :: Enter <code>get playerPosition</code> into the console to display your character's position. |
:'''<Object Rotation>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The orientation that the Weapon Rack will be rotated when spawned onto the map | :'''<Object Rotation>''' A set of float values in the format x y z = 0.0 0.0 0.0 - The orientation that the Weapon Rack will be rotated when spawned onto the map | ||
− | :: Enter <code>get playerRotation</code> into the | + | :: Enter <code>get playerRotation</code> into the console to display your character's rotation. |
: '''<[[Server_Configuration_Enums#Weapon|Weapon]]>''' The type of weapon that will be on the weapon rack | : '''<[[Server_Configuration_Enums#Weapon|Weapon]]>''' The type of weapon that will be on the weapon rack | ||
Line 149: | Line 149: | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
=Polishing Up= | =Polishing Up= | ||
− | Once you have the map laid out how you want, you can edit the class limits, spawn locations, and other settings as usual by following the instructions in [[Server_Configuration|Server Configuration]]. | + | Once you have the map laid out how you want, you can edit the class limits, spawn locations, and other settings as usual by following the instructions in the [[Server_Configuration|Server Configuration]] guide. |
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
=Community Maps= | =Community Maps= | ||
− | + | The Holdfast modding community is dedicated to creating custom map configs and modifications, as well as supporting and assisting modders. You can join it via the official discord with the link below: | |
+ | |||
+ | [https://discord.gg/holdfastgame Holdfast Official Discord] | ||
− | + | Once joined, go to the <code>#getting-started</code> channel and react to the pinned message to get access to the Modding Bench channels. |
Latest revision as of 01:01, 7 August 2022
Holdfast allows server owners to customise existing maps to create a whole new experience. You can add props, change spawns, weapon setup, class limits, etc. until you have created something entirely new. Map customisation is defined using Map Rotations in the configuration file.
Starting Maps
As well as building upon the normal maps, there are two flat and empty maps that are perfect to let your imagination run wild: CutomMap and CustomMapNaval. As you'll want to spend plenty of time setting up your new map, create a new rotation with an unlimited timer and open spawns such as the one below:
!map_rotation start map_name CustomMap game_mode ArmyBattlefield round_time_minutes -1 reinforcements_per_faction 9000 wave_spawn_time_seconds 1 max_player_respawns -1 faction_balancing false allow_midround_spawning true allow_faction_switching true allow_spectating true minimum_players -1 maximum_players 150 time_hour 8 time_dynamic false friendly_fire true weather_preset calm weather_dynamic false game_type hardcore !map_rotation end
To refresh changes to your map without restarting your server, issue the following commands in the console (substituting the correct index for your map rotation):
rc fileReloader serverConfigFile rc mapRotation 1
Positioning
Before placing a prop, you need to work out where you want it to go in the map, and what direction you want it to face. The easiest way to do this is to walk where you want the object in game, open your console using F1
and type get
into the console.
Note that this gives you two sets of numbers:
playerPosition => (15.3, 16.8, 146.9) playerRotation => (0.0, 218.0, 0.0)
Position determines the (X,Y,Z) position in 3D space that the object is at. Positive X is North, positive Y is up, and positive Z is West. Rotation is measured in degrees around the (X,Y,Z) axes - this means that you'll be using the Y rotation most of all to turn objects, whereas the X and Z axes are used to tilt. As an example, to face the opposite direction to the above co-ordinates, you would want to set a rotation of (0.0, 38.0, 0.0), a full 180 degrees round on the Y axis.
Since Version 0.35, the command get details
will automatically copy position and rotation to the clipboard, to make it easier to transfer into configurations.
Placing Props
Props come in all shapes and sizes, from an invisible patch of air that generates butterflies to an entire fort! Some allow interaction, and some are just for show. Decorative props need only the position and rotation to be specified, whereas more complex props with interactions require additional options to be useful.
Decorative Props
You can see a list of all of the available props on the Spawnable Props page. To place these props, you add a line like this to the map rotation:
objects_override <prop> <pX> <pY> <pZ> <rX> <rY> <rZ>
- <prop> The enum of the prop listed on the Spawnable Props page.
- <pX> <pY> <pZ> A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the prop will be spawned onto the map using x, y, and z coordinates
- Enter
get playerPosition
into the console to display your character's position.
- Enter
- <rX> <rY> <rZ> A set of float values in the format x y z = 0.0 0.0 0.0 - The rotation in degrees of the prop around the x, y, and z axes.
- Enter
get playerRotation
into the console to display your character's position.
- Enter
For example, to add a Target Dummy to the position identified above, the rotation would become:
!map_rotation start map_name CustomMap game_mode ArmyBattlefield round_time_minutes -1 reinforcements_per_faction 9000 wave_spawn_time_seconds 1 max_player_respawns -1 faction_balancing false allow_midround_spawning true allow_faction_switching true allow_spectating true minimum_players -1 maximum_players 150 time_hour 8 time_dynamic false friendly_fire true weather_preset calm weather_dynamic false game_type hardcore objects_override TargetDummy 15.3 16.8 146.9 0.0 218.0 0.0 !map_rotation end
Interactable Props
These props require additional options to define how they behave in the map.
Weapon Racks
Weapon Racks are interactable objects that can hold specific amounts of weapons. Players can interact with a weapon rack by holding 'E' to take a weapon from the rack and add it to their character's inventory. Taking a weapon depletes the amount left on the rack allowing for a limited supply of weapons if the server host wishes.
objects_override WeaponRack <Object Position> <Object Rotation> <Weapon> <Number Of Weapons In Rack>
- <Object Position> A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the Weapon Rack will be spawned onto the map using x, y, and z coordinates
- Enter
get playerPosition
into the console to display your character's position.
- Enter
- <Object Rotation> A set of float values in the format x y z = 0.0 0.0 0.0 - The orientation that the Weapon Rack will be rotated when spawned onto the map
- Enter
get playerRotation
into the console to display your character's rotation.
- Enter
- <Weapon> The type of weapon that will be on the weapon rack
- <Number Of Weapons In Rack> An integer value between 0 and 255 - The number of weapons that can be obtained from the rack before its depleted
Example
Spawn a weapon rack at position (1 2 3) with rotation (7 8 9) with 4 rifles on it:
# Override Commands (This is a comment and will be ignored by the game) objects_override WeaponRack 1 2 3 7 8 9 Rifle_Pattern1800Infantry 4
To use this command, it must be added after !map_rotation start
and before !map_rotation end
.
Firearm Ammoboxes
Customizable Ammobox for role-play and custom events. Through this, players can replenish their ammunition.
objects_override firearmammobox <Object Position> <Object Rotation> <Firearm> <Maximum Interactions Until Depletion> <Ammo Given> <Maximum Interactions Allowed Per Player>
- <Object Position> A set of float values in the format x y z = 0.0 0.0 0.0 - The location of where the firearmammobox will be spawned onto the map using x, y, and z coordinates
- Enter
get playerPosition
into the console ingame to display your character's position.
- Enter
- <Object Rotation> A set of float values in the format x y z = 0.0 0.0 0.0 - The orientation that the firearmammobox will be rotated when spawned onto the map
- Enter
get playerRotation
into the console ingame to display your character's rotation.
- Enter
- <Firearm> Which Firearm will the ammunition box replenish
- <Maximum Interactions Until Depletion> An integer value between 0 and 255 - The amount of times players can retrieve ammunition from the box
- <Ammo Given> An integer value between 0 and 255 - The amount ammunition given to a player on each interaction
- <Maximum Interactions Allowed Per Player> An integer value between 0 and 255 - The Maximum times a specific player may retrieve ammunition from the box
- Useful to prevent a player from hogging all the ammo
Example
Spawn a firearm ammobox at position (1 2 3) with rotation (7 8 9) with 20 total rounds depleted at a rate of 2 rounds per usage.
# Override Commands (This is a comment and will be ignored by the game) objects_override firearmammobox 1 2 3 7 8 9 20 2 1
To use this command, it must be added after !map_rotation start
and before !map_rotation end
.
Polishing Up
Once you have the map laid out how you want, you can edit the class limits, spawn locations, and other settings as usual by following the instructions in the Server Configuration guide.
Community Maps
The Holdfast modding community is dedicated to creating custom map configs and modifications, as well as supporting and assisting modders. You can join it via the official discord with the link below:
Once joined, go to the #getting-started
channel and react to the pinned message to get access to the Modding Bench channels.