Creating Maps for Last Man Standing Coop
Official Guide for Creating Maps in LMS
Copyright 2005 Last Man Standing Team
Create a custom shortcut to Doom 3.
Then add this after “Doom3.exe” +r_mode 6 +seta com_allowConsole 1
+r_fullscreen 0 +vid_restart +editor +set fs_game “name of folder”
“name of folder” is the folder name located in Doom3/ So for example if the mod folder is named lms3 it would be +set fs_game lms3
Check out the new custom entities =) . Use LMS WEAPONS! for LMS Mod gametype maps. If you don't the weapons will not work. It is recommended that you use lms monsters over the default ones, though some of the lms ones have been modified. Also make sure to create at least 4 info_player_deathmatch entities.
Here is a good link with a lot of general tutorials
http://www.doom3world.org/phpbb2/viewtopic.php?t=3017
Spawning a monster (this is useful for creating waves of monsters):
Create a trigger once
Create a monster, put in the Key spawner 1 (or more)
select the trigger once, then the monster(s), hit ctrl K
Spawning endless monsters in a loop (thanks link):
Trigger once -> trigger timer -> monster entity with key spawner set to 1 or more
Respawning ammo (thanks link):
Add the key "respawn" and enter the time in seconds as the value for how often the ammo respawns
Making monsters respawn after they die in a continuous loop:
Basically just go trigger_once --> monster (spawner =1) --> trigger_relay --> back to the same monster
To have monsters spawn when you go through an area:
Create a trigger multiple (I think you need set delay and wait too) -> monster entity with key spawner set to 1 or more (thanks timbo)
If you want the monsters to que and appear when you exit the area:
trigger touch -> trigger multiple (wait, delay) -> monster entity with key spawner set to 1 or more
Prefixed as “prog_” maps are called progression maps if there is some goal or mission to the map where the player(s) has to progress from area to area with the aim of reaching a final area (and possibly completing a final task there).
All players start off at a start location,
if anyone dies before completing all objectives they will be
forced to spectate the other playing players. Anyone connecting to a
progressions map will automatically be added to the spectators and
cannot play until the map is restarted.
3.1 Telling the game it's a progression map:
For
all the gameplay dynamics in progression maps to work correctly we need
to make sure to tell the game code that the map is a progression map.
We do this by simply adding the key progression_map to the
worldspawn entity with a value other than 0 (typically 1). Setting this
key is required for all progression maps, not doing this will cause
undefined gameplay behavior.
3.2 Doors that close when all players are through:
You
often want to close doors to previous areas so you always know in what
area you have the players. The problem is how to make sure all players
have walked through the door before it closes. It can be accomplished
by using a trigger_once trigger to close the door. You must add the wait_all key with a value other than 0 (typically 1).
The trigger_once will not activate the doors until all
players playing are touching the trigger. Make sure the trigger_once is
large enough so all players easily can touch it. You should also
consider to add some kind of sign to the ground where the trigger_once is so players know where they must meet up before continuing.
Prefixed
as “kf_” player(s) are always in the same area on killfest maps. The
goal here is to survive as long as possible against hordes of monsters.
If a player dies he will respawn immediately or be forced to spectate
if it is in hardcore mode.
4.1 Giving items to players when spawning:
We often want players to receive one or more weapons and a backpack every time they spawn. This can easily be achieved in a few steps:
1.Create the weapons and backpacks you want the player(s) to receive when they spawn.
2.Hit esc to make sure no other entities are selected. Then select the info_player_deathmatch and then the backpack or other item and hit ctrl+k You will now notice that in your entity information for the info_player_deathmatch that the item is targeted.
Prefixed
as “def_” these maps are mainly based around the concept of having to
defend a base, whether it be for a certain amount time, to keep an
enemy out of a certain area, etc. Radiotower is an example of this because monsters are trying to break down the doors of the outpost and destroy the radiotower while your objective is to defend the outpost and holdout long enough for help to arrive.
6.1 Limiting the number of monsters active at the same time:
Doom
3 was designed to have at maximum 3-5 monsters in view and active at
the same time, anything more quickly lags down the computer due to
pathfinding, physics calculations and Inverse Kinematics evaluation.
Crowd control is therefore extremely important, especially in this mod
where spawners often are used.
Here's an example: Let's say you have 4 imp spawners, and that they spawn monsters at intervals of 10 seconds. The mapper expects 10 seconds to me more than enough time for the player(s) to kill the four monsters before a new wave is spawned to attack. Unfortunately the player isn't very good at aiming and ends running around so as not to get killed. After a minute of running around and successfully killing a few imps there are still 20 imps alive. If the player hasn't already died, the lag will make for a very unsatisfying experience.
6.2 Adding music to a map:
To add music to a map you need to create a speaker entity and enter the proper pathname in the speaker entity key according to where you placed your music file. In LMS the music resides in doom3/lms(version #)/sound/music. To have the speaker played globally and affected by the
music volume slider, make a key named "s_music" in the speaker entity and
set its value to 1.
To properly see how your maps work with the LMS code you need to create a server run the map like that. This is because LMS uses multiplayer code, not single player. The easiest server to set up is a listen server, which is where the player is actually the client and server at the same time. There might be better ways to do this, but this is what I do. As a note this is how to do it manually, you can always use the menu, but I find this way to be a bit quicker.
Create a new doom3 shortcut and after doom3.exe put in +set developer 1 +set fs_game Last Man Standing +exec server.cfg
As a note, where it says “Last Man Standing”, that is the actual folder name of the mod, not how it appears on the mod list (though they could be one in the same).
Then you must create a server.cfg file, by creating a txt document and renaming it appropriately, and make sure it is in the folder with the mod (though it might work to have it in the doom3 directory too, but just to be safe). As a note my sample server.cfg is included in the Documents folder, feel free to change it to suit your needs. It is, currently set to play kf_commandoattack only.
To set up a dedicated server, you can
use all this same information, but instead of creating a shortcut to
doom3.exe, create a shortcut to doom3ded.exe Also as a note there
are many more server options than I included.
8.2 Kaiser's Advice:
8.3 MercyKiller's Advice:
Author: | Date: |
Arne Olav Hallingstad | 28. January 2005 |
Michael Tomaino | 2. February 2005 |
Michael Tomaino | 5. February 2005 |
Michael Tomaino | 5. February 2005 |
Michael Tomaino | 8. February 2005 |
BurN | 10. Februrary 2005 |
Stephen Michael Youts | 24. March 2005 |
Michael Tomaino | 24. March 2005 |
Arne Olav hallingstad | 13. October 2005 |
Stephen Michael Youts | 27. October 2005 |
Michael Tomaino | 27. October 2005 |
Number: | Author: | Revision: |
1 | AO | Initial version |
2 | MT | Did some editing, spell checking, added Loading Mod into D3radiant, Spawning Techniques, Defense gameplay mode and optimization plus introduced the idea of having an advanced technique section Note: AO can you add in the difficultly and # of player variables and explain them a bit? Just to give mappers an idea of changes would be happening to their maps. |
3 | MT | Added Kaiser's advanced techniques. Moved “optimization” into advanced techniques and renamed it as “Calimer's advice” |
4 | MT | Added “Testing Your Maps” section |
5 | MT | Added “Legal” Removed the server.cfg from this manual, it was too annoying to keep it on one page. Did some other small editing to the spacing to make it hopefully look neater and other small edits. |
6 | BN | Formatted the manual, changed the colors and converted it into a webpage and also gave Revision History its own section. |
7 | SMY | Added my advice on advanced mapping techniques. | 8 | MT | Changed version number and added in some mapping techniques and other small stuff. |
9 | AO | Added section 6.2 |
10 | SMY | Cleaned up some very small stuff. |
11 | MT | Merged AO's and Mercy's changes. Cleaned up some language and added more info about adding music to maps. |
All
material in this release is not to be used in other works without the
expressed written permission of the Last Man Standing team. For
more information please consult the included license.