After figuring this out I found the two other workarounds, but I think mine is cleaner and more streamlined. It has only one extra entity (no matter how many rotators you want) and has no clipping/solidity issues. Basic functionality: Make your rotating entity the neglected oddball momentary_rot_button. Set the speed to what you need, and set the distance to a multiple of 360, this is important for making the rotation appear seamless. For purposes of of I/O efficiency, I recommend making the distance roughly 10 times the speed so that it takes around 10 seconds for it to complete it's distance cycle. Give the m_r_b the following: Column 1 Column 2 Column 3 OUTPUT TARGET INPUT OnFullyClosed rotate_relay Trigger Create a logic_relay and name it rotate_relay. Give it the following: Column 1 Column 2 Column 3 Column 4 Column 5 OUTPUT TARGET INPUT PARAMETER DELAY OnTrigger !activator SetPositionImmediately 0.0 0.00 OnTrigger !activator SetPosition 1.0 0.01 OnSpawn momentary_rot_button SetPosition 1.0 Also enable the Allow fast retrigger flag on the relay. The last output will appear as a broken output in Hammer, but in-game it will be sent to every m_r_b in the map without having to name them. Stopping & restarting: If you wish to stop an m_r_b once started send it the following sequence: Column 1 Column 2 INPUT DELAY Lock 0.00 Unlock 0.01 The lock will stop it from moving and the unlock will allow it to be restarted again. To restart it send: Column 1 Column 2 INPUT PARAMETER SetPosition 1.0 Extra notes: To make an m_r_b rotate in the opposite direction, use a negative distance. The start direction key does not appear to do anything. If you want to individually control multiple m_r_b obviously you will need to name them, but leave the logic_relay as it is, !activator will reply to whichever entity called upon the relay.