Confiscation Field

This tutorial will show how to create a fully functional confiscation field. A field that will supercharge the Gravity Gun into a much more powerful version of it. If the player also happens to be carrying any other weapons, the field will fizzle them before supercharging the Gravity Gun.
== Entity Creation ==
=== Step 1 ===
thumb|Step 1
Start off by creating a 512x256x256 room. Keep in mind however, that the room does not have to be this exact size, but the confiscation fields seen in Valve's maps are a similar size to the size of the room that will be created in this tutorial.
=== Step 2 ===
thumb|Step 2
Create four 128x128 walls on opposite ends of the room. It is recommended that you have them at least 16 units off the ground. Create 4 prop_static entities, and set their World Model to models/props_combine/weaponstripper.mdl. Place them so that each hole has one of these prop_static's flush inside them. Make sure that the holes are sealed in the back as to prevent leaks.
=== Step 3 ===
thumb|Step 3
Create 4 env_citadel_energy_core entities and place them at the base of each confiscation field emitter. Give them the following keyvalues.
Property Name	Value
Name 	weaponstrip_emitterfx
Then go to the flag's tab and make sure the Start on flag is off and the No small particles flag is on.
=== Step 4 ===
thumb|Step 4
Create 4 info_target entities and place them in the same place you placed the 4 env_citadel_energy_core's, at the base of each emitter. Give them the following keyvalues.
Property Name	Value
Name 	weaponstrip_emitter
=== Step 5 ===
thumb|Step 5
Create 4 env_spark entities in exactly the same place as the last two steps. Give them the following keyvalues.
Property Name	Value
Name 	weaponstrip_emitterspark
Max Delay 	2
Magnitude 	Medium
Make sure all flags are unticked.
=== Step 6 ===
thumb|Step 6
Create 7 ambient_generic entities.
Name them as follows.
# ambient_weaponstrip_loop
# weaponstrip_sound_announce
# weaponstrip_sound_charge_start
# weaponstrip_sound_dissolve_start
# weaponstrip_sound_error
# weaponstrip_sound_security
# weaponstrip_sound_charge_loop
=== Step 7 ===
Add the following key values.
==== ambient_weaponstrip_loop ====
Property Name	Value
Name 	ambient_weaponstrip_loop
Sound Name 	d3_citadel.zapper
Start Volume 	10
Start Pitch 	50
On flags, tick Play Everywhere and Start Silent and untick Is NOT Looped.
==== weaponstrip_sound_announce ====
Property Name	Value
Name 	weaponstrip_sound_announce
Sound Name 	citadel.overwatch_weaponstrip
On flags, tick all.
==== weaponstrip_sound_charge_start ====
Property Name	Value
Name 	weaponstrip_sound_charge_start
Sound Name 	d3_citadel.weapon_zapper_start
On flags, tick Play Everywhere and Start Silent and untick Is NOT Looped.
==== weaponstrip_sound_dissolve_start ====
Property Name	Value
Name 	weaponstrip_sound_dissolve_start
Sound Name 	d3_citadel.weapon_zapper_charge_node
On flags, tick Play Everywhere and Start Silent and untick Is NOT Looped.
==== weaponstrip_sound_error ====
Property Name	Value
Name 	weaponstrip_sound_error
Sound Name 	citadel.overwatch_weaponstrip_fail
On flags, tick all.
==== weaponstrip_sound_security ====
Property Name	Value
Name 	weaponstrip_sound_security
Sound Name 	citadel.overwatch_weaponstrip_fail_security
On flags, tick all.
==== weaponstrip_sound_charge_loop ====
Property Name	Value
Name 	weaponstrip_sound_charge_loop
Sound Name 	d3_citadel.weapon_zapper_ambient_loop
On flags, tick Play Everywhere and Start Silent and untick Is NOT Looped.
=== Step 8 ===
thumb|Step 8
Create 4 light entities. Place them at the emitters 8 units away from the info_target entities. Give them the following key values.
Property Name 	Value
Name 	weaponstrip_emitterlight
Brightness 	225 241 255 250
Appearance 	33
Custom Appearance	mmnmmommommnonmmonqnmmo
Make sure the flag Initially Dark is ticked.
=== Step 9 ===
thumb|Step 9
Create 4 trigger brush entities. Make them the size of the room. Make the first 2 brush entities a trigger_vphysics_motion, make the third one a trigger_weapon_dissolve and make the fourth one a trigger_weapon_strip.
Give them the following keyvalues
==== trigger_vphysics_motion 1 ====
Property Name 	Value
Name 	weaponstrip_motion_disable_player
Start Disabled 	Yes
Filter Name 	filter_weapon_strip_player
Scale gravity of objects in the field.	2
Max velocity in field 	8
Max amount to reduce velocity 	0
Velocity scale/drag 	0
Angular Velocity scale/drag 	0
Linear force 	0
On flags, make sure only Clients is ticked.
==== trigger_vphysics_motion 2 ====
Property Name 	Value
Name 	weaponstrip_motion_disable
Start Disabled 	Yes
Filter Name 	filter_weapon_strip_weapons
Scale gravity of objects in the field.	0.0
Additional air density for drag 	0.5
Max velocity in field 	2
Max amount to reduce velocity 	32
On flags, make sure only Physics Objects and Everything is ticked.
==== trigger_weapon_dissolve ====
Property Name 	Value
Name 	weapon_dissolve
Start Disabled	Yes
Filter Name 	filter_weapon_strip_weapons
Emitter Name 	weaponstrip_emitter
On flags, make sure only Physics Objects and Everything is ticked.
==== trigger_weapon_strip ====
Property Name 	Value
Name 	weapon_strip
Start Disabled	Yes
On flags, make sure only Clients is ticked.
=== Step 10 ===
thumb|Step 10
Create a game_ragdoll_manager and a game_weapon_manager. Give them these keyvalues.
==== game_ragdoll_manager ====
Property Name 	Value
Max Ragdoll Count	5
==== game_weapon_manager ====
Property Name 	Value
Weapon Classname 	weapon*
Max Allowed in Level	4
=== Step 11 ===
thumb|Step 11
Create a filter_activator_name and a filter_activator_class. Give them these keyvalues.
==== filter_activator_name ====
Property Name	Value
Name 	filter_weapon_strip_player
Filter Name 	!player
==== filter_activator_class ====
Property Name 	Value
Name 	filter_weapon_strip_weapons
Filter Classname	weapon_*
=== Step 12 ===
thumb|Step 12
Create 8 logic_relay entities. Give them the following keyvalues.
==== logic_relay 1 ====
Property Name	Value
Name 	logic_room0_start_scan
==== logic_relay 2 ====
Property Name	Value
Name 	logic_room0_end_scan
==== logic_relay 3 ====
Property Name	Value
Name 	strip_stop
==== logic_relay 4 ====
Property Name	Value
Name 	logic_weapon_strip_announce
==== logic_relay 5 ====
Property Name	Value
Name 	logic_weapon_strip_strip
==== logic_relay 6 ====
Property Name	Value
Name 	logic_weapon_strip_dissolve
==== logic_relay 7 ====
Property Name	Value
Name 	logic_weapon_strip_physcannon_start
==== logic_relay 8 ====
Property Name	Value
Name 	logic_weapon_strip_physcannon_end
== I/O Creation ==
Add the following outputs to the following entities.
=== weapon_dissolve ===
::
	My Output 	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnChargingPhyscannon	logic_weapon_strip_physcannon_start	Trigger 	<none> 	0.00 	No
