PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

Deactivated

The Deactivated event fires when the left mouse button is released while a Tool is equipped.

This function is used to perform an action when the player stops using a tool. For instance, a tool may make a player fly until they release their left mouse button.

The below code, when placed in a LocalScript, would create a tool in the Players/LocalPlayer|LocalPlayer's Backpack. It will print “Tool deactivated” when the player releases the left mouse button, while the tool is equipped.

local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.Parent = game.Players.LocalPlayer.Backpack
 
function toolDeactivated()
    print("Tool deactivated")
end
 
tool.Deactivated:Connect(toolDeactivated)


Code Samples


Player Fly Tool

The code below demonstrates the functionality of several Tool events, including Tool/Activated, Tool/Deactivated, and Tool/Unequipped.

The code, when placed in a LocalScript in the StarterPlayer.StarterCharacterScripts folder inserts and controls a tool in the Players/LocalPlayer|LocalPlayer's Backpack that allows the player to fly through the sky when used.

In order to ensure that the player stops flying when the player unequips the tool, the code uses the tool’s Unequipped event to turn set the fly boolean to true and turn stop flying until the tool is reequipped and activated again.

-- ========================================
-- GLOBAL VARIABLES
-- ========================================
local power = 30
wait() 
local tool = nil

local bpos = Instance.new("BodyPosition") 
local gyro = Instance.new("BodyGyro") 

local fly = false 

local player = game.Players.LocalPlayer 

local character = player.Character
if not character or not character.Parent then
    character = player.CharacterAdded:wait()
end

local char = character:FindFirstChild("UpperTorso")
if not char then char = character:FindFirstChild("Torso") end

local mouse = game.Players.LocalPlayer:GetMouse()
-- ========================================
-- ========================================


-- ========================================
-- SETUP FUNCTION
-- ========================================

-- Create a new tool and place it in the local player's backpack
-- Make this script a child of the tool, script controls flying
local function setupTool()
	tool = Instance.new("Tool")
	tool.Name = "Fly"
	tool.RequiresHandle = false
	tool.Parent = game.Players.LocalPlayer.Backpack
	
	gyro.maxTorque = Vector3.new(math.huge,math.huge,math.huge) 
	bpos.maxForce = Vector3.new(math.huge,math.huge,math.huge)
	
	script.Parent = tool
	
	tool.Parent = game.Players.LocalPlayer.Backpack
end

setupTool()
-- ========================================
-- ========================================


-- ========================================
-- FLY FUNCTIONS
-- ========================================

-- Start flying when player uses tool
function onSelected() 	
	bpos.Parent = char 
	bpos.position = char.Position + Vector3.new(0,10,0) 
	gyro.Parent = char 
	
	character.Humanoid.PlatformStand = true 

	for i, v in ipairs(char:GetChildren()) do 
		if v.className == "Motor" then 
			v.MaxVelocity = 0 
			v.CurrentAngle = -1 
			if v.Name == "Left Hip" then 
				v.CurrentAngle = 1 
			end 
		end 
	end
	
	fly = true 
	wait()
	while fly do
		local pos = mouse.Hit.p
		gyro.CFrame = CFrame.new(char.Position,pos) * CFrame.fromEulerAnglesXYZ(-3.14/2,0,0) 
		bpos.Position = char.Position + (pos-char.Position).unit * power 
		wait()
	end 
end 

-- Stop flying when player stops using tool
function onDeselected() 
	gyro.Parent = nil 
	fly = false 
 
	character.Humanoid.PlatformStand = false 
	
	for i, v in ipairs(char:GetChildren()) do 
		if v.className == "Motor" then 
			v.MaxVelocity = 1 
		end 
	end

	bpos.Parent = nil 
end 

tool.Unequipped:Connect(function() fly = false end)

tool.Activated:Connect(onSelected) 
tool.Deactivated:Connect(onDeselected)
-- ========================================
-- ========================================