Skip to main content

idTrigger_BouncePad & idInfo_BounceDestination

Entities that propel a player to a target destination.

A bounce pad consists of either three or four entities:

  • A trigger that actually launches the player.
  • A destination for the trigger to target.
  • A particle emitter.
  • Dynamic entities to render the pad on the ground. Some pads might be made of multiple models spread across multiple dynamic entities, other pads instead are rendered by the map geometry itself and have no dynamic entities at all, and therefore cannot entirely be visually removed.

Each map has specific models available for rendering a jump pad.

Hell Pad

entity {
	entityDef blood_swamps_trigger_bouncepad {
	inherit = "trigger/bounce_pad";
	class = "idTrigger_BouncePad";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = true;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		launchFX = "fx/bounce_pad/basic";
		spawnPosition = {
			x = -48.06;
			y = 307.64;
			z = 7.36;
		}
		renderModelInfo = {
			model = NULL;
		}
		clipModelInfo = {
			type = "CLIPMODEL_CYLINDER";
			size = {
				x = 3;
				y = 3;
				z = 3;
			}
			numSides = 10;
			clipModelName = NULL;
		}
		destination = "blood_swamps_bounce_destination_3";
		launchSpeed = 27; //if the destination is too far away from the trigger, try increasing this.
		useLowArcInsteadOfHigh = true;
		triggerFirst = false;
	}
}
}
entity {
	entityDef blood_swamps_bounce_destination {
	inherit = "info/bounce_destination";
	class = "idInfo_BounceDestination";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -44.92;
			y = 302.67;
			z = 14.35;
		}
	}
}
}
entity {
	entityDef blood_swamps_bouncepad_platform {
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -48.06;
			y = 307.64;
			z = 7.06;
		}
		renderModelInfo = {
			model = "art/kit/hell/medallion_pad_a.lwo$uvlayout_lightmap=1";
			scale = {
				x = 0.5;
				y = 0.5;
				z = 0.5;
			}
		}
		clipModelInfo = {
			contentsFilter = {
				playerClip = true;
			}
			clipModelName = "art/kit/hell/medallion_pad_a.lwo$uvlayout_lightmap=1";
		}
	}
}
}
entity {
	entityDef blood_swamps_bouncepad_emitter {
	inherit = "func/emitter";
	class = "idParticleEmitter";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		dormancy = {
			delay = 5;
			distance = 78.029007;
		}
		fadeIn = 0;
		fadeOut = 0;
		spawnPosition = {
			x = -48.06;
			y = 307.64;
			z = 7.36;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.52760612965;
					y = -0.82817548513;
					z = -0.18909542263;
				}
				mat[1] = {
					x = 0.84339135885;
					y = 0.53729975224;
					z = 0;
				}
				mat[2] = {
					x = 0.10160092264;
					y = -0.15948145092;
					z = 0.98195868731;
				}
			}
		}
		renderModelInfo = {
			color = {
				r = 0.301961005;
				g = 0.650979996;
			}
			emissiveColor = {
				r = 0.301961005;
				g = 0.650979996;
			}
		}
		particleSystem = "gameplay/bounce_pad_hell_01";
	}
}
}

Sentinel Pad

