Difference between revisions of "Map Editing/Body"

From Holdfast: Nations At War
Jump to navigation Jump to search
(Created page with "Holdfast allows server owners to customise existing maps to create a whole new experience. You can add props, change spawns, weapon setup, class limits, and more until you’v...")
 
 
(One intermediate revision by the same user not shown)
(No difference)

Latest revision as of 17:18, 23 September 2025

Holdfast allows server owners to customise existing maps to create a whole new experience. You can add props, change spawns, weapon setup, class limits, and more until you’ve created something entirely new. Map customisation is defined using Template:Ll in the configuration file.

Starting Maps

As well as building upon the normal Template:Ll, there are two flat and empty maps that are perfect to let your imagination run wild: CustomMap and CustomMapNaval. As you’ll likely spend plenty of time setting up your new map, create a new Template:Ll with an unlimited timer and open spawns, e.g.:

CustomMap
!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 (substitute the correct rotation index):

rc fileReloader serverConfigFile
rc mapRotation 1

Positioning

Before placing a prop, decide where it goes and which way it faces. Stand where you want it in-game, open the console with F1 and type get.

The output of get

This prints your position and rotation:

playerPosition => (15.3, 16.8, 146.9)
playerRotation => (0.0, 218.0, 0.0)
  • Position is (X, Y, Z). Positive X is North, positive Y is up, positive Z is West.
  • Rotation is degrees around (X, Y, Z). You’ll use Y most to turn objects; X and Z tilt.
  • To face the opposite direction of the example above, use (0.0, 38.0, 0.0) (218 − 180).

As of 0.35, get details also copies position & rotation to your clipboard for easy pasting.

Placing Props

Props range from simple decor (just position/rotation) to interactables (with extra parameters).

Decorative Props

See Template:Ll for the full list. Place a decorative prop with:

objects_override <prop> <pX> <pY> <pZ> <rX> <rY> <rZ>
<prop> — Enum from Template:Ll
<pX> <pY> <pZ> — Position (use get playerPosition)
<rX> <rY> <rZ> — Rotation (use get playerRotation)
CustomMap

Example—add a Target Dummy at the example coordinates:

!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 require extra arguments.

Weapon Racks

Players can hold E to take weapons from a rack (limited supply).

objects_override WeaponRack <Object Position> <Object Rotation> <Weapon> <Number Of Weapons In Rack>
<Object Position>x y z (use get playerPosition)
<Object Rotation>x y z (use get playerRotation)
<Weapon> — Enum from Template:Ll
<Number Of Weapons In Rack>0–255

Example

# 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

Place this between !map_rotation start and !map_rotation end.

Firearm Ammoboxes

Customisable ammo boxes for RP/events. Players replenish ammo on use.

objects_override firearmammobox <Object Position> <Object Rotation> <Firearm> <Maximum Interactions Until Depletion> <Ammo Given> <Maximum Interactions Allowed Per Player>
<Object Position>x y z
<Object Rotation>x y z
<Firearm> — Enum from Template:Ll
<Maximum Interactions Until Depletion>0–255 total uses
<Ammo Given>0–255 rounds per use
<Maximum Interactions Allowed Per Player>0–255 per-player cap

Example

# Override Commands (This is a comment and will be ignored by the game)
objects_override firearmammobox 1 2 3 7 8 9 Rifle_Pattern1800Infantry 20 2 1

Place this between !map_rotation start and !map_rotation end.

Polishing Up

Once your map is laid out, adjust class limits, spawns, and other settings as usual via the Template:Ll guide.

Community Maps

The Holdfast modding community shares custom map configs and assists new modders. Join via the official Discord:

Holdfast Official Discord

Once joined, go to #getting-started and react to the pinned message to unlock the Modding Bench channels.