Creating a system to "change" actual game speed (slow motion)

(this is extremely far fetched but:) For a single player game, would it be impossible to actually have a system where you can control the speed of a game (slow motion)? All I can think of is wait()s becoming repeat wait()s, animation speed changing, maybe things like gravity being changed or body forces and gyros.

I am sure performance wise this would be torture and very impractical, but if anyone has any ideas please let me know, this would be pretty cool to make even as a small test place.


I have achieved a slow motion-ish type of visual effect before, however it only applies to vertical falling objects. This is by setting the velocity and rotation velocity of the object to 0,0,0 in a loop.

Another project that I’m currently working on records and stores part position and orientation in a table every x seconds depending on how good a machine can handle a load of data. After recording, we can play back the part’s physics at any speed. This implementation however is not optimal for a large scale. Anything above 50 parts will start to cause intense frame drops given that you attempt to playback 50 individual parts at the same time and record part data for a long time.

I recommend that you don’t use body movers because unanchored parts create a lot of lag (especially moving parts).


You could use custom character and Inverse Kinematics, to create a realistic feel and you can control how fast things go, you could slowly lerp them to their destination point but be sure to always keep checking for when the player say moves their mouse to update and thats the new move point. It’d be a bit sloppy but could get the job done.