Giant Fan (Portal 2)

You can help by

January 2024
The Giant Fan is a Behind the Scenes decoration used in the co-op campaign. The fan is meant to be purely decorative and is used to "push a lot of air". Portal: Revolution turns it into a gameplay element.
Creating a Giant Fan
1. Select the brush tool, and in the object bar, change block
to arch
with the drop down menu. Then in the properties
2. Next draw a 1056 x 1056 cylinder, make it at least 220 units thick.
3. Push it into the wall that you want to put a fan in, the top should be slightly protruding with the wall. Right click and press carve.
Warning:The carve tool creates unstable and "messy" geometry when used with complex objects.
Workaround:Use the arch primitve instead, remember to tie it to a
func_detail
.
4. Place down three props; Three static, one dynamic. The dynamic prop will be the fan itself, in the "World model" property, set the model to "models/props_bts/huge_fan.mdl"
. The other two parts will be the fan rims, and its supports. Position these in a way that you see fit. Make sure to set "Disable shadows" ("Disable Producing Cheap Shadows" in TeamSpen's Hammer Addons) to "Yes".
5. In order for the fan to spin, create a small brush near the fan with the tools/toolsodraw
texture. Select the brush and press Ctrl+T to tie the brush to an entity. Make it a func_rotating
, in the flags tab, check "Start ON" (if the fan must start enabled), "Fan Pain" and the axis box that corresponds to your fan direction ( "X Axis" -> horizontal and "Y Axis" -> vertical ). Set the maximum rotation speed to 400 and the friction to 1. At last, name this entity in a way preferably indicating it is used to make other entities rotate (for instance : "fan_rotator"
).
Note:You can add a
trigger_hurt
spanning across the entire fan to stop players from passing through the fan.
6. In order for the blades to spin, they have to be parented to the func_rotating
. Specify the name of the fan's rotator in the prop_dynamic
's parent field.
Warning:
func_rotating
will not rotate forever. You can use the Vscript snippet given in its dedicated page to circumvent this bug.
7. The last step is to add a sound. In the func_rotating
's properties, add World.LargeFanLoop
to the "Sound when moving" field ("Rotating sound WAV" in TeamSpen's Hammer Addons).