Shredder

Shredders (a.k.a. grinders) are spinning blades in Portal 2 that destroy objects and players dropped into them. They function just like bottomless pits and deadly goo, but are factory themed.
==Creation==
1. Create a new map file to hold the shredder instance.
2. Create a long, thin brush. Tie it to a func_rotating entity with the following settings:
::
Property Name 	Value
Name 	shredder1_left_axle
Blocking Damage	500
3. Create another long, thin brush. Tie it to a func_rotating entity with the following settings:
::
Property Name 	Value
Name 	shredder1_right_axle
Blocking Damage	500
4. Create a prop_dynamic entity with the following settings:
::
Property Name	Value
Name 	shredder1_left
Parent 	shredder1_left_axle
World Model 	models/props_gameplay/shredder_left_b.mdl
5. Create a prop_dynamic entity with the following settings:
::
Property Name	Value
Name 	shredder1_right
Parent 	shredder1_right_axle
World Model 	models/props_gameplay/shredder_right_b.mdl
6. Position the props so that the teeth interlock and the brush entities are in the center of their respective props.
7. Create a 256×1024×128 brush where things would fall into it. Tie the brush to a trigger_hurt entity with the following settings:
::
Property Name	Value
Name 	shredder1_trigger_hurt
Damage 	1000
Damage Cap 	1000
Damage Type 	CRUSH
8. Create a brush in front of that brush and tie it to a trigger_multiple entity with the following settings:
::
Property Name 	Value
Name 	shredder1_dissolver
Delay Before Reset	5
Tick the "Physics Objects" flag and add the following output:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	!activator 	Dissolve 	 	0.00 	No
	OnTrigger	!activator 	SelfDestructImmediately	 	0.00 	No
9. Create a logic_relay with the following settings:
::
Property Name	Value
Name 	shredder1_relay_on
and the following outputs:
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	shredder1_trigger_hurt	Enable 	 	0.00 	No
	OnTrigger	shredder1_dissolver 	Enable 	 	0.00 	No
	OnTrigger	shredder1_axle_left 	StartForward	 	0.00 	No
	OnTrigger	shredder1_axle_right 	StartForward	 	0.25 	No
10. Create a logic_relay with the following settings:
::
Property Name	Value
Name 	shredder1_relay_off
and the following outputs:
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	shredder1_trigger_hurt	Disable 	 	0.25 	No
	OnTrigger	shredder1_dissolver 	Disable 	 	0.00 	No
	OnTrigger	shredder1_axle_left 	Stop 	 	0.00 	No
	OnTrigger	shredder1_axle_right 	Stop 	 	0.25 	No
11. Create a func_instance_io_proxy with the following settings:
::
Property Name	Value
Name 	shredder1_proxy
and the following outputs:
::
	My Output 	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnProxyRelay	shredder1_relay_on 	Trigger 	 	0.00 	No
	OnProxyRelay	shredder1_relay_off	Trigger 	 	0.00 	No
12. Save and close the file.
To use, create a func_instance in your map and set the VMF filename to the name of the file you saved your shredder instance in. Then use the following outputs to turn the shredder on or off:
::
	My Output 	Target Entity 	Target Input 	Parameter	Delay	Only Once
	<on condition> 	<Fix-up Name of the func_instance>	instance:shredder1_relay_on;Trigger 	 	0.00 	No
	<off condition>	<Fix-up Name of the func_instance>	instance:shredder1_relay_off;Trigger	 	0.00 	No
Category:Portal 2 Level Design
Category:Portal 2 Tutorials