I'm trying to make it so when i press 1, 2 , 3 it equips weapon. So far, every time i've tried making it with UserInputService, it crashes the GUI itself. Here's my script.
local Items = {}
local frames = {}
local Equiped = nil
local Player = game.Players.LocalPlayer
local Character = Player.Character
local UserInputService = game:GetService("UserInputService")
local bp = Player.Backpack
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack,false)
local inputKeys = {
Enum.KeyCode.One
Enum.KeyCode.Two
Enum.KeyCode.Three
Enum.KeyCode.Four
Enum.KeyCode.Five
Enum.KeyCode.Six
Enum.KeyCode.Seven
Enum.KeyCode.Eight
Enum.KeyCode.Nine
Enum.KeyCode.Zero}
end
function Scan(location)
for i,v in pairs(location:GetChildren()) do
if v:IsA("Tool") then
table.insert(Items,v)
end
end
end
function Update()
print(Equiped)
for i,v in pairs(frames) do
v:Destroy()
end
for i,v in pairs(Items) do
local sam = script.Sample:Clone()
sam.Name = v.Name
sam.Parent = script.Parent.Holder
sam.ImageLabel.Image = v.TextureId
sam.Text = v.Name
table.insert(frames,sam)
if Equiped ~= nil and Equiped == v then
sam.BorderSizePixel = 2
end
sam.MouseButton1Click:connect(function()
if Equiped == nil or Equiped ~= v then
Equiped = v
Character.Humanoid:UnequipTools()
Character.Humanoid:EquipTool(v)
else
Eqeys to equip/unequipuiped = nil
Character.Humanoid:UnequipTools()
end
end)
end
end
function onKeyPress(inputObject)
local key = inputObject.KeyCode.Name
local value = inputKeys[key]
if value and UserInputService:GetFocusedTextBox() == nil then
Equiped(value["tool"])
end
end
function backpackchanged()
Items = {}
Scan(Character)
Scan(Player.Backpack)
Update()
end
backpackchanged()
Player.Backpack.ChildAdded:connect(backpackchanged)
Player.Backpack.ChildRemoved:connect(backpackchanged)
Character.ChildAdded:connect(backpackchanged)
Character.ChildRemoved:connect(backpackchanged)

2 comments
Enum.KeyCode.Zero} end... ??? What's with the "end"? You already have the covered with }.
thanks for finding that, but it still doesn't work.