Difference between revisions of "Map Editing"

From Holdfast: Nations At War
Jump to navigation Jump to search
 
Line 1: Line 1:
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 {{ll|Server Configuration#Map_Rotations|Map Rotations}} in the configuration file.
+
{{DISPLAYTITLE:Map Editing • Custom Maps via Config}}
 +
{{ContentTemplateModernInline
 +
| welcome            = [[File:Forum Logo.png|link=|left|alt=Map Editing]]
 +
| blurb              = Create custom maps via config—add props, change spawns, tweak weapons & classes, and more. All driven by {{ll|Server Configuration#Map_Rotations|Map Rotations}}.
 +
| sections_title    = On this page
 +
| sections_content  =
 +
* [[#Starting Maps|Starting Maps]]
 +
* [[#Positioning|Positioning]]
 +
* [[#Placing Props|Placing Props]]
 +
** [[#Decorative Props|Decorative Props]]
 +
** [[#Interactable Props|Interactable Props]]
 +
*** [[#Weapon Racks|Weapon Racks]]
 +
*** [[#Firearm Ammoboxes|Firearm Ammoboxes]]
 +
* [[#Polishing Up|Polishing Up]]
 +
* [[#Community Maps|Community Maps]]
  
= Starting Maps =
+
| featured_title    = Map Editing
As well as building upon the normal {{ll|Server Configuration#Maps|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 {{ll|Server Configuration#Map_Rotations|rotation}} with an unlimited timer and open spawns, e.g.:
+
| featured_content  = {{:{{FULLPAGENAME}}/Body}}
 
+
| image_content      =
[[File:Holdfast_CustomMap.jpg|right|600px|CustomMap]]
+
| layout            = auto
 
+
| left_width        = 320px
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>!map_rotation start
+
| aside_width        = 320px
map_name CustomMap
+
  | gap                = 0.5rem
game_mode ArmyBattlefield
+
  | show_toc          = no
round_time_minutes -1
+
  | show_section_edit = yes
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</nowiki></pre>
 
 
 
To refresh changes to your map without restarting your server, issue the following (substitute the correct rotation index):
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>rc fileReloader serverConfigFile
 
rc mapRotation 1</nowiki></pre>
 
 
 
<div style="clear:both;"></div>
 
 
 
= 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 <code>F1</code> and type <code>get</code>.
 
 
 
[[File:Holdfast_Console_Get.png|left|350px|The output of <code>get</code>]]
 
 
 
This prints your position and rotation:
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>playerPosition => (15.3, 16.8, 146.9)
 
playerRotation => (0.0, 218.0, 0.0)</nowiki></pre>
 
 
 
* '''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 <code>(0.0, 38.0, 0.0)</code> (218 − 180).
 
 
 
As of [[Game_Version_0.3X#0.35|0.35]], <code>get details</code> also copies position & rotation to your clipboard for easy pasting.
 
 
 
<div style="clear:both;"></div>
 
 
 
= Placing Props =
 
Props range from simple decor (just position/rotation) to interactables (with extra parameters).
 
 
 
== Decorative Props ==
 
See {{ll|Spawnable_Props|Spawnable Props}} for the full list. Place a decorative prop with:
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>objects_override <prop> <pX> <pY> <pZ> <rX> <rY> <rZ></nowiki></pre>
 
 
 
: '''&lt;prop&gt;''' — Enum from {{ll|Spawnable_Props|Spawnable Props}}  
 
: '''&lt;pX&gt; &lt;pY&gt; &lt;pZ&gt;''' — Position (use <code>get playerPosition</code>) 
 
: '''&lt;rX&gt; &lt;rY&gt; &lt;rZ&gt;''' — Rotation (use <code>get playerRotation</code>)
 
 
 
[[File:Holdfast_CustomMap_TargetDummy.jpg|right|600px|CustomMap]]
 
 
 
Example—add a Target Dummy at the example coordinates:
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>!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</nowiki></pre>
 
 
 
== Interactable Props ==
 
These require extra arguments.
 
 
 
=== Weapon Racks ===
 
Players can hold <kbd>E</kbd> to take weapons from a rack (limited supply).
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>objects_override WeaponRack <Object Position> <Object Rotation> <Weapon> <Number Of Weapons In Rack></nowiki></pre>
 
 
 
: '''&lt;Object Position&gt;''' — <code>x y z</code> (use <code>get playerPosition</code>)  
 
: '''&lt;Object Rotation&gt;''' — <code>x y z</code> (use <code>get playerRotation</code>) 
 
: '''&lt;Weapon&gt;''' — Enum from {{ll|Server_Configuration_Enums#Weapon|Weapon}} 
 
: '''&lt;Number Of Weapons In Rack&gt;''' — <code>0–255</code>
 
 
 
'''Example'''
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki># 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</nowiki></pre>
 
Place this between <code>!map_rotation start</code> and <code>!map_rotation end</code>.
 
 
 
=== Firearm Ammoboxes ===
 
Customisable ammo boxes for RP/events. Players replenish ammo on use.
 
 
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki>objects_override firearmammobox <Object Position> <Object Rotation> <Firearm> <Maximum Interactions Until Depletion> <Ammo Given> <Maximum Interactions Allowed Per Player></nowiki></pre>
 
 
 
: '''&lt;Object Position&gt;''' — <code>x y z</code>  
 
: '''&lt;Object Rotation&gt;''' — <code>x y z</code> 
 
: '''&lt;Firearm&gt;''' — Enum from {{ll|Server_Configuration_Enums#Firearm|Firearm}} 
 
: '''&lt;Maximum Interactions Until Depletion&gt;''' — <code>0–255</code> total uses 
 
: '''&lt;Ammo Given&gt;''' — <code>0–255</code> rounds per use  
 
: '''&lt;Maximum Interactions Allowed Per Player&gt;''' — <code>0–255</code> per-player cap
 
 
 
'''Example'''
 
<pre style="background:#111827;color:#e5e7eb;padding:.8em 1em;border-radius:.6em;overflow:auto;line-height:1.45;font-size:.9em;"><nowiki># 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</nowiki></pre>
 
Place this between <code>!map_rotation start</code> and <code>!map_rotation end</code>.
 
 
 
<div style="clear:both;"></div>
 
 
 
= Polishing Up =
 
Once your map is laid out, adjust class limits, spawns, and other settings as usual via the {{ll|Server_Configuration|Server Configuration}} guide.
 
 
 
<div style="clear:both;"></div>
 
 
 
= Community Maps =
 
The Holdfast modding community shares custom map configs and assists new modders. Join via the official Discord:
 
 
 
[https://discord.gg/holdfastgame Holdfast Official Discord]
 
 
 
Once joined, go to <code>#getting-started</code> and react to the pinned message to unlock the Modding Bench channels.
 

Latest revision as of 17:19, 23 September 2025


Map Editing

Create custom maps via config—add props, change spawns, tweak weapons & classes, and more. All driven by Template:Ll.

Navigation menu