Gloom Map Depository Mission Entities Compiled by The Pyro |
The worldspawn entity is in every map, not just gloom maps, but there are several gloom-specific fields that you may add.
leveltimer | This field specifies the time limit for the map. Give it a value equal to the number of minutes you want the game to last. |
playmode | This field specifies who wins when the leveltimer timelimit is reached. The value "0" is the default value, which specifies a tie game. A value of "1" means the humans win, and "2" means the spiders win. |
spawnteam | This field specifies how many spawnteams there are in the map in total. See "How do I randomize where bases are" for more info. |
classes | This field specifies which classes will NOT be able to spawn on the map. See "Using the classes field" for more information. |
These entities are exactly what they sound like; the appropriate team wins when the entity is triggered. If no targetname is specified then they can be triggered just like normal variable-sized triggers, by players touching/walking through them. These entities also support the classes field. In this case, the classes field specifies which classes WILL trigger the entity.
These entities will fire their targets when the alien/human team wins.
The trigger_once and trigger_multiple entities work exactly the same as they do in normal quake 2, except that in gloom you may use the classes field. This field specifies which classes WILL trigger the entities.
Both of these entities function exactly the same as the normal quake 2 trigger_hurt entity, except that these will only hurt either the humans or the aliens. The same spawnflags and fields that apply to the trigger_hurt entity also applies here.
Gloom now supports pseudo-fog. The fog works by blending the client's screen with the color you specify. The fog does not decrease/increase with distance. The fog entity is variable-sized; any client that walks into the area that is occupied the entity will see the full effects of the fog, although it gradually blends with the screen when the client first enters the area. This entity supports the classes field, which in this case specifies which classes WILL see the fog. If no value is specified then all classes will see the fog.
classes | This field specifies which classes WILL see the fog. All classes see the fog by default. |
mass | This field specifies how thick the fog is. The range is 0 to 100, where 0 is no fog at all and 100 completely obscures the player's screen with fog. |
speed | The speed field specifies how much red is in the fog. The three fields that specify colors are speed, accel, and decel - red, green and blue respectively. The values are relative, so there is no set range. In other words, it doesn't matter if the green is 200 and the blue is 100 or the green is 100 and the blue is 50. In both cases the green is twice as much as the blue, so the fog will be the same color. |
accel | How much green |
decel | How much blue |
It is very easy to prevent breeders and engineers from building in an area. Create a brush that fills the entire area that you want to restrict. If you want an entire room to be off-limits for building, then the brush must fill the entire room. Next, go to the surface/texture properties for that brush. Make sure the following flags are set: "NoDraw","Mist", and "Monster_Clip". That's it.
There's another neat trick you can do with these brushes that make building off-limits. If you make a func_wall and use the same texture flags, it will prevent building whenever it is on but still be invisible. So in effect you can make an area that becomes off-limits for building at the switch of a button (or when a timer goes off, or when a person destroys a target, etc...).
The way you prevent certain classes from spawning in your map is by using the classes field of the worldspawn entity. Add up the flags for the classes that you do NOT want to spawn and use that value for the classes field.
Every gloom entity - eggs, depots, spikers, teleporters, etc. - may belong to one or more "spawnteams". There can be up to 8 spawnteams per map, but you MUST specify how many spawnteams your map uses in total inside the worldspawn entity. When the map is loaded, the game will automatically pick one of these spawn teams at random and spawn all of the gloom objects that belong to that team.
How do you specify which spawnteams an object belongs to? You need to give the entity the key pair "spawnteams","xxx" where "xxx" is a number. This number is calculated similarly to the spawnflags number. If you don't know what flags are, just add up the numbers for the correct teams in the table below and use that number:
Team | Flag Value |
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
Remember that ONLY 1 spawnteam is spawned. Therefore you must have both eggs and teleporters in each spawnteam, or there will be problems...
Only a few gloom entities support the classes field. If you want to make other entities - such as buttons and doors - class-specific, then you must use one of the entities that supports the classes field in conjunction with the door/button/whatever.
Example: Let's say that you want to make a door that only a commando can open. Make the door as normal, then put a trigger_multiple right in front of the door. Use the classes field of the trigger_multiple to specify the commando class. Now have the trigger_multiple target the door. If you did it right, only a commando will be able to trigger the door. Remember that if you want the door to be openable from both sides then you'll need to extend the trigger_multiple so that it can be touched by the commando from either side of the door.
Use either a trigger_hurt_humans or a trigger_hurt_aliens to kill/hurt members of a specific team. You may also use the misc_infestation entity to hurt members of the human team that are not immune to infested bodies.
You may use the trigger_fog entity to add psuedo-fog to an area. The trigger_fog entity supports the classes field.
Many gloom entities support the "classes" field. This field usually specifies which classes are affected (or not affected) by a certain entity. You use the classes field by adding the key pair "classes","xxx" where xxx is some number. This number is calculated by adding up the numbers listed for each of the classes that you want to be affected (or not affected in some cases):
Engineer | 1 | Breeder | 65536 |
Grunt | 2 | Hatchling | 131072 |
Shock Trooper | 4 | Drone | 262144 |
Biotech | 32 | Wraith | 1048576 |
Heavy Trooper | 8 | Kami | 524288 |
Commando | 16 | Stinger | 2097152 |
Exterminator | 64 | Guardian | 4194304 |
Mech | 128 | Stalker | 8388608 |
(These values are backwards from the values generated by Binary Cowboy's classes calculator. But these are the ones that seem to work correctly)
Example: Let's say you want only breeders and engineers to be able to trigger a trigger_multiple. You would look up the values for the breeder and the engineer, which are 65536 and 1. You would then add them together to get 65537. Then you would go to the trigger_multiple entity and add the key pair "classes","65537".
Entities that support the classes field: worldspawn, trigger_once, trigger_multiple, trigger_fog, target_humans_win, target_aliens_win