Time Scale Framework

Will there be support for tweens? I know how hard it is trying to make it compatible with tweens but hopefully Roblox has something to slow down tweens like a property of tween service.Something like this;

local TweenService = game:GetService("TweenService")
TweenService:GetTweensPlaying()--something like this since we will be able to do for loops with it.

Unfortunately I don’t think an API like that exists at the moment. It would need to be up to the developer at the moment to implement this feature. I can look at making a custom TweenService that developers can use which is integrated into the framework. Sounds like a fantastic suggestion which I will look into!

1 Like

I would like to help you make a custom TweenService with more versatility since TweenService needs more features.

Had some ideas and I think to start with I might make a simpler wrapper that handles scaling tweens with the time scale framework for you, but I’d be happy to expand it into a more fully featured system in the future.
Many thanks for the offer to help, let me know if you get something working! :grinning:

1 Like

Major Update

Summary

:warning: This update has API changes that you will need to account for. These changes have been made so that the APIs can be more streamlined going forwards. :warning:
This update makes large structural changes to the framework so let me know ASAP if anything is broken!
I have also made some progress on multiplayer which gets a big rework in this update to help improve its stability and functionality. I still do not recommend using multiplayer in public projects JUST yet though.

Changes

  • General bug fixes.
  • Improved ability to adapt to live tag changes.
  • Improved framework organisation/structure.
  • Improved multiplayer.
  • Improved performance.
  • Improved physics simulation with bounces.
  • Moved ServerScriptService/TimeScaleFramework/Functions/ToggleSpeed to ServerStorage/TimeScaleFramework/ToggleSpeed.
  • Removed unused code.

Coming Soon

Multiplayer is getting close to being stable enough for use in a public environment so that will soon be stable enough to be recommended for use if you wish! :grinning_face_with_smiling_eyes: Please report any issues you have with it to me so that they can be worked on before its next update.

I’m also currently working on a custom tween service to allow tweens to be used with this framework to allow for even more possibilities. No estimated date as to when this should release however I will try to get it in for the next release.

Finishing Up

Thank you all so much for all of your amazing ideas and support! Please be sure to let me know if there’s any other changes you would like made! :+1:

1 Like

Update

:warning: Animators will now require the TimeScaleWhitelist tag. This was not required before this update. :warning:
This is just a quick little update to the framework which focuses on animations.

Changes

  • Added ability to toggle animations (Was not functional before & is now available in settings).
  • Fixed animation bugs.
  • Improved animation transition performance.

Finishing Up

Sorry about the quick release although I wanted to fix the long standing animation bugs quickly.

1 Like

I figured out a way to make a scaling tween and make the TweenService:GetTweensPlaying() but I have been thinking making some like this:

