I have a projectile launcher stuff, it’s working perfectly but sometimes it doesnt.
like sometimes it move immediatley after appear on workspace and velocity, but sometimes it freezes for a miliseconds and after that it moves.
is there a way to make it moves immediatley and never freezes??
Server code :
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local Projectiles = require(ReplicatedStorage.Projectiles)
ReplicatedStorage.throwProjectile.OnServerEvent:Connect(function(Player, ...)
local args = { ... }
local projectileName = args[1]
local mousePosition = args[2]
local Character = Player.Character
if not projectileName or (not ReplicatedStorage.Projectiles:FindFirstChild(projectileName) or not Projectiles[projectileName]) or not mousePosition or not Character then return end
local Origin = Character.PrimaryPart:GetPivot() * Vector3.new(0, 0, -2)
local Velocity = (mousePosition - Origin).Unit * Projectiles[projectileName].Speed
local projectile = ReplicatedStorage.Projectiles[projectileName]:Clone()
projectile:PivotTo(CFrame.new(Origin))
projectile.Parent = game.Workspace
if projectile:IsA("BasePart") then
projectile.Velocity = Velocity
projectile.CanCollide = true
elseif projectile:IsA("Model") then
projectile.PrimaryPart.Velocity = Velocity
for _, Object in pairs(projectile:GetDescendants()) do
if not Object:IsA("BasePart") then continue end
Object.CanCollide = true
end
end
task.delay(5, function()
projectile:Destroy()
end)
end)