Securing animation on all clients

Hello! Today, as I was coding my stuff I wanted to animate some objects (I mean alot by some) and I thought to use the client, so server lags less, here is my code

--server side
local storage = game:GetService("ReplicatedStorage")
local animClient = storage:WaitForChild("AnimateClient")
local animServer = storage:WaitForChild("AnimateServer")

animServer.OnServerEvent:Connect(function(_, instance, options)
    animClient:FireAllClients(instance, options)
end)
--client side
local storage = game:GetService("ReplicatedStorage")
local animClient = storage:WaitForChild("AnimateClient")
local T = game:GetService("TweenService")
local TInfo = TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0)

animClient.OnClientEvent:Connect(function(instance, options)
	for i,v in pairs(options) do
		if i ~= "shouldTween" then
			instance[i] = v
		else
			local t = T:Create(instance, TInfo, {Size = v})			
			t:Play()
		end
	end
end)

And it’s really not secure, an exploiter could just fire the event with any instance and it would get animated, any tips on securing this would be welcome!

If you want to spread tweening workload to clients it’s a great option for reducing server stress. However, you shouldn’t have the client tell the server to replicate a tween to all clients. Have strictly the server manage tweening that all clients need to see. When you need to tween an object for all clients, send out that broadcast signal. Don’t let a client have a say in what global tweens replicate.

How could I do that? I want to secure it and right now can’t think of any other options

Just don’t let the client tell the server to tween to all clients. Wrap your tween in a module or something so you can reference it anywhere from the server.

Alright, thanks for your opinion