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

Knife throw script not working?

So I'm currently making a throwing knife script but when the remote server is fired an error popped up saying 20:06:36.909 - ServerScriptService.The World.Knife Throw:24: attempt to perform arithmetic (mul) on nil and number

There's a local script and a normal script

local script

local plr = game:GetService("Players").LocalPlayer

local rp = game:GetService("ReplicatedStorage")
local KnifeThrow = rp:WaitForChild("The World:Remotes"):WaitForChild("KnifeThrow")

local UIS = game:GetService("UserInputService")

local debounce = false
local cooldown = 0.75


UIS.InputBegan:Connect(function(input,IsTyping)
   if IsTyping then
      return
   elseif input.KeyCode == Enum.KeyCode.T then      
      if workspace:FindFirstChild(plr.Name.." Barrage") then
         return
      else
         if debounce == false then
            debounce = true
            
            local Character = plr.Character
            local Humanoid = Character:WaitForChild("Humanoid")
            
            local pos = Character.Humanoid.TargetPoint
            local LookAt = (pos - Character.Head.Position).Unit
            KnifeThrow:FireServer()
            wait(cooldown)
            debounce = false
         end
      end
   end
end)

Normal script

local rp = game:GetService("ReplicatedStorage")
local knife = rp:WaitForChild("The World:Remotes"):WaitForChild("KnifeThrow")
local Debris = game:GetService("Debris")

local TweenService = game:GetService("TweenService")

local damage = 6.25

knife.OnServerEvent:Connect(function(Player,LookAt)
   local Character = Player.Character
   local Humanoid = Character:WaitForChild("Humanoid")
   local HumanoidRP = Character:WaitForChild("HumanoidRootPart")
   
   local thr = Humanoid:LoadAnimation(script:WaitForChild("Throw"))
   thr:Play()
   
   local Folder = Instance.new("Folder",workspace)
   Folder.Name = Player.Name.." Knives"
   
   for i = 1, 3 do
      local knife0 = script.Knife:Clone()
      knife0.CFrame = Character:WaitForChild("Right Arm").CFrame
      knife0.Parent = Folder
      knife0.Velocity = LookAt * 30
      local fly = Instance.new("BodyForce",knife0)
      fly.Force = Vector3.new(0,knife0:GetMass()*196.2,0)
      game.Debris:AddItem(knife0,10)
      wait()
      knife0.Touched:Connect(function()
         wait(15)
         knife0:remove()
      end)
   end
end)


1 comment

0

You didn't pass the LookAt variable.

1 answer

✓ Accepted answer

Looks like you forgot to pass the lookat variable

heres a little fix for your at line 27 of the local script

  KnifeThrow:FireServer(LookAt)

1 comment

0

oh no wonder why thanks! I was just tired

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