=== logic_room0_start_scan ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weaponstrip_motion_disable_player	Enable 	<none> 	0.00 	No
	OnTrigger	logic_weapon_strip_announce 	Trigger 	<none> 	2.00 	No
=== strip_stop ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weaponstrip_emitterfx 	Stop 	4 	0.00 	No
	OnTrigger	weaponstrip_emitterlight	TurnOff 	<none> 	0.00 	No
	OnTrigger	weapon_strip 	Disable 	<none> 	0.00 	No
	OnTrigger	strip_stop 	Trigger 	<none> 	0.00 	No
	OnTrigger	weaponstrip_emitterspark	StartSpark 	<none> 	0.00 	No
	OnTrigger	ambient_weaponstrip_loop	StopSound 	<none> 	0.00 	No
	OnTrigger	logic_room0_end_scan 	Trigger 	<none> 	2.00 	No
=== logic_weapon_strip_announce ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weaponstrip_sound_announce	PlaySound 	<none> 	0.00 	No
	OnTrigger	logic_weapon_strip_strip 	Trigger 	<none> 	5.00 	No
=== logic_weapon_strip_strip ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weaponstrip_emitterfx 	StartCharge 	4.0 	0.00 	No
	OnTrigger	weaponstrip_motion_disable 	Enable 	<none> 	0.00 	No
	OnTrigger	weaponstrip_sound_charge_start	PlaySound 	<none> 	0.00 	No
	OnTrigger	weaponstrip_sound_charge_loop 	PlaySound 	<none> 	0.00 	No
	OnTrigger	weapon_strip 	Enable 	<none> 	4.00 	No
	OnTrigger	logic_weapon_strip_dissolve 	Trigger 	<none> 	6.00 	No
	OnTrigger	weaponstrip_emitterlight 	TurnOn 	<none> 	6.00 	No
=== logic_weapon_strip_dissolve ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weapon_dissolve 	Enable 	<none> 	0.00 	No
	OnTrigger	weaponstrip_sound_dissolve_start	PlaySound 	<none> 	0.00 	No
=== logic_weapon_strip_physcannon_start ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weaponstrip_emitterspark 	StartSpark 	<none> 	0.00 	No
	OnTrigger	weaponstrip_sound_error 	PlaySound 	<none> 	1.00 	No
	OnTrigger	logic_weapon_strip_physcannon_end	Trigger 	<none> 	4.00 	No
=== logic_weapon_strip_physcannon_end ===
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	weapon_dissolve 	Disable 	<none> 	0.00 	No
	OnTrigger	weapon_strip 	Disable 	<none> 	0.00 	No
	OnTrigger	weaponstrip_motion_disable 	Disable 	<none> 	0.00 	No
	OnTrigger	weaponstrip_sound_charge_loop 	StopSound 	<none> 	0.00 	No
	OnTrigger	weapon_dissolve 	StopSound 	<none> 	0.00 	No
	OnTrigger	strip_stop 	Trigger 	<none> 	1.00 	No
	OnTrigger	weaponstrip_motion_disable_player	Disable 	<none> 	1.00 	No
	OnTrigger	weaponstrip_sound_security 	PlaySound 	<none> 	4.00 	No
Once that is set up, to simply start the confiscation field, set up a trigger_once to trigger the logic_room0_start_scan relay. As a bonus, you can also add Outputs to logic_room0_start_scan and logic_room0_end_scan to enable and disable Combine Shield Walls respectively.
== See also ==
* Half-Life 2 Level Creation
== External Links ==
* Example VMF that was made in this tutorial.
Category: Level Design