Cframe Works In Studio, But frozen in game

Wait Filter Enabled, Would I need to use a Remote Event for that?

local Lid = cylinder.Lid;
local trail = cylinder.Trail;
local smoke = cylinder.Smoke;
local light = cylinder.SurfaceLight; 
local heat = cylinder.Heat;

local crater = game:GetService("ReplicatedStorage").Crater;
local runService = game:GetService("RunService");


local shooting = function()
	for i=1,75 do
		cylinder.CFrame = cylinder.CFrame + Vector3.new(100,-20,0)
	end
	
	
	cylinder.Anchored = true;
	local newCrater = crater:Clone();
	newCrater.Parent = game.Workspace;
	newCrater.CFrame = cylinder.CFrame;
	cylinder.CanCollide = true;
	
	heat.Enabled = true;
	light.Enabled, trail.Enabled, smoke.Enabled = false, false, false;
end

local landed = function()
	heat.Enabled = false;
	Lid.CanCollide = false;
	Lid.Anchored = true;
end

local unscrew = function()
	local weldConstraint = cylinder.WeldConstraint;

	local i = 0;
	while runService.Heartbeat:Wait() and i <= 500 do
		i += 1
		Lid.CFrame = Lid.CFrame * CFrame.Angles( 0, math.rad(1), 0 ) * CFrame.new(0,0.03,0) 
	end

	weldConstraint:Destroy()
	Lid.Anchored = false
	Lid.CanCollide = true
end

shooting()();
wait(40)

landed()();
wait(2)

unscrew()();

I fixed the script to be formatted easyer

You might need to but It can be done without it.

What do you mean? Also I been looking for Filter Enabled but all of the tutorials involves a player firing the server. but with how i am doing it I cant do that.