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.
Contents
Entity Creation
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
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
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
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
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
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
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
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
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
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
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
logic_room0_start_scan
strip_stop
logic_weapon_strip_announce
logic_weapon_strip_strip
logic_weapon_strip_dissolve
logic_weapon_strip_physcannon_start
logic_weapon_strip_physcannon_end
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
External Links
- [1] Example VMF that was made in this tutorial.