Custom TweenService 1.1
After quite a bit of time, I decided to rewrite this module and release it under the name CustomTweenService 1.1. The entire module has been rewritten from scratch.
Differences from the original version
The old module had to use a lot of hacks in order to properly work and was quite heavy memory and performance-wise. However, now the module only has type-checking hacks; the implementation is now proper, and the performance, if not better, would equal Roblox’s solution.
Legacy versions of the module will no longer be maintained or updated. Though they are still available for people to use in case any of you still rely on them.
Differences from the roblox Tween
There aren’t any significant changes, and if you intend to replace Roblox Tweens with this one, the transition would be smooth.
Examples:
--Custom solution
local ExamplePart = Instance.new("Part",workspace)
local Classes = require(CustomTweenService.Classes)
local Info = Classes.CustomTweenInfo:new()
local Tween = Classes.CustomTween:new(ExamplePart,{
Position = Vector3.new(0,50,0)
},info)
Tween:Play()
Tween.Completed:Wait()
Tween:PrepareGC()
Tween = nil
--roblox solution
local ExamplePart = Instance.new("Part",workspace)
local TweenService = game:GetService("TweenService")
local Info = TweenInfo.new()
local Tween = TweenService:Create(ExamplePart,Info,{
Position = Vector3.new(0,50,0)
})
Tween:Play()
Tween.Completed:Wait()
Tween:Destroy()
Tween = nil
Misc
Documentation can be found at github (IN THE WORKS); report any issues here as well