entity {
	entityDef world_spear_example_trigger_bounce_pad {
	inherit = "trigger/bounce_pad";
	class = "idTrigger_BouncePad";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = true;
	disableAIPooling = false;
	edit = {
		demonPlayerCanActivate = true;
		flags = {
			canBecomeDormant = true;
		}
		launchFX = "fx/bounce_pad/basic";
		spawnPosition = {
			x = 6.29999733;
			y = 179.149979;
			z = 11.1000032;
		}
		renderModelInfo = {
			model = NULL;
		}
		clipModelInfo = {
			clipModelName = "maps/game/dlc2/e5m1_spear/e5m1_spear/village_trigger_bounce_pad_17";
		}
		destination = "village_info_bounce_destination_17";
		launchSpeed = 18;
	}
}
}
entity {
	entityDef world_spear_example_func_emitter {
	inherit = "func/emitter";
	class = "idParticleEmitter";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		dormancy = {
			delay = 5;
			distance = 78.029007;
		}
		fadeIn = 0;
		fadeOut = 0;
		spawnPosition = {
			x = 6.28446245;
			y = 179.249954;
			z = 9.95248413;
		}
		renderModelInfo = {
			color = {
				r = 0.301961005;
				g = 0.650979996;
			}
			emissiveColor = {
				r = 0.301961005;
				g = 0.650979996;
			}
		}
		particleSystem = "gameplay/bounce_pad_sentinel";
	}
}
}
entity {
	entityDef world_spear_example_info_bounce_destination {
	inherit = "info/bounce_destination";
	class = "idInfo_BounceDestination";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = { // these should be different from that of all the other entities in this example
			x = 17.3500271;
			y = 179.149948;
			z = 13.7500429;
		}
	}
}
}
entity {
	entityDef world_spear_example_hell_chunk_2_func_dynamic_906_799096957 {
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -18.8634968;
			y = 310.511993;
			z = -18.1249714;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[1] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[2] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
			}
		}
		renderModelInfo = {
			model = "art/kit/sentinel/sentinelSmallKit/sentinelSmallKit_jumpPad_b_1p5x1p5.lwo";
			emissiveColor = {
				r = 0;
				g = 0.647059023;
			}
			emissiveScale = 0.5;
		}
		clipModelInfo = {
			type = "CLIPMODEL_NONE";
			clipModelName = "art/maps/user/souders/mars_core/uac_jump_pad_bs.lwo";
		}
	}
}
}
entity {
	entityDef world_spear_example_chunk_1_func_dynamic {
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -18.8633633;
			y = 310.511993;
			z = -18.1230907;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[1] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[2] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
			}
		}
		renderModelInfo = {
			model = "art/kit/sentinel/sentinelSmallKit/sentinelSmallKit_jumpPad_b_glow_1p5x1p5.lwo";
			emissiveColor = {
				r = 0;
				g = 0.780391991;
			}
			emissiveScale = 1.5;
		}
		clipModelInfo = {
			type = "CLIPMODEL_NONE";
			clipModelName = "art/maps/user/souders/mars_core/uac_jump_pad_bs.lwo";
		}
	}
}
}
entity {
	entityDef world_spear_example_chunk_2_func_dynamic {
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -18.8635921;
			y = 310.511993;
			z = -18.1262989;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[1] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[2] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
			}
		}
		renderModelInfo = {
			model = "art/kit/sentinel/sentinelSmallKit/sentinelSmallKit_jumpPad_b_glow2_1p5x1p5.lwo";
			emissiveColor = {
				r = 0;
				g = 0.498039067;
			}
			emissiveScale = 1;
		}
		clipModelInfo = {
			type = "CLIPMODEL_NONE";
			clipModelName = "art/maps/user/souders/mars_core/uac_jump_pad_bs.lwo";
		}
	}
}
}
entity {
	entityDef world_spear_example_chunk_3_func_dynamic{
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = -18.8634968;
			y = 310.511993;
			z = -18.1249714;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[1] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[2] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
			}
		}
		renderModelInfo = {
			model = "art/kit/sentinel/sentinelSmallKit/sentinelSmallKit_jumpPad_b_glow3_1p5x1p5.lwo";
			emissiveColor = {
				r = 0;
				g = 0.882353008;
			}
			emissiveScale = 7;
		}
		clipModelInfo = {
			type = "CLIPMODEL_NONE";
			clipModelName = "art/maps/user/souders/mars_core/uac_jump_pad_bs.lwo";
		}
	}
}
}

Celestial Pad

A jump pad on the Urdak-themed BattleMode map, Celestial. In this case, multiple particle emitters are used, one visible to only the slayer, the other to only the demon team indicating that demon players cannot activate this. The cooldown of this jump pad is imposed by a logic entity, which is beyond the scope of this page.

