Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- LocalScript (put in StarterPlayerScripts) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local backpack = player:WaitForChild("Backpack") -- the name of the tool we want to keep re-equipped; nil when nothing selected local desiredToolName = nil -- helper: find a Tool instance by name in Backpack or Character local function findToolByName(name) if not name then return nil end local char = player.Character local tool = backpack:FindFirstChild(name) if tool and tool:IsA("Tool") then return tool end if char then local t2 = char:FindFirstChild(name) if t2 and t2:IsA("Tool") then return t2 end end return nil end -- equip a Tool instance using the humanoid (works client-side) local function equipToolInstance(tool) if not tool then return end local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then pcall(function() humanoid:EquipTool(tool) end) end end -- equip the first tool in the backpack (by order), set it as desired local function equipFirstToolInBackpack() for _, obj in ipairs(backpack:GetChildren()) do if obj:IsA("Tool") then desiredToolName = obj.Name equipToolInstance(obj) return end end -- nothing found desiredToolName = nil end -- Called when a tool is unequipped. If it's our desired tool, re-equip it. local function onToolUnequipped(tool) if not desiredToolName then return end if not tool or not tool:IsA("Tool") then return end -- match by name to handle tool instances switching between Backpack/Character if tool.Name == desiredToolName then -- small delay so Roblox finishes the unequip process task.wait(0.05) local candidate = findToolByName(desiredToolName) if candidate then equipToolInstance(candidate) end end end -- connect Unequipped for tools currently in backpack and for future ones local function bindToolConnections() -- connect existing tools for _, obj in ipairs(backpack:GetChildren()) do if obj:IsA("Tool") then obj.Unequipped:Connect(function() onToolUnequipped(obj) end) end end -- connect tools added later backpack.ChildAdded:Connect(function(child) if child:IsA("Tool") then child.Unequipped:Connect(function() onToolUnequipped(child) end) end end) -- if tools move into the character (equipped), also connect them player.CharacterAdded:Connect(function(char) -- connect any tools that are in character char.ChildAdded:Connect(function(c) if c:IsA("Tool") then c.Unequipped:Connect(function() onToolUnequipped(c) end) end end) end) end -- input handler: press "1" to equip first tool and start the auto-reequip behavior UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.Keyboard then if input.KeyCode == Enum.KeyCode.One then equipFirstToolInBackpack() end end end) -- set up connections bindToolConnections() -- also handle case when character spawns and we already flagged a desired tool: player.CharacterAdded:Connect(function() -- small delay to let humanoid exist task.wait(0.1) if desiredToolName then local t = findToolByName(desiredToolName) if t then equipToolInstance(t) end end end)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)