Using RQ3 Entities

Breakable Entities

Breakable entites are called func_breakable. The type and id keys must be assigned.

TYPE
Type is the shape/appearance of the broken pieces. There are several different shapes of breakables and most shapes have several variations on appearance. Look in rq3-pak00.pk3 to see all of the types.

The basic types are:
Each of those 7 types has a different shape to it and uses different sounds (except for brick and rubble which use the same sounds). Then there are different variations which use different shaders/textures or sizes.

Full list:
Due to the file structure, all of the type_variation breakables will look to the 'parent' breakable for any files it needs that it doesn't have. For example, there are no breaking sound for glass_tinted because it looks to glass for sounds. This doesn't really affect you, but it was one way we tried to keep rq3-paks small. It also makes it easy for you to make your own breakables, which will be handled in the Adding Custom Breakables page.

ID NUMBER
The id (short for identification) key is the method we use to save on bandwidth. If we tried to send ALL of this information from the server to the clients every time a breakable was shot, it would cause lag. Each breakable has an identification number that pre-caches a lot of the information so that the client already knows most of the info about the breakable so that it doesn't have to be sent from the server. There is a limit of 64 id numbers per map (0-63).

Each id assigned in a map carries with it certain info: type, health, lift, and force. Two breakables that vary in any of those four ways must have a separate id. It doesn't carry amount or any targeting information.

SPAWNFLAGS
There are 4 spawnflags. The first one, chippable, makes it spawn pieces without necessarily breaking apart. You can give a brick wall health: 1000 and make it chippable and it will spawn pieces every time it's shot, but won't break until the health limit is reached.

The 2nd one makes it never break. The hay in Pastoral is chippable and unbreakble.

The 3rd one makes it explode and cause damage. See the damage and damage_radius keys for control over damage.

The 4th one makes it unkickable. The hay in Pastoral also has this flag so you don't set it off when you jump over it.



Doors & Buttons

There are 3 types of entities in this section: buttons (func_button), sliding doors (func_door), and rotating doors (func_rotating_door). The three share many characteristics such as target, targetname, pathtarget, etc..., but there are differences.

BUTTONS
Buttons are unaffected by /opendoor commands from the client. They must be pushed (or, if the health key is set, shot). They can't be toggled or rotated. They should be used in areas where pushing a button is most logical, like an elevator. They are better than doors when you have several in close proximity because the /opendoor command may trigger more than one door at a time.

SLIDING DOORS
This is the basic Q3:A door entity. The big difference is that you need to use /opendoor to open them (there is a spawnflag called auto_open to restore Q3:A usage). We've added a great deal of functionality to them. You can set the sound paths for when the door is opening, closing, or moving. You can make them remain in an open position with the toggle spawnflag.

ROTATING DOORS
These entities are not native to Q3:A. They behave very much like sliding doors, but they require an origin brush to define the axis around which the door opens.



Elevators & Trains

There are 3 types of entities in this section: platforms (func_plat), elevators (func_train with targetname), and trains (func_train with no targetname).

PLATFORMS
The func_plat will stop at the top of it's path only until the player steps off. If you want a platform that stops at the top and bottom and must be activated by /opendoor, use a func_door entity with the toggle spawnflag set. Platforms can be seen in the Sludge.

ELEVATORS
In Reaction, elevators are implemented by setting a targetname on a func_train and using a wait of -1 on the train's path_targets. Here is a step-by-step procedure:

TRAINS
Trains are func_train entities with no targetname set. They behave just like trains in Q3:A: they start on and move continuously.


Pendulums

Func_pendulum will not automatically kill a player that touches it.

If you wish to rotate a mapobject on an axis other than the z-axis, you can use a func_pendulum.
See the Reaction entities.def File page for more information.


Pressure Entities

Pressure entities, func_pressure, make a jet of some fluid or substance emanate from the entity when it is shot. Currently available are steam, air, flame, set with the type key. This is for visuals only; the jets do not cause damage. You have no control over the direction of the emanation. You do have control over the speed.

There are plans to add water, oil, and sparks in the future.


Video Cameras

Video cameras, as seen in Bank and Bullmarket, require two entities: misc_portal_camera and misc_portal_surface. Here's a step-by-step:




Return to Mapping Guide




Last updated: July 28, 2002
Valid for RQ3 Beta 2.1