Mapping guidelines for Natural Selection
Version .7a, last updated July 25, 2001

 

Introduction
This guide will provide all the info needed to create levels for Natural Selection. It describes the ideas and philosophies needed to make levels that are true to the game's spirit. This document is the official reference for all game specific entities as well. Please post on the mapping forum or write flayra@overmind.org if you have comments or questions on anything here. Good luck!
Design philosophies

There are some design philosophies that should be observed to make cohesive maps that work well for Natural Selection.

Rules to know about

When the game first starts, the marines have a pre-game sequence (link) on their dropship which gives the aliens have some time before the marines can advance through the spacecraft. During this time, the faster aliens should have time to reach almost all the way to the marine starting location, to wait quietly in the rafters or dark corners. The marines will want to storm out of their dropship immediately, but there shouldn't be enough time for aliens to get all the way to the room the marines deploy into.

Basic structure

The marines don't know where the aliens starting location is, so there needs to be three to five starting locations that are roughly equidistant from the marine starting location. This fact, along with the desired intentional, committal and strategic nature of the game, imply a circular, web-like connected map structure, with the marine staring point at the center. The desired optimal behavior for the marines is advancing in one or many squads, spreading out to find the alien base. Speed is not to be stressed, a minimum of losses should be more valuable to winning. The marines should spread out and find the source of the aliens with some urgency, but not at a high expense of resources. In the beginning of the game, the marines have to commit to one or more branches of the web. A squad that has chosen one branch shouldn't be able to quickly fall back and regroup with members that chose another branch, the aliens should have the ability to cut squads off from each other.

This basic structure should also have areas where the aliens can take alternate paths, not accessible to the marines. Ventilation shafts, electrical tunnels and power conduits allow aliens to ambush and flank vulnerable marines. These alien-only paths should connect the alien hive rooms and with each other and allow the aliens to travel between adjacent web branches. They shouldn't be overdone though, as the marines need to be able to easily understand which openings should be watched or blocked off if they want to fortify an area. There can be occasional hidden openings, but most should be obvious gratings, still fans, holes and access tunnels. The aliens should be encouraged to use the areas accessible to the marines about half the time. Making tunnels harder to get to or a farther distance than the regular hallways could help encourage this.

There should be a good choke point or two between the marine starting point and each hive room, so the marines can decide to build a safe area, or choose locations for deploying siege weaponry or phase gates. Ideally there would be at least one marine-accessible location from outside each hive room that the marines could shoot at the hive from. A desired viable strategy would be finding the hive, fortifying an attack point by welding all openings shut and deploying siege and defensive marines. The aliens should prevent this from happening or upgrade to anti-siege aliens before this happens or pay the price. In other words, the marines should be allowed to stage a good attack on the hive, not only by running into the final room and engaging the aliens close up on their turf. Generally there should safer areas where the marines can cover each other and leapfrog forward, connected by less safe narrow passageways. The ultimate goal is organized marine movements by squad, advancing and covering each other.

Strive to make the lighting feel dark, but never actually be dark. A near-dark corner or two is fine, but never make areas that are completely dark. This promotes replay and reduces general frustration.

