[ Info_Entities | Lights | Misc. | Ambient Sounds | Trap Entities | Intermission Cameras ]
info_null : Used as a placeholder (removes itself) info_notnull : Used as a placeholder (does not remove itself)
Info_null is used as an empty placeholder for a targetname For example, if you want to aim a light in a particular direction, taking advantage of the shadowing capabilities of Quake's engine, then you would use an info_null where you want the light aimed, then give it a targetname that corresponds with the light's target name.
info_notnull is the same as info_null in functionality, but info_null is removed from the .bsp after light.exe is run, where info_notnull is left in the entity lump.
info_player_start : Main player starting point (only one allowed) info_player_deathmatch : A deathmatch start (more than one allowed) info_player_coop : A coop player start (more than one allowed) info_player_start2 : Return point from episode
All of these entities are totally straightforward. You can't substitute or duplicate these placements. If you want a single-player map to also be useable in deathmatch, you must add at least six info_player_deathmatch starting points as well. Ditto for the info_player_coop points.
The player's direction is not set with the 360 degrees, like some items. Select the player, then select Rotate from the menu. From the right or front view, click and drag to the left or right and you'll see the wireframe character turn on his axis. This determines which way he faces.
This also works for monsters and teleporters.
info_player_start2 is used for players coming back to a map but retaining their runes. id used it in Quake so your character returns to the Start map without having to go through the difficulty setting teleporters. They also remove all of your weapons and armor in code. The entity itself won't do it. Use this only in a similar situation to the Quake game itself: restarting a map you've been to, with Runes in hand.
These are the fireballs you see shooting up from the lava pit you have to jump to reach the Hard level start teleporter in the Quake opener. They have two properties: origin and speed. They are placed with the entity tool, and speed is adjusted in SmartEdit. You can change the speed property to make them shoot higher. Right-click on the fireball after you place it, select Properties, and click on the one option, Speed. It defaults to 200. The higher you set it, the higher it shoots up. It does 5 HP of damage to the player.
misc_explobox : Large Nuclear ContainerPlaced with the Worldcraft Entity Tool. You see these in E1M1 and other Base-oriented levels. They explode when shot, gibbing any monsters in the area and you if you're stupid enough to stand next to it when you shoot it.
misc_teleporttrain : Spiked ball needed to telefrag monster_oldoneUsed in the last level of Quake to kill Shub-Niggurath. Could be used for other amusing floating entities in a level. Use it with a path_corner (defined in Structures)
trap_spikeshooter : Shoots spikes (nails)
trap_shooter : Fires nails without needing to be triggered.
This is the standard spike shooter. You place it with the Entity tool inside the box or hole of your choice and set the angle for the direction you want the shots to come out, as per the overhead view. angle -1 shoots up, -2 shoots down. You also need to set the Wait, which is the delay between shots. Default is 1 second, which can be made as low as 0.2.
Trigger your trap with a trigger_multiple, and set the Delay before reset in Smartedit, which is same as the wait key value, for the time between shots that you desire (you can enter any decimal value, such as 1 or 0.2 or whatever. I think 0.2 is about the fastest it will actually fire. It is important that you place the trap_spikeshooter in a large enough space that the shots can exit - treat an 8x8 box as the bare minimum (you may have problems centering it so it works in that size box. Under the trap_spikeshooter's spawnflags you can select 'laser' or 'superspike' (more damage).
The trap_shooter runs constantly at about a 1-shot-per-second rate unless you set a different value in the 'wait' keyvalue. The wait sets time between shots. The other keyvalues work the same as for the trap_spikeshooter. Note that you can get an interesting effect by assigning a target_name value to a trap_shooter and then triggering it with a trigger_multiple - the trap will shoot at the rate you selected with the 'wait' until you trigger it, then it 'adds' shots according to the wait value on the trigger_multiple. If you set wait=0 on the trigger, the shooter will run 'full blast' when triggered.
Every light and light-emitting entity has spawnflags to control their behavior. They are, by and large, consistent from one light to the next and all are set via the "Class" menu in "Properties"
All light items are switchable. They default to 'on,' but you can make them default to off in the Spawnflags. If you use generic "Light," there are four menu items:
Regular light has four flags: brightness, appearance, the on/off state, and a target. You assign a target to a light and an info_null or info_notnull to make light shine in a particular direction.
The other flags are set in Worldcraft's Class Info menu options. They break down as follows:
Style: 0 - normal 1 - flicker (first variety) 2 - slow strong pulse 3 - candle (first variety) 4 - fast strobe 5 - gentle pulse 6 - flicker (second variety) 7 - candle (second variety) 8 - candle (third variety) 9 - slow strobe 10 - fluorescent flicker 11 - slow pulse, not fading to black
I don't like to use Target and Name, I prefer to simply turn off SmartEdit and enter 'target' and 'targetname' because in my mind that's consistent with how Quake thinks. To each his own.
For all of the other light entities, there are only three options: "Target" has been removed since these lights remain on at all times and are not switchable (I have to admit, a switchable torch sounds intriguing).
Tom Mustaine, aka Paradox, had this to say in his .plan about lights. It's definitely worth putting here.
Blinking lights are the #1 slowdown for the Quake engine. If you do a R_SPEEDS 1 on your level, and the last number ( xx surf ) is over 50 for any constant time, your level is going to be WAY too slow. What that means is that the engine is redrawing xx surfaces every cycle. Even though Quake's surface cache is the fastest out there, its not that fast. In English: *Don't make every light and torch in your level flicker/blink/or fade!! *If you have a big complex room with lots of surfaces, don't even put *1* blinking light in there. That single light will affect every surface in that room (if its bright enough) making the surface redraw jump extremely high, and slowing down performance greatly. *If you do use a blinking light, do it in places where there will be low traffic, or where players wouldn't be firing rockets at any given time. A rocket dynamic light act's upon the surface cache just like a blinking light, and if you have two or three players in there firing rockets at each other, ON TOP OF blinking lights in the level, the players will get tremendous slowdown. *This doesn't mean that you can't use blinking lights in places, just use them right. Many levels I look at would play very well if they were not ridden with blinking lights.
Use these around water. Don't go too crazy with them because they do have to be redrawn. Don't use them with lava, it would look retarded.
ambient_drip : Dripping sound ambient_drone : Engine/machinery sound ambient_comp_hum : Computer background sounds ambient_flouro_buzz : Fluorescent buzzing sound ambient_light_buzz : Buzzing sound from light ambient_suck_wind : Wind sound ambient_swamp1 : Frogs croaking ambient_swamp2 : Slightly different sounding frogs croaking ambient_thunder : Thunder sound
This is fairly straightforward. The volume or area covered by these sounds can't be adjusted, unfortunately, so if you want the sound to stick around you have to space them out. I place them about 256 units (in a WC map) apart. Use the sounds appropriately. ambient_flouro_buzz would look ridiculous in a medieval-flavored level.
ambient_thunder is messed up in the PAK from id. The WAV file has to be looped. Hipno fixed it in theirs. Apparently there is a fixed WAV file that is looped, but you have to do a lot of futzing with your system, and I don't want to be responsible for anyone fucking up their Quake config. :-)
Quake will take its own shots from the level when you finish. You can place if you want a specific area to be shown when the level ends, like an area where there's a lot of carnage. The following contribution from Jay Gill (aka Zaphod) should answer any questions (if not, ask him. :-))
How Do I Make An Info_Intermission Camera?
This is one of those projects that started from my own frustration at seeing lots of explanations floating around, most of which were inaccurate or incomplete. After a lot of experimentation, I believe I understand how the intermission camera works well enough to explain it.
First, I will assume you are using an editor like Worldcraft(tm) that allows you to insert the info_intermission camera as an entity. The first step would to insert your info_intermission entity at the point you want the camera to be, i.e. the origin of the camera view.
After you have your camera placed, you will need to add a keyvalue to the info_intermission. In Worldcraft, right-click on the entity and select 'properties', then make sure the 'SmartEdit' is OFF (click on it if necessary to make it look like it is NOT depressed). Click the Add button, then in the attributes dialog box, under 'Key' type in mangle (make it all lower-case letters), then under 'Value' type in the X Y Z rotation values (I will explain these below) separated by spaces - NOT commas - for example, 45 270 0 , then click on 'OK'. That's it! Your camera is ready... I think the info_intermission works for both deathmatch and single-player levels (single player levels are ended with info_changelevel entity, which is set like a trigger - you make a brush, then tie it to the info_changelevel entity).
Determining the Mangle Values
This is the most confusing part of setting the info_intermission. The values of 'mangle' determine a viewing angle in x, y, and z planes. I have illustrated below how the X, Y, and Z values are determined.
Think of the X value as a 'tilt-up or tilt-down' adjustment in your view. A positive value of X will tilt the viewpoint down, and a negative value will point the camera up. 90 degrees positive would point the camera straight down.
The Y value sets the rotation about the Z axis. The easiest way to visualize this is to use the XY 2D view (the 'overhead' view). A 0 value for Y will make your view point in the +X direction (to the right), and a 180 value would make your view point to the -X direction (to the left), and a +90 value would make your view point in the +Y direction (towards the top of the XY view).
Finally, the Z value sets a rotation about the XY plane. I can't imagine too many cases where I would set this to anything other than 0 - it will tilt your viewing angle clockwise for a positive value of Z (for example, when you get gibbed, your viewpoint changes in this fashion, changing 90 degrees in the Z direction plus or minus). I would suggest leaving this at 0 for most cases.
Portions Copyright (c)1996-97 Niklata and Thomas Winzig.