09-14-2007, 12:55 AM | #1 |
Religious Stamp Machine
Retired FF Staff
|
How to Make FF Maps
This is a step-by-step way to set up Hammer and put Fortress Forever entities in your map. The first part of this is setting up the Options in your hammer to have a 'Fortress Forever' game type.
Intro: Setting Up Hammer for FF 1. Boot up hammer for another mod (HL2, HL2:DM, CS, etc.) and go to Tools -> Options. 2. Click on the 'Game Configurations' tab, and next to the drop-down menu on the right, it should say 'Add'. Click that bad boy, and create a new entry named 'Fortress Forever' or 'FF' or 'Gazelle Pudding' or whatever you want. 3. There should be one .fgd file you need: fortressforever.fgd It should be found in the \Steam\SteamApps\SourceMods\fortressforever\ directory, so navigate there and select it. 4. The 'Default Point Entity' and 'Default Brush Entity' are exactly what they sound like. When you create an entity, this is what it will be by default. You'll probably want the 'Default Point Entity' to either be 'prop_static' or 'info_ff_script'. For the 'Default Solid Entity', go for 'func_detail'. 5. Time to set some directories. The Game Executable Directory should be: \Steam\SteamApps\SourceMods\fortressforever\ The Mod Directory should be: \Steam\SteamApps\SourceMods\fortressforever\ff\ The Game Directory should be: \Steam\SteamApps\SourceMods\fortressforever\ And finally, your RMF directory should be: \Steam\SteamApps\SourceMods\fortressforever\ff\map s\ 6. Hit OK, restart Hammer and you should be good to go for starting your first FF map! Before creating FF entities, you need to have two things:
1. Basic Entities You will probably want some basic FF entities for your map. These include Spawns, Resupply Bags, Armor, Health Kits and Grenade Bags. This section will teach you how to get all of these working in your map. These will not work unless you declare a game type (see section 4).1. Spawns & Spawn Doors To get spawn points working correctly, place info_ff_teamspawn point-based entities where you would like players to spawn. Once you have these entities, enter a name for each one on each team. For example, all of the spawn points you want the Green team to spawn at would be named greenspawn. Spawn points for red would each be named redspawn, for blue bluespawn and for yellow yellowspawn. To get one-team-only doors working, create a trigger_ff_script brush-based entity where you want the player's touch to activate the door, and give it the same outputs you'd give a trigger_multiple door trigger. For the naming, name it colorrespawndoor. For example, if you want the Green team to be able to open the door, name it greenrespawndoor. Door triggers for other team doors would be redrespawndoor, bluerespawndoor and yellowrespawndoor. It is important that when you name your entities, you make sure they are all lowercase. Hammer will try to automatically make the first letter uppercase, but the entities won't work right. However you do it, make sure the text is all lowercase. 2. Resupply Goodies For the next four items (Resupply bags, Armor, Health, and Grenades) you start the same way: create a point-based info_ff_script entity. Place it where you want the goodie to be. Change its name to one of the following things to get it to become what you want. Again, it is important that when you name your entities, you make sure they are all lowercase. a. Resupply bags b. Armor Kits c. Health Kits d. Grenade Packs e. Big Packs 2. Spawn Turrets Spawn turrets are those pesky turrets that pop down when an enemy enters your spawn and kills them. They can only be on the ceiling. To get these to work, create a point-based ff_miniturret entity.Depending on the team you want it to defend for, name it respawnturret_color. For example, if I want to put spawn turrets in the Green team's spawn to shoot red, blue, or yellow team members who enter the green spawn, I would name them each respawnturret_green. The same rule applies for all four colors. Remember, it is important that when you name your entities, you make sure they are all lowercase. Next, you open your map's lua file (the second of the two files you need open), and enter this line of text on a blank line at the top: IncludeScript("base_respawnturret"); This makes the turrets you created in Hammer work. Save your map's lua file.3. Locations Locations are those areas that appear on the bottom left of your screen, showing you where you are. When you build your map, you customize these locations by creating brush-based entities wherever players enter or exit each area. For example, if I have a map that is just two rooms with a doorway connecting them, I would want players who pass through the doorway to see that they are either in "North Room" or "South Room".I will teach you how to do this using this simple example, but the rule is the same for whether you have 1 entrance to your room, or 12 entrances. 1. First, create a brush, and texture it with the orange trigger texture. Make sure it is large enough to completely cover the entrance to your location. 2. Second, turn that brush into a trigger_ff_script entity. Name it location_roomname. For example, if the name of the location I was identifying was "North Room", I would name the trigger_ff_script location_northroom. 3. Do the above two steps for each entrance to your room. Make sure they all have the same name, and be sure that when you name your entities, you they are all lowercase. 4. Now, open up your lua file again. Enter the following text on a new line near the top: IncludeScript("base_location"); But we aren't finished yet. Scroll down to the bottom of your lua file. We are going to enter new text.5. On a new line, we are going to tell FF the name we want the player to see for our location. Enter the following text: location_northroom = location_info:new({ text = "North Room", team = Team.kGreen }) Of course replace location_northroom with the name you gave your trigger_ff_script entities and replace "North Room" with whatever name you want players to see for your room. The last piece you need to check is at the end, where it says team = Team.kGreen. This is here because on my map, the north room belongs to the Green team. For your map, change this to correspond to whichever team controls the location (kRed, kYellow, or kBlue instead of kGreen). If it is neutral territory, change it to say team = NO_TEAM6. Do the above steps for each of your locations, and it should work in game! 4. Setting Up Your Gametype Thanks to the FF team implementing lua, there are nearly limitless gametypes we can create as mappers for FF. These instructions, however, will only show you how to set up two basic game types: teamplay and CTF.The setup for teamplay is relatively simple: At the top of your map's lua file, add the following text: IncludeScript("base_teamplay"); Wala! there you go. Save your lua file and you can do team deathmatch or what have you!For CTF, the set up takes a little more. It begins similarly, however. 1. At the top of your map's lua file, add the following text: IncludeScript("base_ctf"); 2. Next, you have to create the flag. Find the location where you want the flag, and create a point-based info_ff_script entity. Name it color_flag. For example, since the flag I am creating is for the Green team, I would name it green_flag. Again, be sure that when you name your entities, you they are all lowercase. The entity's base will be the bottom point of the flag pole. 3. Finally, we create the capture point. Find where you want the capture point to be, and create a brush that the player can walk into to capture the flag. Texture it with the orange trigger texture, and turn it into a trigger_ff_script entity. Now, name it color_cap, with the color corresponding to the team which captures the flag at that point. For example, I am creating a capture point where the green team brings enemy flags to score points. I would name my entity green_cap. And that is all! Save your map's lua file, compile your map and load it up. All of the above features should work. Any additional information or comments? Please post them below! Last edited by Imbrifer; 09-14-2007 at 03:29 AM. |
|
09-14-2007, 05:27 AM | #2 |
IRL Combat Medic
Join Date: Mar 2007
Location: Ethanol Land
Class/Position: D Medic Gametype: Conca Jumping Affiliations: ^iv Posts Rated Helpful 0 Times
|
How do we do brush based teleporters?
__________________
I have a nasopharyngeal and webcam... First infraction! Flaming! |
|
09-14-2007, 05:36 AM | #3 |
Join Date: Mar 2007
Posts Rated Helpful 5 Times
|
same as in other source games
"trigger_teleport" "info_teleporter_destination" |
|
09-14-2007, 05:45 AM | #4 |
IRL Combat Medic
Join Date: Mar 2007
Location: Ethanol Land
Class/Position: D Medic Gametype: Conca Jumping Affiliations: ^iv Posts Rated Helpful 0 Times
|
Ah, makes sense :P. To work on the concmaps!
PS How's Pull going?
__________________
I have a nasopharyngeal and webcam... First infraction! Flaming! |
|
09-14-2007, 06:00 AM | #5 | |
Join Date: Mar 2007
Posts Rated Helpful 5 Times
|
Quote:
|
|
|
09-14-2007, 06:45 AM | #6 |
OHH! OHHH NOOO!
Wiki Team
Beta Tester Join Date: Mar 2007
Posts Rated Helpful 0 Times
|
Oooh, time for me to start mapping!
__________________
What was left of my sanity implored me not to enter...but that voice was just a whisper now. |
|
09-14-2007, 06:34 PM | #7 |
Fortress Forever Staff
|
Also, remember to make a res file for your map so servers send all files to the client.
I can't remember how they're made exactly, but maybe someone around here can look it up. I believe you make a maps\mapname.res file, and then list which files are needed.... Code:
"Resources" { "maps/mapname.txt" "file" "maps/mapname.res" "file" } The map's lua file(s) will be most important to list (maps\mapname.lua and any other custom scripts used), along maps\mapname.txt for the description, materials\vgui\loadingscreens\mapname.vmt & .vtf for the map overview loading screen, as well as potentially maps\mapname_level_sounds.txt and maps\mapname_soundscapes.txt for custom game sounds and soundscapes...and maybe in the future for extra vox and message support, maps\mapname_<language>.txt (localized custom messages) and maps\mapname_sentences.txt (vox). I think maps\mapname_<language>.txt is already supported by the looks of the TF2 GCF, so we'll have to code in support for custom vox sentences. Last edited by trepid_jon; 09-16-2007 at 12:53 AM. |
|
09-14-2007, 08:16 PM | #8 |
Join Date: May 2007
Posts Rated Helpful 0 Times
|
Is it possible to make buttons that can only be activated by a certain team?
|
|
09-14-2007, 08:21 PM | #9 |
Join Date: Sep 2007
Posts Rated Helpful 0 Times
|
hehehe, i know its just a typo and common confusion, but you ought to fix this line:
"And finally, your RMF directory should be:" We're on Source now, which you know, so that should read . . . "VMF" and not the old school rmf *Frags* |
|
09-14-2007, 09:26 PM | #10 |
Join Date: Sep 2007
Posts Rated Helpful 0 Times
|
My Hammer SetUp: using most recent Hammer version
Here's my setup for the most recent version of Hammer and using Windows XP. I don't see the Mod directory as stated in the original post though, so don't worry if you dont see it either. And you can just copy and paste my lines so you don't have to browse to the end folder.
The Game Executable Directory should be: $SteamDir\steamapps\SourceMods\FortressForever The Game Directory should be: $SteamDir\SteamApps\SourceMods\fortressforever\ The VMF directory should be: $SteamUserDir\sourcesdk_content\hl2mp\mapsrc\ff It doesnt really matter where you save your maps, as long you enter the right directory into Hammer where the maps are located. And you ought to create this FF directory just in case Hammer doesnt do it for you when your save your vmf you are working on. Anyway, the FF directory is not there by default. You might also want to go into the build programs tab of Hammer and enter this information below if you want to use Hammer to compile and run your maps. Veteran map makers will balk at this and tell you not to use Hammer to compile your maps. But if you are super new and in a hurry, this is the easiest way. Build programs bsp $SteamUserDir\sourcesdk\bin\vbsp.exe vis $SteamUserDir\sourcesdk\bin\vvis.exe rad $SteamUserDir\sourcesdk\bin\vrad.exe Place compiled maps in this directory: $SteamDir\steamapps\SourceMods\FortressForever\map s Hope this helps you guys! *Frags* Last edited by sir_frags; 09-14-2007 at 10:44 PM. |
|
09-14-2007, 10:32 PM | #11 |
IRL Combat Medic
Join Date: Mar 2007
Location: Ethanol Land
Class/Position: D Medic Gametype: Conca Jumping Affiliations: ^iv Posts Rated Helpful 0 Times
|
Ok, tried to do that, restarted hammer... wouldn't start. And all my game configs seem to be fuxxed up. Saysi t can't find the game info. I tried resetting the configs.
__________________
I have a nasopharyngeal and webcam... First infraction! Flaming! |
|
09-14-2007, 11:09 PM | #12 |
Joystick Junkie
D&A Member
|
EDIT:*Nevermind*
__________________
I like chocolate milk. |
|
09-14-2007, 11:35 PM | #13 | |
Join Date: May 2007
Posts Rated Helpful 0 Times
|
Quote:
I had my button set up for well FR and it didnt need to use Lua so I used the I/O system. It didnt work. Then I added a Lua function to say OPEN in the dev console when it was activated and it all worked. Hopefully something we can update in the future to be a bit better. Last edited by eat; 09-15-2007 at 12:38 PM. |
|
|
09-14-2007, 11:57 PM | #14 | ||
Join Date: Mar 2007
Posts Rated Helpful 5 Times
|
Quote:
Quote:
|
||
|
09-15-2007, 12:29 AM | #15 |
Join Date: Sep 2007
Posts Rated Helpful 0 Times
|
EDIT:*Nevermind2k*
Last edited by Fuerst; 09-15-2007 at 12:36 AM. |
|
09-15-2007, 12:39 AM | #16 |
Join Date: May 2007
Posts Rated Helpful 0 Times
|
I found another LUA question. I'm going readdress these and other LUA questions I have to another thread: http://www.fortress-forever.com/foru...ad.php?t=11057
3) How do you start players with full supplies? 4) How do you direct ambient_generics? especially those from in HL2's archive? 5) How do you setup the Map Description Graphic? 6) How do you setup the Map Fly Through? Last edited by Doughnut-4|4-; 09-16-2007 at 05:38 AM. |
|
09-15-2007, 05:23 AM | #17 |
IRL Combat Medic
Join Date: Mar 2007
Location: Ethanol Land
Class/Position: D Medic Gametype: Conca Jumping Affiliations: ^iv Posts Rated Helpful 0 Times
|
No Gameinfo.txt error... what should I do?
__________________
I have a nasopharyngeal and webcam... First infraction! Flaming! |
|
09-15-2007, 05:27 AM | #18 |
Join Date: May 2007
Posts Rated Helpful 0 Times
|
The gameinfo text file is located here:
$SteamDir\steamapps\SourceMods\FortressForever or C:\Program Files\Steam\steamapps\SourceMods\FortressForever I am guessing your Hammer is not configured propperly. First make sure the file is where I said it is located. Next open your Hammer "Options" and set your "Game Configuration" setting "Game Directory" to the path I just posted above. If this doesn't work, I'm not sure... I'm still learning myself. Lastly, always restart Steam after a change like this to be sure. |
|
09-15-2007, 05:31 AM | #19 |
IRL Combat Medic
Join Date: Mar 2007
Location: Ethanol Land
Class/Position: D Medic Gametype: Conca Jumping Affiliations: ^iv Posts Rated Helpful 0 Times
|
Ah, it was looking for it in \ff\. Thanks .
__________________
I have a nasopharyngeal and webcam... First infraction! Flaming! |
|
09-15-2007, 07:11 AM | #20 | |
Stuff Do-er
Lua Team
Wiki Team Fortress Forever Staff |
Quote:
|
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|