Rotating a brush exactly 90 degrees with the press of a button.

I have been struggling with this. I have a puzzle set up, which requires you to navigate through four hallways, one drops down, one left, one right, and one up, all branching off from the center of the chamber. The openings at the end of each hallway must be matched up with the corresponding rooms for you to explore them, but I’m struggling with getting the group of brushes to rotate exactly 90 degrees so they can match up with the rooms. I’ve tried using func_rotating, setting the speed to 90 degrees per second, and then connecting it to a button with a logic_timer, which will stop it after 1 second (after 90 degrees of travel). This seems like it should work, but it keeps rotating at random, no matter what settings I experiment with. Any ideas on how to either fix this or a better method of going about this?

I did something similar with the func_door_rotating entity, since that opens at 90 degrees.

^ He’s right, use func_door_rotating.

That sounds overly complex. Whatever starts the func_rotating should stop it after a delay of 1 second.

Well the only problem with a func_door_rotating is that is can only rotate 90 degrees, but then it moves back 90 degrees after a few seconds. What I’m going for is it rotating 360 total degrees, but it stops after ever 90 degrees until you press the button again, that way it won’t spin while you’re in the room.

There are keyvalues and flags for that.

Set the time to close to -1 in the keyvalues.