TweenService:GetTweensPlaying(-- the instance, -- and the tween) --(use for loops with workspace parts to  before I thought just getting the tweens with the api service but I would just test out both 

V2 Update 1 :loudspeaker:

Summary :zap:

:warning: This update has changes that you will likely need to account for. :warning:
This has been a long time in the making & brings a massive overhaul to the entire framework which drastically improves flexibility, physics & so much more… Massive thank you to those who have been messaging me with your ideas and helping out the past months I’ve been working on this update!

Changes :hammer_and_wrench:

  • Added ability for TimeScaleUtilities to work from the client.
  • Added Attribute: ReplicatedStorage/TimeScaleFramework/TimeScale to allow for easy access to the TimeScale value from anywhere.
  • Added model support for TimeScaleWhitelist tag.
  • Added support for AngularVelocity & LinearVelocity.
  • Changed settings to attributes in root folder.
  • Fixed animation tracker bugs.
  • Improved framework structure.
  • Improved TimeScaleUtilities wait performance.
  • Removed AffectedInstances module.
  • Removed BindableFunctions:
    • ServerStorage/TimeScaleFramework/IsTimeScaleSlowed - To mimic old behaviour, change to ReplicatedStorage.TimeScaleFramework:GetAttribute("TimeScale") ~= 1.
    • ServerStorage/TimeScaleFramework/ToggleTimeScale - To mimic old behaviour, set the TimeScale attribute on ServerScriptService.TimeScaleFramework.
  • Removed RemoteFunctions:
    • ReplicatedStorage/TimeScaleFramework/IsTimeScaleSlowed - To mimic old behaviour, change to ReplicatedStorage.TimeScaleFramework:GetAttribute("TimeScale") ~= 1.
  • Removed settings module.

Finishing Up :wave:

Tweens are on the way, they just need some more work. This update will greatly help with the development of tween support so more information soon hopefully!

As always, thank you all so much for supporting this project of mine & I hope to do more work on this in the future! :grinning:

3 Likes

V3 Update 1 :loudspeaker:

Summary :zap:

:warning: This update has changes that you will likely need to account for. :warning:
Apologies for any inconvenience in releasing V3 so soon after V2, this brings large changes that have been in the works for a while including important multiplayer fixes & internal changes to the framework to help clear up the code & make it easier to work with in the future.

Changes :hammer_and_wrench:

  • Fixed multiplayer bugs.
  • Improved framework structure.
  • Improved performance.
  • Removed BindableFunctions:
    • ServerStorage/TimeScaleFramework/GetSpeedTimePlayers - To mimic old behaviour, replacement code can be found in the demo game in the “Game” script in ServerScriptService.
    • ServerStorage/TimeScaleFramework/GetTimeScale - To mimic old behaviour, change to ServerStorage.TimeScaleFramework:GetAttribute("TimeScale").
  • Removed ServerStorage “TimeScaleFramework” folder as it is no longer needed.
  • Removed SlowedTimeScale attribute as it is only used in the demo and is not used in the framework itself. You can now edit SlowedTimeScale as a variable in the Game script.
  • Removed TimeScaleFramework folder from ReplicatedStorage as it is no longer needed.
  • Removed TimeScale attribute from TimeScaleFramework folder in ServerScriptService.
  • The TimeScale attribute can now be set from TimeScaleUtilities in ReplicatedStorage.

Finishing Up :wave:

Massive thanks to everyone who supports me with this project. I couldn’t do this without your support!
Be sure to let me know of any ideas & issues you have so I can continue to improve!

1 Like

V3 Update 2 :loudspeaker:

Summary :zap:

This release includes more humanoid bug fixes, bug fixes for gravity when in time scale & performance improvements.

Changes :hammer_and_wrench:

  • Fixed bugs when changing time scale between lots of different values.
  • Fixed gravity when in time scale.
  • Improved handling of removing parts from time scale mid use.
  • Improved performance.
  • Removed TimeScaleIsInSpeed attribute from Humanoids - To mimic old behaviour, set TimeScaleWhitelist tag instead as needed.

Finishing Up :wave:

Thanks to all of you supporting my work on this project! Appreciate all of the feedback I get with each version. I look forwards to more providing you all with more updates soon.

2 Likes

You pushed these updates multiple times in quite a short time, you did it all just for us to use them for our projects, big pleasure to you for helping the community, i see people just abandon their project because its old, but you seem to be doing the opposite, im hoping to see more updates coming soon :eyes:

1 Like

Don’t know if it’s possible for this model, but if yes, then it would be nice to have this on GitHub, I usually like to go over DevForum resources through mobile, and it’s impossible to see how something works with a Roblox model, having a repo on GitHub allows that, has nice statistics to look into, nice way to report issues, and a nice way to contribute / get contributed. I think you might enjoy using it going forwards.

1 Like

A GitHub is now available so you can work with the code here. I haven’t worked much with Roblox files on GitHub before so there may be some changes I need to make but all the source code should be there for everyone to view and work on.

2 Likes

V3 Update 3 :loudspeaker:

Summary :zap:

Only a small release to improve the animation tracker. Just a drag & drop update with no extra changes required.

Changes :hammer_and_wrench:

  • Changed internal layout.
  • Improved AnimationTracker.

Finishing Up :wave:

Massive thanks to @LucasMZ_RBX for helping to setting up the GitHub.
Thank you all for supporting this project & I look to release larger updates in the future with hopes of brining tweening support soon to allow for even more creations using this framework! :grinning_face_with_smiling_eyes:

3 Likes

I was about to use this for a game… but i realized 2 bugs:

  1. A Humanoid character model that is affected by the time slow will fly up (Sometimes when the timeslow is turned off). Even unanchored Baseparts will be affected by this bug as there is a chance that they will also fly up.

  2. A ParticleEmitter’s TimeScale property (Once time slow is over) doesnt change or doesnt go back to normal. I checked the ParticleEmitter and I saw that regardless of the set time scale, The ParticleEmitter’s time scale property will always stay the same as it was when time is slowed down. To fix it, I had to add in an extra check for any ParticleEmitter that are affected by the TimeScale and make sure that the time scale is set to 1 when TimeSlow is over.

Hello & thank you for notifying me of these issues,

I’m investigating the issues you have reported & unfortunately I haven’t yet been able to reproduce the issues described in your post.

I have experienced issues with parts flying upwards in the past though I believe I have addressed this issue in the past. If you are able to get steps to reproduce these issues & DM them to me; that would be most appreciated.

I’ll keep a lookout for these issues while working on the new version which can be found on the GitHub page here. However there is a large number of changes pending release which may have resolved the issue already.

Thank you again for your feedback & I will do my best to rectify the issues described.

1 Like

Uhh, its rather simple. What i did is that, I got a health dummy (To test damage on) and the timescale i set for the game when time slow is activated is 10. When that happens its either:

  1. During Time Slow, The dummy will fly up and when time slow is deactivated it never falls down.

  2. When time slow is deactivated, gravityForces (The things the module made) will still be there causing the dummy to fly up.

For the particle Emitter, I really dont know. But it sure is isnt random. It happens all the time and i had to hard code it to return to its normal timescale (Which is 1)

Is it because:

  1. I set the timescale too high (If so, tell me why)

  2. It’s a bug that has been laying around.

I can always send you the place file, In it you can see the scripts.

1 Like

Thanks for the details!

I’ll look around for issues to do with those points & a place file would be greatly appreciated!

The time scale framework is not that good. it still has problem dealing with low mass parts. I would only use this for effects…

Hello there!

I’ll take a look into the issue with low mass parts you being up here. I understand this framework can be quirky here & there but I am working hard to get it working perfectly so everyone is able to drop it in their game with minimal development time added.
There’s an update I’m currently working on which changes up the physics system a little so I’ll see if the issue is already resolved on there too.

Thank you!