local RayEvent = Instance.new("RemoteEvent")
RayEvent.Name = "RayEvent"
RayEvent.Parent = script.Parent
RayEvent.OnServerEvent:Connect(function()
local part = script.Parent
local orgin = part.Position
local direction = part.CFrame.LookVector * 50
local ray = Ray.new(orgin, direction)
local raycastResult = workspace:Raycast(ray.Origin, ray.Direction)
print(raycastResult)
local midpoint = orgin + direction/2
local part = Instance.new("Part")
part.Parent = game.Workspace
part.Anchored = true
part.CanCollide = false
part.Material = Enum.Material.Neon
part.BrickColor = BrickColor.new("Bright yellow")
part.CFrame = CFrame.new(midpoint, orgin)
part.Size = Vector3.new(0.02, 0.02, direction.magnitude)
wait(0.1)
local hitpart = raycastResult.Instance
local human = hitpart:FindFirstChild("Humanoid")
if (human ~= nil) then
human.Health = human.Health - 5
end
end)
I'm trying to cast out a ray from a part that upon contact deals damage, but when in server it doesn't deal damage. What's weird to me that the code to make the bullet trail works, but the function to print and deal damage doesn't, I'm unsure of how to fix this.
I'm using a local script to fire this event, that detects when the player clicks. I'm doing this instead of a tool cause the way I have set up my custom character the weapon is attached to their hand directly in the model rather than being a tool.

2 comments
Would it be possible to share the bit where you are calling this event from your local script?
local RayEvent = script.Parent:WaitForChild("RayEvent") local Player = game.Players.LocalPlayer local Mouse = Player:GetMouse() Mouse.Button1Down:Connect(function() RayEvent:FireServer() end)