NOTE: this is an old version of this guide. Find the most up-to-date one here:
http://ttt.badking.net/rearm-guide
This is a quick guide on how to use the GMod Sandbox STOOL (scripted tool thing) to place spawnpoints and then play with them in TTT. This is useful for making a map ready for balanced gameplay in TTT, when the map was not made for the gamemode.
In this guide I will show the basic process by placing some guns and stuff on
de_dust. This is of course a CS:S map that does not have any weapons, no ammo, and really boring player spawn locations. Let's change that.
The guide may look a bit long, but there's a lot of details that are pretty common sense if you've used the GMod sandbox stuff before, so you can skim over those.
Here we go:
Setting up TTTFirst thing you'll want to do is installing the latest version of TTT in your GMod. The process is simple: download the .zip and extract it into \garrysmod\garrysmod\gamemodes\, so you end up with a \gamemodes\terrortown\ directory. Make sure you don't put it in the \addons\ or \lua\ directories even though they sound like good places.
You can find the newest version in the newest post in
the release thread.
Make sure you are using v201209b or newer, because earlier versions had issues with exporting.
Setting up the toolIn the \terrortown\ directory that was just created, there will be an \addons\ subdirectory. There's a short readme file there, and a \tttweapons\ dir. Copy that "tttweapons" directory, and go back to your \garrysmod\ directory. From there, go into \garrysmod\addons\, and paste. You should now have a \garrysmod\addons\tttweapons\ directory.
Getting startedStart up GMod. Open the new singleplayer game menu, and select the map you want to create spawnpoints on. Make sure the game is set to the "sandbox" gamemode. Start the game.
Once you're on the map in sandbox, you can start placing some spawns. First you should know that any existing weapons (for example on HL2DM maps) will be removed by TTT, so you can either use the Remover to do the same, or just ignore them.
For the most part, you should try not changing anything about the map. If, for example, you push over a barrel, and then place a gun on the lying barrel, things could get weird. The gun will be spawned by TTT in that position, but the barrel won't be lying there. It will be in its original place. You have to act a bit like the world is in a frozen state. In fact, you could freeze physics entities to prevent making mistakes. Using noclip to get around is useful as well.
Anyway, let's move on.
Placing weapons and ammoOpen the sandbox Spawn Menu, default is Q I believe, and you should see a long list of tools on the right side. At the bottom, there should be a "TTT Weapon Placer" entry, if the addon was installed correctly. Select it and leave the spawn menu.
Now when you have the tool gun out and you press the Context Menu key (default C), you should see
a menu like this. The list contains the different entities you can place, and we'll get to the other options later.
For now, just select an ammo type as shown on the screenshot. Close the context menu (ie. let go of C) and click on the ground a few times. You should see
ammo boxes appear like this.
[EDIT: since I wrote this the tool menu has changed a bit, though the basic process is the same. The biggest difference is that you spawn ammo by selecting the matching weapon and right clicking.]Open the context menu again, and select the appropriate weapon for the ammo. In my case, as you can see in the screenshot, that was the revolver/deagle. Again, just click somewhere
to spawn the weapon.
Entities you've placed can be
repositioned using the physgun or other tools.
Place some more weapons and ammo if you want. Some entities that could be useful are the random weapon and the random ammo. These will turn into a random gun and ammo box respectively. Place them like any other entity, but
make sure there is some room around them. The gun/ammo it turns into might be larger than the dummy model you see.
You can safely freeze the entities, it won't affect the export. Ammo spawned there will just fall to the ground in-game.
Once you've placed all the weapons/ammo you want, you could just export your script and be done with it. For this guide however, I'm going to place player spawnpoints as well.
Placing player spawnpointsThe process is very similar to weapons and ammo. Just select the "ttt_playerspawn" entity from the list and click somewhere. A green guy should appear. You can move him around with the physgun, turn him so players spawned there face a certain way, etc.
There are some extra things to watch out for. There must be enough room around the spawn for a player to spawn there. The dummy entity helps you with that, because it will collide as if it is a big box of just the right size. So you can't place two dummies over each other in a way that will cause telefrags. You should also make sure the dummy stands upright. I don't really know what happens when it's lying facedown, but it's probably not good.
I went nuts
and placed 32 spawnpoints. Most of them have a bunch of room around them so the game can spawn more players there if necessary. I recommend you put a lot of spawns in, because it's not a lot of effort and can help a lot with larger servers.
You can use the console command
report_entities to get a list of all the entities in the map and how many of each there are. Look for "ttt_playerspawn" in that list, and you have an easy count of how many spawnpoints you've placed so far. You can do the same for weapons and ammo.
In your Context Menu, you might notice the
Replace existing player spawnpoints checkbox. When enabled, TTT will remove all existing spawnpoint entities before creating the one's you've placed. This lets you completely override the spawnpoints in the map. Sometimes, this is good, for example with CS:S maps that have boring spawns. Sometimes, it's not needed, for example for ZM maps that already have good spawns. When the checkbox is unchecked, your spawnpoints will just be added, meaning the map will simply have extra spawn locations besides the ones the mapper made.
If you're a mapper, you might wonder about the name "ttt_playerspawn". This is an entity that does not exist in TTT. When importing, that name will be converted to info_player_deathmatch. The reason we need the fake entity is because info_player_deathmatch also exists in sandbox (unlike the weapons) which causes issues.
ExportingThe time-consuming part is over now, all you need to do to export is pressing the Export button.
You should see a line in the chat like:
169 placements saved to /garrysmod/data/ttt/maps/de_dust_ttt.txt
I went nuts and placed 169 entities. You might have less. As you can see it has exported successfully to a text file. We can now test it in TTT.
Keep in mind you are subject to Source's entity limits like a mapper is. If you place a thousand shotguns, you will get errors when TTT loads the script.
If there is an existing file with the same name, you will be asked to either confirm the overwriting of it, or put in a different name.
Testing in TTTGarry's Mod only lets addons save files under the /garrysmod/data/ directory, so that's where our exported weapon script can be found. Specifically, in /garrysmod/data/ttt/maps/. In my case, there is a file called "de_dust_ttt.txt" there.
Copy the script to your /garrysmod/maps/ directory. TTT will look there for scripts with a "mapname.ttt.txt" filename when it loads the map and will try to import them.
Assuming you have TTT installed correctly, you should see "terrortown" in the list of gamemodes in the new game menu. Select your map, in my case de_dust, and select terrortown as base gamemode (leave "override" empty).
Once the map loads, it will go into "waiting for players" mode. Open the console and type the following commands:
ttt_debug_preventwin 1
ttt_minimum_players 1
The round will now start, and will not end. As soon as the round starts, all entities should spawn properly and you should spawn as a terrorist. Walk around and see if your weapons came out okay. In the console, you should see something similar to:
Weapon/ammo placement script found, attempting import...
Reading settings from script...
Removing existing player spawns
Removing existing weapons/ammo
Importing entities...
Spawned 169 weapon/ammo ents found in script.
Weapon placement script import successful!
In my case, all 169 entities were imported successfully. Using the command "report_entities", I can verify that there are 32 info_player_deathmatch entities (the imported version of the dummy ttt_playerspawn), and all the weapon and item entities I placed.
ImportingWhen using the tool in sandbox mode, you may have noticed the Import button. You can use this to load an existing .txt from your /garrysmod/data/ttt/maps/ directory and create all the entities in that script. You can use this to modify someone else's script, by removing or adding entities and exporting again.
Manual editingIt is possible to manually edit the exported textfile, for example to easily change all smoke grenades to fire grenades. You can open the file with any text editor.
WARNING: do *not* save the script with "tabs to spaces" conversion enabled in the editor. The tabs are required for TTT to be able to parse the script. Plain and simple Notepad will never do this, so it's a safe choice if you're unsure.
An advanced use is to add automatic ammo spawning to random weapons you have placed. The process is pretty straightforward. Find a random weapon line, like this one:
ttt_random_weapon -1107.0369 2109.9438 194.0788 1.843 132.992 -92.726
Go to the end of the line, press TAB (again, must be a "real" tab, not a bunch of spaces), and write "auto_ammo 2". That 2 determines how many ammo boxes it should create, so make it 4 if you want four, etc. It should now look like this:
ttt_random_weapon -1107.0369 2109.9438 194.0788 1.843 132.992 -92.726 auto_ammo 2
Save the script, load up TTT, and that random weapon will now be spawned with two boxes of the right ammo.
If you run into issues, or I've forgotten to explain something, drop a post here.