[Roblox Scripting | en | vi] Remove all tools of a player when touching a part

To test this script, please create a Part in the Workspace (Roblox Studio) and a Script which its parent is the Part you created before. Then, copy the code below to your Script.

With English comment:

-- Function: remove all player's equipment
-- includes equipment being held by the player and equipped in the BackPack

-- DECLARE SERVICES
local Players = game.Players

-- DECLARE PATHS TO OBJECTS
local RemoveToolPart = script.Parent

-- DECLARE VARIABLES
local isInfoBeingDisplayed = false

-- DECLARE FUNCTION DISPLAYINFO()
function displayInfo(player, info)
	isInfoBeingDisplayed = true
	local InfoGui = Instance.new("ScreenGui")
	local InfoLabel = Instance.new("TextLabel")
	InfoLabel.Parent = InfoGui
	InfoGui.Parent = player.PlayerGui
	InfoLabel.Size = UDim2.new(0.35,0,0.2,0)
	InfoLabel.BorderSizePixel = 0 
	InfoLabel.BackgroundColor = BrickColor.new("White")
	InfoLabel.BackgroundTransparency = 0.3
	InfoLabel.TextSize = 18
	InfoLabel.AnchorPoint = Vector2.new(0.5,0.5)
	InfoLabel.Position = UDim2.new(0.5,0,0.2,0)
	InfoLabel.Text = info
	wait(4)
	InfoLabel:Remove()
	isInfoBeingDisplayed = false
end


-- DECLARE FUNCTION REMOVETOOL()
function removeAllTools(character)	
	-- Store equipment in the player's BackPack
	local currentTool = character:FindFirstChildWhichIsA("Tool")
	if (currentTool) then
		character.Humanoid:UnequipTools()
	end	
	
    -- Remove equipment from the player's BackPack
    -- then show a message on the player's screen
	local player = Players:GetPlayerFromCharacter(character)
	local tools = player.Backpack:GetChildren()
	
	if #tools > 0 then
		--Remove all equipment
		for i =1, #tools do
			tools[i]:Remove()
		end
        -- Show notifications
		if (not(isInfoBeingDisplayed)) then
			displayInfo(player, "You have lost all your equipment!")
		end	
	end
	
end

-- DECLARE FUNCTION CHECKIFPLAYERCHARACTER()
local function checkIfPlayerCharacter(touchedPart)
	local character = nil
    -- Check if the object is a player
    -- Remove all equipment if the object is a player
	if (touchedPart.Parent:findFirstChild("Humanoid")) then
		character = touchedPart.Parent
		print("Remove all tools of player " .. character.Name)
		removeAllTools(character)
	end
end

-- DECLARE FUNCTION CHECKIFPLAYERCHARACTER()
RemoveToolPart.Touched:Connect(checkIfPlayerCharacter)

With Vietnamese comment:

-- Chức năng: lấy tất cả các trang bị của người chơi
-- bao gồm trang bị đang được người chơi cầm và trang bị trong BackPack

-- KHAI BÁO SERVICE
local Players = game.Players

-- KHAI BÁO VẬT THỂ
local RemoveToolPart = script.Parent

-- KHAI BÁO BIẾN
local isInfoBeingDisplayed = false

-- KHAI BÁO FUNCTION DISPLAYINFO()
function displayInfo(player, info)
	isInfoBeingDisplayed = true
	local InfoGui = Instance.new("ScreenGui")
	local InfoLabel = Instance.new("TextLabel")
	InfoLabel.Parent = InfoGui
	InfoGui.Parent = player.PlayerGui
	InfoLabel.Size = UDim2.new(0.35,0,0.2,0)
	InfoLabel.BorderSizePixel = 0 
	InfoLabel.BackgroundColor = BrickColor.new("White")
	InfoLabel.BackgroundTransparency = 0.3
	InfoLabel.TextSize = 18
	InfoLabel.AnchorPoint = Vector2.new(0.5,0.5)
	InfoLabel.Position = UDim2.new(0.5,0,0.2,0)
	InfoLabel.Text = info
	wait(4)
	InfoLabel:Remove()
	isInfoBeingDisplayed = false
end


-- KHAI BÁO FUNCTION REMOVETOOL()
function removeAllTools(character)	
	-- Cất trang bị vào BackPack của người chơi
	local currentTool = character:FindFirstChildWhichIsA("Tool")
	if (currentTool) then
		character.Humanoid:UnequipTools()
	end	
	
	-- Xóa trang bị trong BackPack của người chơi
	-- sau đó hiện thông báo trên màn hình của người chơi
	local player = Players:GetPlayerFromCharacter(character)
	local tools = player.Backpack:GetChildren()
	
	if #tools > 0 then
		--Xóa trang bị
		for i =1, #tools do
			tools[i]:Remove()
		end
		-- Hiện thông báo
		if (not(isInfoBeingDisplayed)) then
			displayInfo(player, "Bạn đã mất hết trang bị!")
		end	
	end
	
end

-- KHAI BÁO FUNCTION CHECKIFPLAYERCHARACTER()
local function checkIfPlayerCharacter(touchedPart)
	local character = nil
	-- Kiểm tra xem vật thể có phải người chơi
	-- Xóa toàn bộ trang bị nếu vật thể là người chơi
	if (touchedPart.Parent:findFirstChild("Humanoid")) then
		character = touchedPart.Parent
		print("Remove all tools of player " .. character.Name)
		removeAllTools(character)
	end
end

-- KHAI BÁO FUNCTION ỨNG VỚI EVENT TOUCH
RemoveToolPart.Touched:Connect(checkIfPlayerCharacter)