entity {
	entityDef game_func_dynamic_3 {
	inherit = "func/dynamic";
	class = "idDynamicEntity";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = 6.0999999;
			y = -14;
			z = -3.60000014;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = -0.999998212;
					y = -0.00189458777;
				}
				mat[1] = {
					x = 0.00189458777;
					y = -0.999998212;
				}
			}
		}
		renderModelInfo = {
			model = "art/kit/maykr/exterior/facade_pad_a_low.lwo";
			geoDecalMaterial = "art/tile/maykr/floats";
			geoDecalTint = {
				g = 0.756862938;
				b = 0.270588011;
			}
			scale = {
				x = 0.5;
				y = 0.5;
				z = 0.5;
			}
			colorScale = 6;
			emissiveColor = {
				r = 0.376471013;
				b = 0.878431022;
			}
			emissiveScale = 8;
		}
		clipModelInfo = {
			type = "CLIPMODEL_NONE";
			clipModelName = "art/kit/maykr/exterior/facade_pad_a_low.lwo";
		}
	}
}
}
entity {
	layers {
		"game/pvp/slayer_team"
	}
	entityDef game_gameplay_bounce_pad_uac_3 {
	inherit = "func/emitter";
	class = "idParticleEmitter";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		dormancy = {
			delay = 5;
			distance = 78.029007;
		}
		fadeIn = 0;
		fadeOut = 0;
		spawnPosition = {
			x = 6.0999999;
			y = -13.6999979;
			z = -3.49999976;
		}
		spawnOrientation = {
			mat = {
				mat[1] = {
					y = 0.258819342;
					z = 0.965925753;
				}
				mat[2] = {
					y = -0.965925753;
					z = 0.258819342;
				}
			}
		}
		renderModelInfo = {
			color = {
				r = 0.376471013;
				b = 0.878431022;
			}
			emissiveColor = {
				r = 0.0784313753;
				g = 0.694117665;
			}
			emissiveScale = 3;
		}
		particleSystem = "gameplay/bounce_pad_uac";
	}
}
}
entity {
	layers {
		"game/pvp/demon_team"
	}
	entityDef game_gameplay_bounce_pad_uac_10 {
	inherit = "func/emitter";
	class = "idParticleEmitter";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		dormancy = {
			delay = 5;
			distance = 78.029007;
		}
		fadeIn = 0;
		fadeOut = 0;
		spawnPosition = {
			x = 6.10000038;
			y = -13.6999998;
			z = -3.49999976;
		}
		spawnOrientation = {
			mat = {
				mat[1] = {
					y = 0.258819044;
					z = 0.965925813;
				}
				mat[2] = {
					y = -0.965925813;
					z = 0.258819044;
				}
			}
		}
		particleSystem = "gameplay/bounce_pad_uac_pvp_demon";
	}
}
}
entity {
	entityDef game_trigger_bounce_pad_3 {
	inherit = "trigger/bounce_pad";
	class = "idTrigger_BouncePad";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		flags = {
			canBecomeDormant = true;
		}
		launchFX = "fx/bounce_pad/basic";
		spawnPosition = {
			x = 6.0999999;
			y = -15.6999998;
			z = -3.20000005;
		}
		renderModelInfo = {
			model = NULL;
		}
		clipModelInfo = {
			clipModelName = "maps/game/pvp/pvp_bronco/pvp_bronco/game_trigger_bounce_pad_3";
		}
		triggerForAllClients = true;
		destination = "game_info_bounce_destination_2";
		failedTrajectoryBehavior = "FTB_TOWARDS_TARGET";
		launchSpeed = 25;
	}
}
}
entity {
	entityDef game_info_bounce_destination_2 {
	inherit = "info/bounce_destination";
	class = "idInfo_BounceDestination";
	expandInheritance = false;
	poolCount = 0;
	poolGranularity = 2;
	networkReplicated = false;
	disableAIPooling = false;
	edit = {
		spawnPosition = {
			x = 5.99995661;
			y = -42.9999695;
			z = -2.79999995;
		}
		spawnOrientation = {
			mat = {
				mat[0] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[1] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
				mat[2] = {
					x = 0.0;
					y = 0.0;
					z = 0.0;
				}
			}
		}
	}
}
}