Hey guys!
So basically, I'm trying to make a First Person Shooter, and my guns use this system when firing:
- Call the Client and ask them where their viewModel is
- Client calls back with the information needed
- Use that information to create a Ray.
Here's my code:
SCRIPT IN GUN (REAL ONE):
script.Parent.Events.RequestBulletLocation.OnServerEvent:Connect(function(player, BulletLocation, End)
script.Parent.Values.BulletLocation.Value = BulletLocation
script.Parent.Values.BulletEnd.Value = End
positionSet = true
end)
repeat wait(.00001) until positionSet == true
positionSet = false
local ray = Ray.new(script.Parent.Values.BulletLocation.Value, root.CFrame.lookVector*500)
print(ray.Direction)
LOCALSCRIPT IN STARTERPACK:
local function fetchBulletLocation()
game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Events.RequestBulletLocation:FireServer(weapon.BulletLocation.Position, weapon.BulletLocation.CFrame.lookVector*500)
end
game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Events.RequestBulletLocation.OnClientEvent:Connect(fetchBulletLocation)
Now, the issue is that when it prints the direction, it printed 1 time with a Y axis that wasn't 0 out of 26 (counted in the most recent 26 shots).
Here's an example of the output:
-495.047577, 52.0999603, -47.0481949
-496.878479, -0.473964512, -55.7814674
-496.806519, -0, -56.420723
-496.444763, -0, -59.5198288 (x2)
-497.378632, -0, -51.1327477
-497.480469, -0, -50.1319847
-498.216125, -0, -42.1985779
I hope you can help me! Thanks for reading!

1 comment
I know this is not really helping you but maybe you can use Mouse.Hit(this will return the CFrame of the pointer's CFrame) as a BulletEnd CFrame value. https://developer.roblox.com/api-reference/property/Mouse/Hit