Making tweens smoother?

So I use server-sided tweens in my game to move things smoothly, but its not smooth at all.
Its really bothering me, how could I fix it?

I know I can tween on the client to make it run smoother, but then the tween wont replicate to the server

Any help?

You can use a Remote to tell all Clients to tween the object and on the server just teleport the object to where its meant to be tweened.


Is there a way to set the goals easily?
For instance if I have:

local goals = {
    CFrame = workspace.Part2.CFrame,
    Transparency = .5

Can I do something like
workspace.Part1.CFrame = goals[1]

Yes the goals is a dictionary. So you should be able to do

workspace.Part1.CFrame = goals["CFrame"]

I also realised that if you send TweenInfo thorugh a remoteEvent, it comes out as nil, so it will be a little bit annoying to send a table, but thanks for the help regardless!