Want an easier way to tween? I've got you!


Hey! This is just a small post for my first module I’ll be releasing to the public. It’s called EZTween and, like the name implies, allows you to tween Vector3s(Parts, MeshParts, Union, etc.), Vector2s(UIGradient Offset, UISizeConstraint MaxSize and MinSize, etc.), and GUI objects! It also gives errors that make more sense and shows you the parent of the object in case you have multiple of the same object name!

If you choose to use EZTween for any reason, I do not ask for credit, I simply ask if you could like and/or favorite the module(although it is your choice not to):)! Feel free to give your criticism and/or questions about the module in the comments(you can also make a recommendation for a new function to the module!). Here’s the download

8 Likes

I forgot to mention that if you need help understanding the module then all you gotta do is hit me up on Twitter(@CataclysmicDev)!

1 Like

This looks okay, but where is the documentation and advantages of this over TweenService? The only documentation I see is a 3 minute video of typing, along with code I can’t completely see in one frame.

I don’t feel like this encourages good code practices. In the video, you’re not saving the TweenInfo object into a variable but instead creating it in the same line. Less lines ~= better code.

2 Likes

Great question! The reason I didn’t save the TweenInfo is because I just wanted to cram the time in the video down as much as I can. Next, what are the advantages of this over TweenService? Well, I really only coded this for me as it uses TweenService and everything along with it but it’s packed into one module. One of the reasons I even made this module was because I was sick of having to type out all the code for making a regular tween(1-7 lines) when I can bring it down to about 3 lines while using the same logic. Another reason is because whenever you get errors with TweenService, they’re usually very vague and you have to figure out the problem, which this module fixes that error and basically tells you EXACTLY what you got wrong! Hope this answers your question:)

2 Likes

shouldn’t this be in cool creations, doesn’t seem that useful

2 Likes

I don’t really know because someone else DMed me and said it should be in Resources Community Resources

Its useful for some small creations.

2 Likes

Sorry, but this seems like a wrapper for TweenService.

I’m sorry, what? Your methods are exactly the same as TweenService’s.

Your code

local EZTween = require(game.ReplicatedStorage.EZTween)
local goal = {Position = Vector3.new(1, 299, 2)}
local twIn = TweenInfo.New(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local tween = EZTween.TweenVector3(twIn, workspace.Part, goal)
tween:Play()

Normal TweenService code

local tw = game:GetService("TweenService")
local goal = {Position = Vector3.new(1, 299, 2)}
local twIn = TweenInfo.New(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local tween = tw:Create(workspace.Part, twIn, goal)
tween:Play()

There’s no difference, no improvement, etc. Also, WHY the semicolons?!

7 Likes

I don’t know if you’re brining anything new to the table of tweening.
Looks exacly like the standard way you tween a object, just with a few more lines.

2 Likes

What’s the benefit of using this when I can use something easier to use, such as TweenSequence Editor?

3 Likes

Fellow semicolon user here. When switching between multiple languages constantly, I end up screwing up the syntax and swapping out keywords. Since Lua doesn’t care whether you use semicolons or not, I keep them in my code because it’s one less thing to worry about. Otherwise I would consistently be accidentally putting semicolons out of habit and then having to go back and delete them.

If I’m working in a team with other scripters and they would prefer for me not to use semicolons then obviously I’d do my best to oblige, but it really improves my workflow.

3 Likes

Yes, I had intentions of it being a wrapper, but another reason I made this(besides one’s stated in other replies) is because TweenService is really hard to use for a beginner because, if they mess up even one line on TweenInfo or the tween itself, TweenService gives a REALLY vague answer, which this module fixes. This plugin isn’t really meant for better programmers, so I should have titled it something better for new programmers to understand it’s for them. Also, I go between C# and Lua a ton, and, since Lua doesn’t care if you put a semicolon or not, I use them for habit in other scripting languages.

1 Like

It’s basically a wrapper, so I encourage you to read my reply to TyScripts to see why I made the plugin and what could be beneficial to use it.

Check my reply to TyScripts to see why:)

Hm, vague code or not, it is still possible to learn TweenService quite easily.

If anything I find it easier to understand this:

local TweenService = game:GetService("TweenService")

local Part = script.Parent

TweenService:Create(Part, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {Size = Vector3.new(4,4,4)}):Play()
-- You can store the creation of the tween in a variable, but you can also play it directly.

-- Or you could do this

local TweenService = game:GetService("TweenService")

local TweenInformation = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut) -- The other parameters don't need to be Specified!

local Part = script.Parent

local PartProperties = {
    Size = Vector3.new(4,4,4)
}

TweenService:Create(Part, TweenInformation, PartProperties):Play()
-- You can store the creation of the tween in a variable, but you can also play it directly.

Not to mention you can also read the documentation on TweenService like most people do when they’re new to something.

TweenService
TweenInfo

I can see how this would help some people, but it seems a bit redundant to require a module that does basically the same thing that TweenService can already do. Altering the error message just doesn’t seem worth it.

1 Like

Do you have any ways I can make this module as good or better than TweenService? If so, I am open to making it!

1 Like

Well, you can’t. It’s as simple as that.

TweenService in-out of itself is already basic enough. I think your module is adding an extra layer of difficulty, as well as bottlenecking some of the capabilities of TweenService itself.

Personally for me, TweenService is already easy to use. Especially when you use this format:

local TweenService = game:GetService("TweenService")

local TweenInformation = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut) -- The other parameters don't need to be Specified!

local Part = script.Parent

local PartProperties = {
    Size = Vector3.new(4,4,4)
}

TweenService:Create(Part, TweenInformation, PartProperties):Play()
-- You can store the creation of the tween in a variable, but you can also play it directly.

So, there isn’t really anything I can recommend.

1 Like

I can definitely see why. Thank you for your criticism though :slight_smile: !

1 Like