-- the original owner is the lost star / me:> local protect = function(...) return {...} end local hook = function(t,cd) local old old = hookfunction(t,function(...) local args = protect(...) pcall(cd,table.unpack(args)) return old(table.unpack(args)) end) return old end local tween = function(t,r,re,rev,d,g,cb,...) local Args = {...} if type(g) ~= "table" then print("Invalid Argument") return end local play,wait = false,false for _,arg in ipairs(Args) do if arg == "Play" then play = true elseif arg == "Wait" then wait = true end end local Twn = protect(game:GetService("TweenService"):Create(t,TweenInfo.new(r,Args[1] or Enum.EasingStyle.Linear,Args[2] or Enum.EasingDirection.Out,re or 0,rev or false,d or 0),g or {})) if play then Twn[1]:Play() end if cb and type(cb) == "function" then Twn[1].Completed:Connect(function() pcall(cb) end) end if wait then Twn[1].Completed:Wait() end return Twn[1] end