The marine starting point
The marine starting point should be the center of the map. There should be at least two exits leading out and it should be easily defensible with turrets, mines and overwatch. There should be no ventilation shafts into this area, only hallways or wide passage ways that multiple marines can advance through or hold. It is undecided if aliens will be allowed into this area and how they will be prevented from entering if not.
Alien hive rooms
At the end of each of the web-branches should have a medium-sized area suitable for alien spawning and for a tank-sized alien hive structure. There should be five to ten alien spawning points arrayed around or within the hive structure. These rooms should also be conducive for fighting for the aliens, so there should be short passageways and cover suitable for flanking, turning and enveloping. There could also be a level-over-level or vertical aspect that would be hard for marines to fortify. There should be many passageways in and out of these rooms, ones that link up to other adjacent hive rooms but are only accessible to aliens. There should be occasional passageways that are accessible for aliens or marines with jetpacks, but travel between most hive rooms should require going halfway back to the marine start first. There are also certain desired visual characteristics of hive rooms (it's not decided exactly what form the hive rooms will take yet, coming soon).
The marine/alien continuum

Good levels will let players recognize where they are at all times and hint at which way to go. One way of doing this is by having the marine starting location be the highest altitude of the map, then having the path the each alien hive room be below that. That way, a marine knows which direction to go to run towards or away from an enemy. Most importantly, he knows how to run away and rejoin his team if he wandered off and is feeling scared...

Additionally, the look and feel should change between the marine and alien starting points. Choose an artistic style for each side, then carry it through fully. Make it as though the jungle-like aliens have somehow transformed their areas of the ship into their natural habitats from their homeworld. A flooded boiler room could be decorated with with draped cables and floating debris to simulate a "bog". A hive room could could have treelike structures with connecting "branches", formed by fallen transmitters and posts. Make the marine base camp completely dry, then have some dripping water nearby, changing to puddles of standing water close to the hive rooms, then having the hive rooms be waste deep water. Make the marine side "dead" and the alien parts "living". Consider choosing two drastically different color or lighting schemes and slowly morphing between them as the players travel from one area to the other. Try making the marine side technological and controlled, the alien side organic and primal, then see how slowly you can transition between the two. Or make the marine side quiet (good for marines to hear the alien growls and squeals) then create a massive fan room and generators that drone out voice communication and scare the marines as they get farther away. Or use only ambient and lights coming from fixtures on the marine side, then only ominous texture lights towards the aliens. Have little "ambient movement" on the marine side, then have moving fans, malfunctioning elevators and unexpected gusts of steam erupting from pipes as the marines get closer.

This continuum will really help players know where they are, and get them to feel the tension they should as they leave their territory. Most importantly, get creative and work whatever continuums you've chosen into your level as deeply as you can.

Shared experience and landmarks
One of the sub-goals that the game tries to accomplish is to have memorable and cinematic games and to strengthen to bonds between players. Games where you say "remember when you punched the elevator button and backed away and as it slowly opened we say the elevator was FULL already and turned to run....". One way to accomplish this is to have sections of the map which cause a group of players to pause and look in the same direction, or to wait for another player to do something. An event that causes players to realize for a moment, that they're all doing the same thing. The marines especially should be watching each other often, so their actions should be relevant. Creating landmarks like this also makes it easy to describe parts of the map during or after the game, allows impromptu battle plans and allows for more reacting by both sides. If the marines hear a a bay door opening and they're all in sight, they know the aliens have breached an area and can react. If the aliens listen for a tram to start up, they can visualize where the marines are and try to track them (or the marines can outwit them by hitting the button and then not using it). So these landmarks and shared experiences promote interaction between teams and teammates, and makes the games more enjoyable and memorable. Try to add at least a few of these elements per map, especially around chokepoints. Make certain areas wide enough for multiple players to walk, fly or scuttle through at once or a quadruple-wide ladder that multiple players could use. Create somewhat noisy freight elevators, loading bays, a door that can only be opened by having two buttons being pressed by two players at once, bridges, clocks that show you when an event is going to happen, anything that gets players to recognize each others actions or makes one player dependent on another. These landmarks are much more important for the marines, as the aliens generally will lead coordinated but separate attacks.
Fleshing out the world
The ambiance is especially important in this game. Maps can create many powerful custom effects. One great way to do this is to create detailed little sub-areas of the map that can only be viewed, not entered. Create a little side-passage with a half of a broken electrical door showing exposed wires, puddles and blinking lights behind it. Create wire gratings that only partly conceal a hopelessly detailed mess of pipes and and wheels. A hole in an elevator shaft that reveals a cafeteria that's now a grotto. A crack in the wall that shows a hollowed out area filled with cables. Crinity is the true master of this and it makes a huge difference in creating ambiance and wonder in his maps.

 

The ready room and the absence of menus

Another sub-goal of this game is to reduce the amount of time players spend in a non-immersive environment. So instead of the text menus to choose your team as in other games, this game has a the concept of the "ready room". The theme and layout of the ready room can fit into the theme of the map but keep it easy to use. At minimum, there should be a door with a sign that says "Join marine team", another door that says "Join alien team", one that says "Join a auto-assigned team" and the last that says "Watch game". When you join a server, you spawn in immediately into the ready room. You choose what you want to do by interacting with the map, i.e., by walking through one of the doors, or just hanging out in this area and talking with other players in the ready room, waiting for the match in progress to end or the map to change. There is also one more door that should say or indicate "disconnect from server".

The ready room should be an unconnected area of the main map, but make it far enough away from the main game area so ambient sounds from one area aren't heard in the other. There should be at least ten info_player_start entities, as all the players on the server could spawn in here at once. Make the room dramatic and make the routes to each door an inviting choice. Maybe an animated hologram of a marine or an alien inviting players to their doors will get people into the mood of your map. Use animated lights on runways leading to the doors, spawn point facing and other factors and railings to lead players out of the ready room into the game. Try making the spectator door up a small stairway to a balcony that implies the height needed to adequately watch the game in progress. Have klaxons going off at the beginning of the round for dramatic tension. When a game that can't be late-joined has started, use the entities below to close the appropriate doors dramatically and display other instructions.

When a player wants to leave a game in progress, he can exit through a door at their starting point labeled "leave game" or whatever is appropriate and clear for your map theme.

The ready room is a dramatic way to wrap the game and serves as a mini meta-game in itself. Unfortunately, it's also more work for the level designers. If this idea doesn't work out so well, I'll be adding traditional text menus in..

Alien design considerations
The aliens have many movement types including wall-running, gliding, flying and "ollying" (jumping off walls) Additionally, aliens come in different sizes, the biggest of which is a bit bigger than the general player model. Try to make areas that accommodate and promote these movement types and try to let the alien players skill level scale. Do this by making glides or "ollies" that are really hard for aliens to make, but possible. Make vertical columns in the ceiling that house lights and are accessible from a tunnel, so gliders can silently glide down from them. Make a few big wide hallways near the alien hives so the bigger aliens don't have trouble attacking. More to come in this area...
Visual entities
env_gamma

This entity changes your monitor's gamma ramp for your map. Half-life engine games don't modify your monitor's settings, so they have an effect gamma slope of 1.0. Making your gamma ramp steeper will make your colors more vibrant and will give lots more contrast to your maps. Quake III does this to great effect (John Carmack calls it "overbrightening". For a detailed technical paper on this, check the here. What you really need to know is that changing this setting can give your map lots more contrast make everything look much more vivid. However, this setting drastically affects your map's lighting, so you won't want to tweak this when you're almost done your map. Try to decide early on what setting you'll use by doing some letting tests, then stick with it. There may be some compatibility problems with gamma values over or around 1.7, so don't depend too much on the gamma being exactly what you set it to.

Desired map gamma -This is the gamma slope to change the all players' monitors to when playing your map. The default is 1.0. Don't set it higher than 2.0 or there's a good chance some monitors won't be able to switch to this. A good set of values is around 1.4 to 1.8. If a monitor can't switch to the value you set, it will try again with a slightly lower number until it succeeds, or until the gamma is 1.0.
env_particles

This entity places a particle system in a level. It can only be used to place a particle system that has been defined in avh.ps, it can't be used to create a new one. To create custom particle effects, use env_custom_particles. This entity may not be very useful and will probably be phased out, so skip this for now and read about env_custom_particles below. This entity is fully switchable, like a light or any other target in Worldcraft. It's fields are as follows:

Name - Target name that can be triggered with a button or switch. Triggering it will toggle it on and off, like a light.
Name (from .ps) - Type the name of the particle system that it should from avh.ps. Example: "ShotgunSmoke" or "DustLight"
flags: "start on" (checking this means the particle generates particles without having to be triggered first)
env_custom_particles

This entity lets you create your own custom particle effects for your map. They include things like light mist, volumetric fog (simulated), haze, dust motes, smoke, steam, fire, etc. Almost any type of effect can be created with this system, including effects that generate other types of effects. It is just like any other switcheable, moveable Worldcraft entity and can be triggered with buttons and moved. There are a lot of fields, but it is quite advanced and use of it will be richly rewarded.

Important notes:

All floats are currently limited to 1/8 increments due to network packing of data. This means if you enter a value of .2, it will be truncated to .125. For best results, enter all floats as multiples of 1/8.

Particle systems can have a big affect on frame rate, but don't be afraid to try out systems with tons of particles. Experiment and see what actually affects your frame rate, you'll probably be surprised it isn't what you think. Size, drawing type, number of particles and collision all affect frame rate to some extent.

Name - Target name that can be triggered with a button or switch. Triggering it will toggle it on and off, like a light.

Generation entity (invisible) - This is the name of the entity that is particles will be generated inside. This will generally be a func_illusionary with render_mode additive and and FX amount of 0 (so it's invisible) but it can be any entity you want. The type of shape that the particles will be generated in is specified by the next parameter, "Generation shape", not only by the shape of the brush! Furthermore, the generation shape used will be the axis-aligned version of this entity, so rotating this shape will have no effect. This is will be expanded to use the actual shape of the entity if necessary (but that's a lot of work).

If no generation entity is specified, the point where the env_custom_particles is place is where particles will be generated from (I think, not sure if this is tested!)

Generation shape - This can be one of the following shapes Point, Box, Sphere or Blob. In all cases, the generation shape is centered at the the "Generation Entity"'s center.

If Point is chosen, the center of the generation entity is used to as a starting location for newborn particles.

If "Box" is chosen, then the axis-aligned box defined by the Generation Entity is used. For each new particle, a random point within this box is used for the starting location.

If Sphere is chosen, a sphere with a radius equal to the x-dimension of the Generation Entity is used.

If Blob is used, the blob's parameters are read from the "Generation Shape Parameter" field. Blob is very useful for generating particles in an organic and versatile fashion.

 

Particle sprite - Browse to the sprite that will be drawn for each particle. Only textured sprites are supported. Generally the best type of sprite will be additive sprites, but any can be used.
Animation frames in sprite - This field lets each particle be animated. To have a sprite animate, make sure the "Particle Sprite" has multiple frames of animation, then enter the number of frames to use here. If a sprite has 10 frames in it, any number up to 10 could be entered. This field can only be used with particles that don't live forever, i.e., Particle Lifetime (not Particle System Lifetime) has to be set to some number above 0. The sprite will animate evenly over it's life, so it will play the number of frames entered in this box over its life.

Generation shape parameter - This is an extra parameter that is only used when the generation shape is specified as "Sphere" or "Blob".

Sphere - radius 1 is the axis-aligned x-width of the generation entity created, this parameter is radius 2. Particles are generated between radius1 and radius 2, around the center point of the generation entity. This generates particles in the shape of a hollow ball.

Blob - The center of the generation entity is called P. This parameter is called alpha. Blob generates points such that the point P is the center of a normal probability density of standard deviation alpha. The density is radially symmetrical. The blob domain allows for some very natural-looking effects because there is no sharp, artificial-looking boundary at the edge of the generation entity.

Maximum particles - This is the maximum number of particles that this particle system can have at any given time. If it has this many particles, no more will be generated until if and when one of it's particles dies. This takes priority the "Generate Rate" below.
Generation rate (particles/second) - This is how many particles per second will be generated per second. The system will stop generating particles if the number entered in "Maximum Particles" is reached.
Particle size - This is a somewhat arbitrary size value that is used when drawing each particle. A big speck is around size 5, your average smoke particle might be around 15. Experiment. A negative value would probably be very bad.
Particle system lifetime - How long the particle system generates particles in seconds. If -1 is specified, the system will never die and will generate particles forever. Once a particle system dies, it's particles will still live on until they die on their own, the particle system will just stop generating new particles
Particle lifetime - A particle lives this long, in seconds. Once this time runs out, the particle will die and no longer be drawn. Specifying a value of -1 means the particle will live forever.

Starting velocity shape - This can be a "Point", "Box", "Sphere" or "Blob".

Point - Particles are generated with a fixed starting velocity equal to v0, v1, v2 (see next parameter).

Box - Particles are generated with a random starting velocity in the range v0,v1,v2 to v3,v4,v5. You can think of v0,v2,v3 as the negative corner of a box around the origin and v3,v4,v5 as the costive corner of a box around the origin. To generate particles with a starting velocity between -.5,-.5,-.5 and 1,1,1, the params below would be -.5,-.5,-5,1,1,1,0,0. To generate particles with upwards velocity but spraying out to the sides (like a fountain), you could try something like 50,-10,-10,80,10,10,0,0.

Sphere - v0,v1,v2 is the center point, v3,v4 are radius 1 and radius 2. Particles should be generated with a velocity between v3 and v4, randomly distributed in a circle. I believe v0,v1,v2 are ignored or write and ask me. :)

