I have been working on a magic local script, and I realized I'd have to use remote functions/events for it to be visible to others. I'm not sure whether to convert it to a regular script or have it be local, I also heard using remote functions/events use bandwidth? Sorry if I'm not making too much sense, I'm fairly new to scripting.
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local enabled = true
mouse.KeyDown:connect(function(key)
if not enabled then return end
if key == "e" then
local projectile = Instance.new("Part")
projectile.Size = Vector3.new(2,11,2)
projectile.BrickColor = BrickColor.new("Pastel Blue")
projectile.CanCollide = false
local projectileMesh= Instance.new("SpecialMesh", projectile)
projectileMesh.MeshId = "rbxassetid://3467593774"
projectileMesh.Scale = Vector3.new(1,0.8,1)
local projectileEffect = Instance.new("Smoke", projectile)
local projectileVelo = Instance.new("BodyVelocity", projectile)
projectileVelo.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
projectile.CFrame = CFrame.new(player.Character.Torso.Position)
projectileVelo.Velocity = player.Character.Torso.CFrame.lookVector * 150
local damage = script.damage:Clone()
damage.Parent = projectile
projectile.Parent = workspace
game.Debris:AddItem(projectile, 1.5)
enabled = false
wait(2)
enabled = true
end
end)

2 comments
I would have all of the magic is a single server script, place it in server script service, and use remote events to call the functions. This would make the game run much more smooth.
Thanks, I'll try that.