Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Filtering Enabled Gun Help? attempt to call a userdata value

(the error that appears at line 23 is bad argument #1 to '?' (Vector3 expected, got Object). I tried making the server submit mouse.Hit.p as mouse.Hit and the server has the mouse.p but the problem here is that the mouse would become the player with the error of p is not a valid object of player. help)answered by Winter Alien but when i click it , nothing happens and this error occurs. attempt to call a userdata value

Local Script

local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
--Variables
 local spread = .2
local Ammo = 60
local MaxAmmo =60
local Mag =360
local automatic = true
local enabled = true
local Hold = true
local reloading = false
local range = 100
--Variables
local mouse = nil
function hold()
	Hold = true
	while Hold and enabled and player.Character.Humanoid.Health > 0 and Ammo > 0 and reloading == false and tool.Enabled == true do
				if hold == false then break end
				enabled = false
				tool.FireWeapon:FireServer(mouse.Hit.p)
				--fireserverhere
				wait(firerate)
		enabled = true	
		if automatic == false then
			enabled = true
			break	
		end
	end
	function holddown()
	Hold = false
end
tool.Equipped:connect(function(Mouse)
	mouse = Mouse
	tool.Enabled = true
	mouse.Button1Down:connect(hold)
mouse.Button1Up:connect(holddown)
end)

The line that errors in server script

local range = 100
function shoot(player, mouse)
local ray = Ray.new(tool.Handle.CFrame.p, (mouse - tool.Handle.CFrame.p).unit * range)
--Useless code
end
tool.FireWeapon.OnServerEvent:connect(player, shoot)

1 answer

Since OnServerEventreturns its first argument as the player who made the call. You should use the second argument which is the mouse data:

local range = 100
function shoot(player,mouse)
local ray = Ray.new(tool.Handle.CFrame.p, (mouse - tool.Handle.CFrame.p).unit * range)
--Useless code
end
tool.FireWeapon.OnServerEvent:connect(player,shoot)

1 comment

0

attempt to call a userdata value, what does this mean?

This discussion is preserved as it was. New answers, comments, and votes are closed.