I would find this framework more useful if it were to support multiplayer as well.
Is it possible you could create server-sided API?
I’m working on a possible multiplayer solution at the moment, my current plan is to either blur or hide the other players views so that they would only get an see when a real 1/60th of a second or however long had passed while people who are in the speed time could see normally.
I can add server sided APIs and documentation to this, you got any thoughts on what you would like to see from this?
I think just having logic handled on the server (with the client replicating the effect) will be a good way of doing it.
Alright I will work on that later, got to go out quickly for a bit, should have a working implementation of it for later.
Thank you for showing interest!
Doing a complete rewrite at the moment to allow for full multiplayer support and a complete API for developers to access to better integrate into any games/projects they work on with this. Also adding comments and documentation to make it more understandable.
Changes I’m working on can be seen on the demo place as I work on them.
Update
Multiplayer is taking a little longer than expected as it turns out it requires a fairly large rewrite of the framework, I’ve began the rewrite with the latest version I’ve just pushed. This update features many important changes and improvements.
- APIs for the server so that developers can more easily integrate into their games.
- CollectionService tags have now been unified to just need the instance to be tagged with “TimeScaleWhitelist”. No more needing to manage tags for each instance!
- Documentation added. Can now more easily understand what needs to happen in order to get this working!
- Performance improvements. I’ve now made the script more efficient with updating parts when the time scale changes so there should be less lag when toggling time scale now.
Coming Soon
Still working on multiplayer, got some basic testing going with it but needs lots more refinements before I feel like it can be pushing to the public. More to come soon on this.
Update
I’ve taken a feature from a game I’m working on using this framework and added it to the public version. There is now a TimeScaleUtilities module in the ReplicatedStorage which will allow you to run a “Wait” function which takes into account time scale changing.
This update also includes new API in the frameworks function folder with a function called “IsTimeScaleSlowed” which will return true if time scale is slowed otherwise it will return false.
Hope you all enjoy the update, should be no need to modify any existing code at this point unless something drastic changes in the future! The new APIs listed can be found in the documentation module.
Enjoy!
Update
Loads of bug fixes in this release. Sorry for the buggy release last time , will improve testing going forwards.
With this release, gravity is now constant and does not need to change anymore.
- Fixed gravity when slowed.
- Fixed tagging objects to be slowed.
- Fixed TimeScaleUtilities:Wait().
Hopefully this update will be good till after Christmas. Enjoy all & merry Christmas!
Let me know if there is any other bug that need fixing ASAP.
Can you provide a tutorial? I want to use this but don’t get how to set it up.
Hello, I have created a Tutorial to walk you through setting up the framework. Hopefully it will be useful to everyone getting into using the framework!
Update
Multiplayer Support
@iGottic Hopefully this will do.
My brain was actually exploding trying to add this so hopefully it’s all working!
Improvements with this update:
- Improved performance.
- Multiplayer support.
Multiplayer Limitations
A current limitation with multiplayer is that jumping is normal for players that should in slowed time.
I also have a feeling there might be a bug or two with it that could need ironing out so please keep that in mind and let me know about any bugs you encounter!
Finishing Up
Hope you all had a merry Christmas and a happy new year all. As always, please report any bugs you find and ideas for the future & enjoy the update!
Update
Hello again all ,
This is just a small update that brings with it some changes to better account for settings changing in game.
- Better accounts for affected instances changing while playing.
- Changed BaseParts to utilise new AssemblyAngularVelocity and AssemblyLinearVelocity properties instead of deprecated RotVelocity and Velocity properties.
- Further improved performance of changing time scale.
- ParticleEmitters are now supported (Will need to wait for Roblox to enable this property fully.).
Thank you all so much for your continued support, I couldn’t do this without you!
Hope you enjoy the update and as usual, report and issues or ideas you have!
good job man, you are doing really hard work to make Roblox new physics, my game that is using your time scale module will be improved a lot because of you
this is great. I always had trouble making a realistic slow mo effect but this helps alot! Thank you.
Update
Improvements
Sorry for the quick update straight after the last but there are some big backend changes to the framework. These include:
- Added a settings to toggle for if BasePart should be an affected instance.
- Documentation is now included in the original post.
- Optimised changing time scale even further.
- Organised code to make future updates easier.
- Started on animation fixes. Still needs loads of work however.
Coming Soon
Going to look into working on the animation system more to get that fixed up if possible. If anyone can help with scaling animation with time then please feel free to send me a message, any help is greatly appreciated!
Finishing Up
Hopefully this update will help those who have been facing small amounts of lag when toggling the time scale. Thank you all and stay tuned for more updates!
Update
Another quick little update to fix some bugs from the previous release as well as bringing some overall improvements to the framework.
Improvements
Here’s the release notes for this update:
- Fixed some physics errors.
- General bug fixes.
- Improved code organisation for future updates.
- Improved compatibility with existing games.
- Improved overall performance.
- Removed some no longer needed code.
Finishing Up
Thank you all for supporting me throughout working on this, I hope it has come in handy to many of you & I can’t wait to see how much more I can do with this in the future!
Major Update
Animation Support
This update adds proper animation support with bugs fixed from the previous implementation now in place. Let me know if there’s anything else I need to change or fix with it going forwards.
API Rework
This version includes a major rework to APIs and where they are located. This will require subtle changes to code for where it refers to objects. This is to make future updates easier and work better with existing projects. There will now be 2 folders. One in ReplicatedStorage and one in ServerStorage.
The APIs have also been expanded allowing for more functionality and easier developing. The documentation in the original post has also been update accordingly.
Changes
Changes to the framework to help make it a more well rounded tool for developers to use. These are the following:
- Added proper animation support. This will support Humanoid and AnimationController for the time being but please know that these methods have been deprecated and should not be used. Please use Animators instead. Also note that the BoolValue system for identifying animators which should appear normal in slowed time will be replaced with an attributes system once those are released.
- Changed up the APIs. Please refer to the documentation in the original post to see what has changed.
Finishing Up
Cheers all once again for the support, sorry for the rapid number of updates lately, shouldn’t be a need to update for a little while now until Roblox pushes out some new updates. Thank you all so much for you support throughout this project and hope it has been of use to you! More coming in the future!
this is great, the animation support is fixed, now we don’t have to worry about your movement slowed down then revert to default at a randomized time, this update reduced the chance of your movement slowed down when activating the ability by 90% (this bug still occur but now it’s rare), despite the rare chance of movement slowed down while the ability is activated, everything else is doing GREAT!
I would love to see more stuff and features that you added to the framework
also, the bug will occur more often if you move around normally then active the ability after stopping/idling/standing still for a long time
oh and i need the CPU and GPU tracker again, this is important so we can track if the ability or the environment will affect the rendering, FPS and much more stuff