I get an error with this script, it works just fine in a localscript, but when i trigger it with a remote-event it errors on line 39. Does anyone know how to fix this issue?

script:

local EventQ = game:GetService("ReplicatedStorage").Remotes.EventQ
game:GetService("Players").PlayerAdded:Connect(function(player)
	local cooldownQ = Instance.new("NumberValue")
	local healticks = 0




	local Character = player.Character
	cooldownQ.Name = "cooldownQ"
	cooldownQ.Parent = player
end)

EventQ.OnServerEvent:Connect(function(player,cooldownQ)
	local humanoid = player.Character.Humanoid
	local Debris = game:GetService("Debris")
	local LaserGun = player.Character.BLaserGun
	local cooldownQ = 10
	local mouse = player:GetMouse()
	local Character = player.Character
	
	if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping or humanoid:GetState() ~= Enum.HumanoidStateType.FallingDown then
		
		if os.time() - player.cooldownQ.Value > cooldownQ then
		player.cooldownQ.Value = os.time()
			
			local beamsource = game.ReplicatedStorage.LazerBeam.Tip
			local clonedbeamsource = beamsource:Clone()
			local varX = player.Character.Torso.Position.X
			local varY = player.Character.Torso.Position.Y
			local varZ = player.Character.Torso.Position.Z
			clonedbeamsource.Parent = game.Workspace
			
			clonedbeamsource.Position = Vector3.new(varX, varY +6, varZ)	
			
			wait(2)

			local Tip = game.Workspace.Tip
			local Laser = Ray.new(Tip.CFrame.p, (mouse.Hit.p - Tip.CFrame.p).unit * 300)
--error in line above


			local HitPart, HitPosition = game.Workspace:FindPartOnRay(Laser, Character, false, true)


			local dmgscript = game.ReplicatedStorage.LazerBeam.dmg
			local cloneddmgscript = dmgscript:Clone()	
			local LaserBeam = Instance.new("Part", game.Workspace)
			LaserBeam.BrickColor = BrickColor.new("Bright red")
			LaserBeam.FormFactor = "Custom"
			LaserBeam.Material = "Neon"
			LaserBeam.Transparency = 0.25
			LaserBeam.Anchored = true
			LaserBeam.CanCollide = false
			LaserBeam.Name = "LaserBullet"
			cloneddmgscript.Parent = game.Workspace.LaserBullet

			local LaserDistance = (Tip.CFrame.p - HitPosition).Magnitude
			LaserBeam.Size = Vector3.new(2, 2, LaserDistance)
			LaserBeam.CFrame = CFrame.new(Tip.CFrame.p, HitPosition) * CFrame.new(0, 0, -LaserDistance/2)

			Debris:AddItem(LaserBeam, 2)				
			
			end
		end
	end
)

1 comment

0

it cut the line with the error in half for some reason