GtkRadiant Editor Manual


Appendix D: Tricks, Tips, and Tutorials

Making the death fall sound…

The death yell that occurs when a player or bot falls into the void or fog of death is triggered by the falling character passing through a trigger multiple (should be no less than 32 units thick) that is targeted on a target_speaker. If you look at q3DM17 and find a target speaker, you will see that it plays the falling to death sound of the player who activates the trigger. Put that sound in your own target_speaker.

Making a Mirror …

Apply a mirror texture to brush (it will only work on brushes, not curve patches). Next, place a misc_portal_surface entity within 64 units of the mirror and at roughly eye level for the character. Because a mirror shows all that it can "see" the mapmaker needs to take special care that his mirror doesn't see so much of the map that it affects game performance.

Making a Jump Pad

  1. Make the brush that contains your pulsing pad texture. It can be set in the floor or raised up on separate brush.
  2. Make a trigger_push brush entity that is smaller than the pad (the id triggers are usually octagonal).
  3. Create a target_position entity and move it to the height and location you want. The target position is both the aiming point for the trigger_push and the highest point (apex) of the assisted jump.
  4. Hi-light the trigger first, then the target_position (order is important).
  5. Press CTRL + k to connect the two entities (pointing the first at the second).
  6. Compile and test it. The first compile needs to be a full or fast vis. If you need to make adjustments to the target_position, you only need to use an entities compile.

Lining Up the Pad Texture
The combination of shader keys that make the jump pad pulsing texture work can be tricky to line up. Try the following methods if your own attempts bring no joy.
  1. Make the brush that will be your pad (128x128 units).
  2. Apply the pad texture. If it doesn't line up, turn off the lock texture feature and move the pad until it lines up perfectly.
  3. Lock the texture and move the brush into position.

If that doesn't work:

  1. Build your brush in place.
  2. Apply the pad texture so that several corners of the pad circle are visible.
  3. Compile a regioned area with the jump pad in it.
  4. At least one of the pad circles should have a pulsing circle in it.
  5. Back in the editor, slide the pad circle with the active pulse so it fills the pad.
  6. Recompile. It should work now.

Making a Launch Pad

Target the trigger_push that you put above the pad at a target_position. The player will accelerate until he reaches the target. Physics does the rest.

Note: The center point of the target must be higher than the center point of the trigger_push.

Making a "Rocket Arena" style map

  1. Create all the entities you want the player to spawn with when he enters the arena, and make sure they are somewhere within the enclosed space of the map.
  2. Add a "target_give" entity somewhere in the world.
  3. Create all the spawn spots you want to be in your map.
  4. Select the "target_give" entity.
  5. Select one of the "give on spawn in" entities.
  6. Hit Ctrl-K in the editor to link the two items together.
  7. Repeat steps 4 through 6 until the target_give is linked to all the entities you wish the player to spawn into the world with.
  8. Select a spawn spot
  9. Select the target_give entity
  10. Hit Ctrl-K in the editor to link the two entities together.
  11. Repeat steps 8 through 10 until all the spawn spots are linked to the target_give entity.
  12. Compile the map
  13. Set g_gametype to tournament mode and set fraglimit of 1.
  14. Get a bunch of your friends to connect into your server and have fun playing a "Rocket Arena" style game =)

An alternate use of target_give is how I used it in q3dm10 to create the "power tube" that gives you health and armour. The tube has a trigger_multiple with a wait of 0.5, linked to a target_give which is linked to a small health and an armour shard.

Making an Environment Box …

This is the shader script taken from the sky.shader that I used to make a test sky box months and months ago.

In baseq3, make an 'env' folder.

Put your skybox art in here and use this naming convention:

[skyname]_lf.tga
[skyname]_rt.tga
[skyname]_ft.tga
[skyname]_bk.tga
[skyname]_up.tga
[skyname]_dn.tga

In shaderlist.txt put [mymapname] on the first line and close the document.

//*******************************************************
//*	    Sample environment box shader
//*******************************************************

textures/[mymapname]/[skyname]01

{
	qer_editorimage textures/[mymapname]/[skyname]

	surfaceparm noimpact
	surfaceparm nolightmap
	surfaceparm sky
	q3map_sun 0.933333 0.541176 03.13725 60 160 11
	q3map_surfacelight 100 //lots of diffuse light
	skyparms - 512 -
	sky env/[skyname]

// the following stuff lays clouds over the skybox map which you may not want with a city skyline
	//{
	// map textures/skies/dimclouds.tga
	//
	// tcMod turb 0 0.001 0.5 0.001
	// tcMod scale 3 3
	// tcMod scroll 0.01 0.01
	// blendFunc GL_ONE GL_ONE_MINUS_SRC_COLOR
	// depthWrite
	//}
	//{
	// map textures/skies/pjbasesky.tga
	// blendfunc GL_ONE GL_ONE
	// tcMod scroll -0.01 -0.01
	// tcMod scale 5 5
	//}
//}

Making a Shooter

The shooters; shooter_rocket, shooter_grenade, and shooter_plasma all fire a single projectile when they are triggered by an event.

Back | Home | Next