Yes, they could have also made it so developers had to create their own camera, replication, and character systems⌠but they didnât so it would be easier to make games.
its like saying âwhy does Debris exist?â, its there to be used and added on to in the future.
Why do we need an entire Service for something that could be realistically handled as a global library
Thatâs a silly complaint. Going by that logic, Roblox should not have services in the first place.
For example, TweenInfo is a global, which returns a TweenInfo object, which is passed as the second parameter of the constructor for a Tween Object.
If we can have a TweenInfo global, why canât we just have a Tween global with Tween.new(), and Tween.newInfo(), for example.
Because TweenInfo
is just a data type, just like Vector3
and UDim2
.
Why does TweenService exist?
So we can Tween thingsâŚ
If you donât like tween service remember there are people like me that use tween service and just because you donât use it you shouldnt complain about it. Also this should be in a different categoryâŚ
Debris is currently not recommended to be used, because it is less performant than using task.delay and :Destroy(), and it has a cap of 1000 instances
There are things like this that roblox simply donât maintain, even if updating it wouldnât cause any backwards compatibility issues. Another example is ContextActionService, and the create mobile button parameter, it still creates mobile buttons in the old style, WHY WASNâT IT UPDATED TO THE NEW STYLE???
Donât mind my little rant too much
The problem with this perspective is that youâre assuming that the service isnât handling any logic under the hood, as is just a container for methods and events.
I think this is unlikely the case due to the nature of what the service does (calculates animations based on time equations), which probably means that its ties your tweens to a lifecycle event when you play them.
I donât believe this would be as efficient if each tween instance would be individually handling this logic by themselves, theyâre probably all referenced back to the service, which would then do the calculations.
This wouldnât be done by a traditional library, as libraries shouldnât impose or run any code when requiring them. (and instead just be a container)
That actually is a relatively decent question. The reason to that is on how Roblox Libraries are defined.
Libraries are groups of functions that you can use to manipulate built-in data types.
https://create.roblox.com/docs/reference/engine/libraries ^
Contrast that to Services which mainly impact actual Instances and other Roblox objects. For Instance the Players service is always returning players and such. TweenService create is used on Instances, therefore it makes sense to be a Service more than a library.
TweenInfo is defined as a DataType
not a global, see: Roblox Engine Data Types | Documentation - Roblox Creator Hub
All Datatypes are generally created with .new()
Instance.new()
RaycastParams.new()
Vector3.new()
CFrame.new()
Color3.new()
TweenInfo.new()
And in turn get their own Keyword
Bruh. That is all I can say. No offense, but this might be the dumbest post on the developer forum that Iâve ever seen and read.
what did tweenservice do to you bruh
i think itâs a fair question, most people on this thread are judging it from the title alone, and miss that what theyâre really asking is âwhat determines if a module should be a service or a library?â.
TweenService is for smoother animations, as there is only you adjusting the speed and not your FPS.
I donât use TweenService, because I donât know how.
This is the worst take on this thread, why even respond?
You can tween things yourself, itâs just a handler for all things intepolation which gives you presets to work out of. Still no bezier support though.
It being a service provides easy usage, scalability, high performance and consistency. Afterall it creates object that needs to be controlled/stored somewhere.
That doesnât make sense, Cameras are a far cry from smoothly making a value go from A to B
Donât know how to answer the thread, but If I could, it would be to this reply
Honorable mention for best reply
DIdnât give me Beziers, thats what it did
The worst take fits the worst topic.
Why did you even make this topic?
Just donât write game:GetService("TweenService")
in your scripts and thatâs it. Problem solved.