I know collisions are kind of broken right now for mesh parts.. saw some posts about it in the dev forum. I've been making some guns using raycasting, and i rectenly switched the system from tools to GUIs due to unequipping and welding issues, and for whatever reason now they won't detect anything but the HumanoidRootPart upon being fired at point blank range. At any other range, nothing will happen.
I really do believe it has something to do with meshpart's collisions or findpartonray's buggy lack of support for it?
code snippet in the GUI:
local bulletRay = Ray.new(tool.Handle.CFrame.p, (player:GetMouse().Hit.p - tool.Handle.CFrame.p).unit*tool.WeaponDetails.MaxBulletRange.Value) local part,position = workspace:FindPartOnRay(bulletRay,player.Character,false,true) tool.FireSound:Play() shootEvent:FireServer(tool,position,part,tool.fireAnimation)
code snippet in the server script:
local fireAnim = workspace[player.Name].Humanoid:LoadAnimation(animation) fireAnim:Play() if tool.FireSound.Playing == false then tool.FireSound:Play() end if part then local humanoid = part.Parent:FindFirstChild("Humanoid") if not humanoid then humanoid = part.Parent.Parent:FindFirstChild("Humanoid") else if humanoid.Health > 0 then humanoid:TakeDamage(damage.Value) if humanoid.Health > 0 then replicatedStorage.Weapons.WeaponHit:FireClient(player, false) else replicatedStorage.Weapons.WeaponHit:FireClient(player, true) end end end
these are just partial, so it doesn't really have anything to do with syntax.