Blob - v0,v1,v2 is the center point, v3 is the standard deviation. See generation shape parameter documentation for Blob for more info. I believe v0,v1,v2 are ignored.

Starting velocity parameters - Seven floating point values, all comma-delimited. Make sure there aren't any spaces there and that the format stays exactly the same or it may not work. :( See Starting Velocity Shape above to see how the numbers are interpreted..

v0,v1,v2,v3,v4,v5,v6,v7

Scale particle over time - If this value is different than 1.0, the particle will scale to this value towards the end of its life. For example if you wanted a smoke particle to grow to three times its size (to dissipate) you could enter three here and it would gradually grow. This field will only have an effect if particle lifetime is something than -1 (i.e., the particle can't live forever).
Max alpha - Enter a value from 0 to 1. If other than 1, generated particles will draw with a max alpha of this value. If you want a very subtle and faint particle effect, you could enter a value of maybe .4 here. The default is 1.
Render mode - There are five blend modes that particles can be drawn in. The Half-life SDK seems to be broken however so I would only use the most useful one for now, additive mode.
Particle system to generate on collision - This is a powerful feature. If you type the name of any other particle system name here and check the "collide" flag, than particles that hit the world or a player will die and generate a new particle system at that point. Rain drop splatters are simulated using this method in one of the example maps below. For best results, use particle systems with a generation shape of "Point" here, as the point will represent the point of contact.
Flags
Start on - Checking this means the system starts on and doesn't have to be triggered initially.
Particle density - This option is very useful for particle systems with a large generation shape. If checked, this means that particle rate (above) will be interpreted as a factor times the volume of the generation shape, not actual particles per second. This means you could make a snow storm over an area and then just make the generation area bigger and the snow would fall with the same density. It calculate the number of particles to generate per second as the (generation shape width/100) * (generation shape height/100) * (generation shape height/100)*generation rate.
Fade in - If this is checked, and particle lifetime (not particle system lifetime) is finite, then the particle will fade in gradually over it's lifetime. If max alpha is set, it will fade from 0 to max alpha, otherwise it will fade from 0 to 1.
Fade out - If this is checked, and particle lifetime (not particle system lifetime) is finite, then the particle will fade out gradually over it's lifetime. If max alpha is set, it will fade from max alpha to 0, otherwise it will fade from 1 to 0. If both fade in and fade out are checked, it will fade from 0 to max alpha then back to 0.
Use world gravity - Checking this applies the world gravity to each particle.
Tris, not quads - Using this option draws all particles as triangles instead of squads (pointy side up). The texture coordinates are <0,1>, <.5,0>, <1,1> (starting at bottom left, going clockwise). Quads use texture coordinates of <0,1>, <0,0>, <1,0>, <1,1>. This will roughly halve the performance hit of drawing the particle system but may not look good for all systems.
Minimize edges - This parameter doesn't work quite right yet but it attempts to look at particle size and change the generation area so particles aren't generated so as to leave their generation area. They could still move outside their area, but this could help reduce lines when particles z-buffer with world.
Constrain pitch - Checking this means particles won't rotate up or down to face the player. This can look better for some types of "falling" effects.
Collide - Checking this means the particles will collide with the world. After colliding, they will disappear and if a collision particle system is specified, they will generate that at the point of collision. Using this could have big performance implications, so be sure to notice and tweak accordingly.
 

 

 

 

Tweaking your particle systems

There are so many parameters, how do you make your particle system look good? You can tweak your particles in real-time, inside the game! Here's how.

1. Create your custom particle system in Worldcraft. You may need to set up temporary entities to make it easy to repeatedly trigger your particle system. Compile the map, then test out your map inside Natural Selection.

2. Walk over to the particle system you want to tweak so you can see it.

3. Bring up the console (hit the ~ key), type "listps", then hit enter. It will show you a list of all the particle systems that the game knows about right now. Most of these are used by the game itself, but the custom ones that your map created should be listed at the bottom. Each particle system should have the name you assigned in Worldcraft. Find the name of the particle system you want to tweak.

4. While still in the console, type "editps <particle system name>" where the second parameter is the name of the particle system to tweak (without the <> or "'s). Close the console by hitting ~ again, then you should see a message that says something like "found particle system, hit F4 to edit". If you don't see this, or you see an error message, try again, but make sure you type it exactly as shown by the listps command.

5. Now hit F4. You now have access to most of the parameters specified in your env_custom_particles entity, but you can change them in real-time! The label next to each slider always shows you the current value of that slider. Go crazy and tweak your system while it's playing, occasionally hitting F4 to temporarily hide the editing controls so you can walk around and see everything from other angles. When you're happy with your parameters, write down the values you changed, or take a screenshot. Now go back to Worldcraft and enter these values back into your env_custom_particles entity and you're done!

Note. Whenever you change the "max particles" parameter, all the active particles are immediately deleted. This is a technical limitation, not a bug. Typically you'll just have to wait a couple seconds after changing this before the particle system is back to normal.

Ready room entities
info_player_start
These are the spawn points for the ready room. All players use this, because they haven't chosen a side yet. Make sure to have at least ten of these in the ready room. See the above section on the ready room for crucial information.
info_join_teamone
When a player touches this, he will join the marine team, if possible. If the team is full or the game can't be joined, he will observe that team, and join when he can. This is an invisible entity that should be placed inside the "Join marines" doorway in the ready room.
Info_join_teamtwo
When a player touches this, he will join the alien team, if possible. If the team is full or the game can't be joined, he will observe that team, and join when he can. This is an invisible entity that should be placed inside the "Join aliens" doorway in the ready room.
info_join_autoassign
When a player touches this, he will join the team with the fewest number of players, if possible. If the teams have the same number of players, he will join a random team. If the game is full or the game can't be joined, he will observe that team, and join when he can. This is an invisible entity that should be placed inside the "Auto-assign" doorway in the ready room.
info_spectate
When a player touches this, he will get a free-roaming spectator view of the game in progress. He is not allowed to join either side for the game in progress, no matter what, as he has now had the opportunity to see the whole map. When the next game starts, he will spawn back in the ready room and be allowed to join a team manually.
info_leave_game (not implemented)
When a player touches this, he will leave the game in progress and go back to the ready room. One of these should be placed near each base and perhaps a few others around the map for ease of use. They should be placed in highly visible place and be clearly marked but should only be able to be used deliberately. This is currently unimplemented and may never be.
info_leave_server (not implemented)
This is placed in the ready room, away from from the join team doorways. Touching this will disconnect from the server. This is currently unimplemented and may never be.

 

Main game entities
hive

This entity specifies where a random alien hive could spawn in. Most maps will want at least three of these, with four probably being the best number. One of these hives is chosen at random for the first hive, then the info_teamtwo_start entities around it are used to spawning in players. Later in the game, more hives will come online at the other hive locations. Choose a model to specify what the hive looks like.

Model: This is the model that is displayed for the hive. There is no artwork for it yet, I'm using "models/hive.mdl" for now. The model is only drawn when the hive comes online.

Max dist to nearby spawn points: When an alien spawns at this hive, the game randomly selects a spawn point within this range of the hive. In this way, the map creator can place alien spawns how he likes without worrying that aliens spawning at the wrong places. It allows maximum flexibility, so two hives could be very near each other, but separated from a wall, and the spawns could still be made to function correctly.
Hit points: This is how much damage a hive can take before it dies. When all of an alien team's hives are destroyed, they can no longer respawn or get points. The alien team could still win though...the team that outlives the other is the winner.
Armor value: How much armor the hive has. Armor lessens the damage the hive takes, the same way armor protects the player (and monsters) in Half-life.

 

info_teamtwo_start
At least ten of these should be placed in around each each hive entity. When a player joins the alien team, or respawns after death as an alien, he comes back to one of these.
info_dropship (not implemented)
This will somehow define the safe area for marines and the aliens may not be allowed in this zone, or it may have other special properties. There should be a group of info_teamone_start entities placed nearby or within this zone.
info_teamone_start
This is a spawn point that's used when a player joins the marine team or when a marine respawns after dying or being brought in as a reinforcement.
func_seethrough
(classified for now, coming soon)
func_viewheight
(classified for now, coming soon)
func_waypoint
(classified for now, coming soon)
info_mapextents
(classified for now, coming soon)
func_weldable

This entity lets you create areas of the map that can be welded shut or cut through, by the marine's use of the welder. Create the geometry as it is completely opened, then create a brush that represents the part to be welded. For a grating to cut through, this might be a square piece of grating. For a ventilation shaft that could be closed off, this might be a metal plate or something that could've been created out of nearby materials. Place the brush in place so the area is "closed", then create an func_weldable out of it. Note that func_weldables must be enabled before they can be welded on. This means a weldable could be triggered to a door state, so the door must be closed before welding could commence. Many weldable entities will use the "start enabled" flag. If you can't weld your entity, make sure this is set first.

Health - This is how many hit points the weld has after it is closed. This is only valid for closable welds, not openable ones (see the flags below). Set to -1 to create an entity that once welded, is impervious and cannot ever be destroyed.
Weldable time - This is how many seconds of welding it takes to complete the job. This is either how much time it takes to seal off an area or cut through it, depending what flags are set. Most weld jobs should take upwards of twenty, some quite a bit longer that that.
Weldable sounds - Currently unimplemented. This may eventually be the file list of sounds that welding this entity produces. Is this worth putting in?
Start alpha - No longer implemented. Welding used to cause the entity to fade in, but no longer does. This set the beginning alpha, so potential weld jobs were always visible.
Target to trigger on finish - This trigger will fire when the welding is completed. This can be used for cool and complex visuals such as girders falling, sparks and sounds triggering, doors falling open, etc. Good idea, Hectate!
Material - This is the type of material the welding entity looks like it is made of. When cutting through, this is the type of material chunks will break and fall. When applied to a closable weldable entity, this will be used when and if the welded entity is destroyed by damage (see the health field above). Either way, chunks are made out of the geometry and sounds are played, much like func_breakables.
Flags
Start enabled - Means the entity doesn't have to be "switched on" before the marines can start welding it.
Weld opens, not closes - Check this to create a weldable entity that is cut open instead of shut. When this is checked, the entity will start off visible and will disappear and break into pieces when welding finishes.
Always draw, don't fade - No longer implemented. This used to disable fading as construction occurred.

 

Sound entities

 

target_mp3audio

This entity lets you trigger .mp3 playback in your maps. This can be used for subtle background creaking and groaning, the hum of space, a dash of music, simulated gunfire in the next room, etc. This entity is useful because it allows very high-quality sound in maps, for smooth clean (almost inaudible!) bass, and static-free sound playback. The compression of .mp3 files also means you can include more and longer sound samples, with shorter downloads than .wav files. This entity is fully triggerable, so maps can turn sounds on and off and work with all sorts of triggers.

Sound name - This is the relative path name to the .mp3 file to that this entity plays. By convention, .mp3s should be placed in the sound directory and should be named "mapname-sound.mp3". This will help prevent file name collisions and files from being overwritten. For example, if your map is called ns_derelict, this might be: "sound/ns_derelict-gunfire.mp3", "sound/sound/ns_derelict-shipcreaking.mp3". This might change in the future to force this convention. MP3s can be any format, any size and can be stereo. MP3s are streamed, so it doesn't really matter how big it is, less than 200k will be loaded at any given time.
Volume -The base volume to play the sound. Valid values are from 0 to 255, with 255 being full volume. The actual volume a player hears the sound will be modified by the fadedistance parameter. When a player is very close to the target_mp3audio entity, the sound will play at this volume.
Fade distance (inaudible here) - This is the distance in world units at which the sound becomes totally inaudible. As the player moves away from the entity, the sound fades out.
Flags
Don't fade volume- The sound will ignore the player's position and fade distance and always play at the same volume.
Looping - The .mp3 will loop until the entity is triggered off.

 

Marine buildings

Any building that normally need to be built by players start fully contructed. TODO: Add a team designator if allowing marines vs. marines or aliens vs. aliens.

turret -
siegeturret -
phasegate -
cameratower -

 

 

 

Equipment

These entities won't be used in most Natural Selection maps, but they can be used for unique scenarios or for testing or training maps. Weapons, building and equipment are normally purchased by marine players during the course of the game. Use these entities to place "free" stuff around the level. Each weapon starts with the default amount of ammo.

Marine weapons

 

item_machinegun -
item_shotgun -
item_heavymachinegun -
item_grenadegun -
item_nukegun -
item_flamegun -
item_genericammo -

 

Marine buildings

Any building that normally need to be built by players start fully contructed. TODO: Add a team designator if allowing marines vs. marines or aliens vs. aliens.

turret -
siegeturret -
phasegate -
cameratower -

 

 

Coming soon, sample maps showing how to every custom entity here.