Fortress Forever

Go Back   Fortress Forever > Editing > Mapping

Reply
 
Thread Tools Display Modes
Old 09-13-2007, 11:55 PM   #1
Imbrifer
Religious Stamp Machine
Retired FF Staff
 
Imbrifer's Avatar
 
Join Date: Mar 2007
Location: Mad City, WI
Posts Rated Helpful 0 Times
Send a message via AIM to Imbrifer
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:
  • Your map, open in Hammer
  • A lua file, opened through a text editor. If you don't have one, create it with a text editor as mapname.lua (for example, ff_well.lua). This file should be in the same directory your BSP will be in (for FF, it is \Steam\SteamApps\SourceMods\fortressforever\ff\map s\ )

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
For the basic resupply bags, name them color_ammobackpack. For example, if I wanted resupply bags that only the Green team could use, I would name each one green_ammobackpack. The same rule applies for all of the other colors. If you want a pack anyone can use, name it ammobackpack.
b. Armor Kits
For armor, name them color_armorkit. For example, if I wanted armor kits that only the Green team could use, I would name each one green_armorkit. The same rule applies for all four colors. If you want armor anyone can use, name it armorkit.
c. Health Kits
For health kits, name them color_healthkit. For example, if I wanted health kits only the Green team could use, I would name each one green_healthkit. The same rule applies for all four colors. If you want a health kit anyone can use, name it healthkit.
d. Grenade Packs
For back packs containing grenades, name them color_grenadebackpack. For example, if I wanted a grenade pack only the Green team could use, I would name them each green_grenadebackpack. This rule applies to all four colors. If you want a grenade pack anyone can use, name it grenadebackpack
e. Big Packs
For back packs containing everything but grenades, name them color_bigpack. For example, if I wanted a big pack only the Green team could use, I would name them each green_bigpack. This rule applies to all four colors. If you want a big pack anyone can use, name it bigpack
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_TEAM

6. 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!
__________________
Community Mapper
2morforever, 4play, attrition, gap, fragger
and ff_training.

Last edited by Imbrifer; 09-14-2007 at 02:29 AM.
Imbrifer is offline   Reply With Quote


Old 09-14-2007, 04:27 AM   #2
zSilver_Fox
IRL Combat Medic
 
zSilver_Fox's Avatar
 
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!
zSilver_Fox is offline   Reply With Quote


Old 09-14-2007, 04:36 AM   #3
nodnarb
 
Join Date: Mar 2007
Posts Rated Helpful 5 Times
same as in other source games
"trigger_teleport"
"info_teleporter_destination"
nodnarb is offline   Reply With Quote


Old 09-14-2007, 04:45 AM   #4
zSilver_Fox
IRL Combat Medic
 
zSilver_Fox's Avatar
 
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!
zSilver_Fox is offline   Reply With Quote


Old 09-14-2007, 05:00 AM   #5
nodnarb
 
Join Date: Mar 2007
Posts Rated Helpful 5 Times
Quote:
Originally Posted by zSilver_Fox
Ah, makes sense :P. To work on the concmaps!

PS How's Pull going?
It's going ok. I need to figure out how I'm going to incorporate the theme into it.
nodnarb is offline   Reply With Quote


Old 09-14-2007, 05:45 AM   #6
Desyphur
OHH! OHHH NOOO!
Wiki Team
Beta Tester
 
Desyphur's Avatar
 
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.
Desyphur is offline   Reply With Quote


Old 09-14-2007, 05:34 PM   #7
trepid_jon
Ray Ray Johnson
Fortress Forever Staff
 
trepid_jon's Avatar
 
Join Date: Feb 2005
Location: Dallas, TX
Class/Position: D Civilian
Gametype: Rocket Jousting
Affiliations: EAFD
Posts Rated Helpful 78 Times
Send a message via ICQ to trepid_jon Send a message via AIM to trepid_jon
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"
}
http://developer.valvesoftware.com/w..._Resource_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.
__________________
Support FF:
Trepid
steamcommunity.com/id/trepid_jon/

