No edit summary
Xarkanoth (talk | contribs)
No edit summary
 
Line 1: Line 1:
<div class="hf-relpage">
<div class="hf-relpage hf-reference-page hf-map-editing-page">
{{Release_page_header|title=Map Editing}}
{{Release_page_header|title=Map Editing}}
<div class="hf-relpage-body">
<div class="hf-relpage-body">
Line 11: Line 11:
}}
}}
<div class="hf-relpage-content">
<div class="hf-relpage-content">
<div class="hf-reference-hero">
<div class="hf-reference-kicker">Map Customisation</div>
<div class="hf-reference-title">Build custom experiences by editing existing maps and rotations.</div>
<div class="hf-reference-text">Use this page to prepare custom map rotations, read in-game positions, place props, test changes quickly, and package community maps for server use.</div>
</div>
<div class="hf-reference-facts">
<div class="hf-reference-fact"><span>Best Starting Point</span><code>CustomMap</code> and <code>CustomMapNaval</code> provide flat spaces for building.</div>
<div class="hf-reference-fact"><span>Useful Console Output</span><code>get</code> and <code>get details</code> help capture position and rotation values.</div>
<div class="hf-reference-fact"><span>Prop Reference</span>Use [[Spawnable Props]] when looking up object names for configuration files.</div>
</div>


{{Release_section
{{Release_section

Latest revision as of 19:48, 11 July 2026

Map Customisation
Build custom experiences by editing existing maps and rotations.
Use this page to prepare custom map rotations, read in-game positions, place props, test changes quickly, and package community maps for server use.
Best Starting PointCustomMap and CustomMapNaval provide flat spaces for building.
Useful Console Outputget and get details help capture position and rotation values.
Prop ReferenceUse Spawnable Props when looking up object names for configuration files.

Overview

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 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: CustomMap and CustomMapNaval. As you'll likely spend plenty of time setting up your new map, create a new rotation with an unlimited timer and open spawns, e.g.:

CustomMap
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
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 Spawnable Props for the full list. Place a decorative prop with:

objects_override <prop> <pX> <pY> <pZ> <rX> <rY> <rZ>
  • <prop> — Enum from Spawnable Props
  • <pX> <pY> <pZ> — Position (use get playerPosition)
  • <rX> <rY> <rZ> — Rotation (use get playerRotation)
CustomMap
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 Weapon
  • <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 Firearm
  • <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 Server Configuration 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 the #become-a-modder channel and click the button to get the Modder role to unlock the Modding Bench channels.