Last edited by trepid_jon; 09-15-2007 at 11:53 PM.
trepid_jon is offline   Reply With Quote


Old 09-14-2007, 07:16 PM   #8
Noggin
 
Join Date: May 2007
Posts Rated Helpful 0 Times
Is it possible to make buttons that can only be activated by a certain team?
Noggin is offline   Reply With Quote


Old 09-14-2007, 07:21 PM   #9
sir_frags
 
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*
sir_frags is offline   Reply With Quote


Old 09-14-2007, 08:26 PM   #10
sir_frags
 
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 09:44 PM.
sir_frags is offline   Reply With Quote


Old 09-14-2007, 09:32 PM   #11
zSilver_Fox
IRL Combat Medic
 
zSilver_Fox's Avatar
 
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!
zSilver_Fox is offline   Reply With Quote


Old 09-14-2007, 10:09 PM   #12
SizeableSSonic
Joystick Junkie
D&A Member
 
SizeableSSonic's Avatar
 
Join Date: Mar 2007
Location: I know where YOU live!
Class/Position: Engineer or Sniper
Gametype: CTF
Posts Rated Helpful 0 Times
Send a message via AIM to SizeableSSonic Send a message via MSN to SizeableSSonic
EDIT:*Nevermind*
__________________
I like chocolate milk.
SizeableSSonic is offline   Reply With Quote


Old 09-14-2007, 10:35 PM   #13
Doughnut-4|4-
 
Join Date: May 2007
Posts Rated Helpful 0 Times
Quote:
1). My button works, but damage no longer triggers it. I noticed someone else trying to figure out team buttons. Examining the "Well.lua" I noticed code for their door damage which I'm going attempt to copy.
Yeh these are a pain in the ass. It seems it only works when it has some Lua script associated with it, even if the Lua script doesnt actually have the outputs.
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 11:38 AM.
Doughnut-4|4- is offline   Reply With Quote


Old 09-14-2007, 10:57 PM   #14
nodnarb
 
Join Date: Mar 2007
Posts Rated Helpful 5 Times
Quote:
Originally Posted by Doughnut-4|4-
2). Func_useableladder doesn't work in FF. I'm hoping Func_ladder does work.
Quote:
Originally Posted by nodnarb
To create a ladder, put a brush in front of the ladder model and texture it with "tools/ladder".
nodnarb is offline   Reply With Quote


Old 09-14-2007, 11:29 PM   #15
Fuerst
 
Join Date: Sep 2007
Posts Rated Helpful 0 Times
EDIT:*Nevermind2k*

Last edited by Fuerst; 09-14-2007 at 11:36 PM.
Fuerst is offline   Reply With Quote


Old 09-14-2007, 11:39 PM   #16
Doughnut-4|4-
 
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 04:38 AM.
Doughnut-4|4- is offline   Reply With Quote


Old 09-15-2007, 04:23 AM   #17
zSilver_Fox
IRL Combat Medic
 
zSilver_Fox's Avatar
 
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!
zSilver_Fox is offline   Reply With Quote


Old 09-15-2007, 04:27 AM   #18
Doughnut-4|4-
 
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.
Doughnut-4|4- is offline   Reply With Quote


Old 09-15-2007, 04:31 AM   #19
zSilver_Fox
IRL Combat Medic
 
zSilver_Fox's Avatar
 
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!
zSilver_Fox is offline   Reply With Quote


Old 09-15-2007, 06:11 AM   #20
squeek.
Stuff Do-er
Lua Team
Wiki Team
Fortress Forever Staff
 
squeek.'s Avatar
 
Join Date: Mar 2007
Location: Northern California
Class/Position: Rallygun Shooter
Gametype: Conc tag (you just wait)
Affiliations: Mustache Brigade
Posts Rated Helpful 352 Times
Send a message via AIM to squeek.
Quote:
Originally Posted by zSilver_Fox
Ah, it was looking for it in \ff\. Thanks .
Yeah, original post needs to be updated so there is no " \ff " folder in the directories. That folder does not exist and is not used.
squeek. is offline   Reply With Quote


Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:23 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.