ContextActionService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Ermöglicht es einem Erlebnis, den Eingang des Benutzers an Kontextaktionen zu binden, oder Aktionen

Kontext und Aktion

Ein Kontext ist einfach eine Bedingung, unter der ein Spieler eine Actionausführen kann. Einige Beispiele beinhalten das Halten eines Tool , das Sitzen in einem Auto oder das

Eine Aktion ist einfach eine Eing

Aktionen Kontextsgebunden

Es ist besser zu verwenden ContextActionService's BindAction als Class.UserInputService.InputB

Abgerufene Aktionen inspizieren

Um eine Liste der Aktionen und ihre Bind-Eingaben zu sehen, können Sie die Registerkarte "Aktionen Bindings" in der Developer Console (F9 während des Spiels) überprüfen. Dies zeigt alle Bindings, einsch

Tastatur-Eingabe

Dieser Dienst ist besonders nützlich für die Unterstützung von Gamepad und Touch-Eingaben. Für Gamepad-Eingaben kannst du dich dafür entscheiden, den B-Button an eine Aktion zu binden, die den Benutzer zum vorherigen Menü zurückbringt, wenn sie ein anderes Men

Code-Beispiele

ContextActionService Tool Reload

local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Reload"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Reloading!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)

Zusammenfassung

Methoden

Ereignisse

Eigenschaften

Methoden

BindAction

void

Binden Sie eine Aktion an den Benutzer-Eingang, der eine Aktion-Handhabung funktion bein

Das Codebeispiel unten zeigt, wie ein Class.Sound``Class.Sound:Play()|played während ein Schlüssel ( H ) , Spielpad-Button oder Touch-Bildschirm-Button gedrückt wird.


local ContextActionService = game:GetService("ContextActionService")
-- Ein Autohorn
local honkSound = Instance.new("Sound", workspace)
honkSound.Looped = true
honkSound.SoundId = "rbxassetid://9120386436"
local function handleAction(actionName, inputState, inputObject)
if actionName == "HonkHorn" then
if inputState == Enum.UserInputState.Begin then
honkSound:Play()
else
honkSound:Pause()
end
end
end
-- Wenn der Spieler in das Fahrzeug setzt:
ContextActionService:BindAction("HonkHorn", handleAction, true, Enum.KeyCode.H, Enum.KeyCode.ButtonY)
-- Wenn der Spieler ausgeht:
ContextActionService:UnbindAction("HonkHorn")

Aktionen-Handler-Parameter

Die Aktions-Handler werden mit den folgenden Parametern aufgerufen:


<tr>
<td>1</td>
<td><code>string</code></td>
<td>Die gleiche Zeile, die ursprünglich an BindAction übergeben wurde</td>
</tr>
<tr>
<td>2</td>
<td><code>enum.UserInputState</code></td>
<td>Der Zustand der Eingabe (Beginnen, Ändern, Beenden oder Abbrechen)\*</td>
</tr>
<tr>
<td>3</td>
<td><code>Eingabeobjekt</code></td>
<td>Ein Objekt, das Informationen über die Eingabe enthält (je nach Benutzer-Eingabetyp verschiedene)</td>
</tr>
#TypBeschreibung

° Dies ermöglicht es einer Funktion, mehrere Aktionen auf einmal zu verarbeiten, wenn nötig. *Cancel wird gesendet, wenn einige Eingaben im Gange waren und eine andere Aktion über das in Gange befindliche Eingabe gebunden war, oder wenn die in Gange gebundene Aktion unbound ist.

Aktionen Bindungen Stack

Aktionen wie

Touch-Schaltflächen

Neben den Eingabearten kontrolliert diese Funktion den dritten Parameter, der für TouchEnabled-Ger

Parameter

actionName: string

Eine Zeichenfolge, die die auszuführende Aktion repräsentiert (z. B. "HonkHorn" oder "OpenDoor").

functionToBind: function

Die Aktionsverarbeitungsfunktion, die mit den folgenden Parametern aufgerufen wird, wenn die gebundenen Eingaben ausgelöst werden: string (actionName), Enum.UserInputState und ein InputObjekt.

createTouchButton: bool

Ob eine GUI-Schaltfläche für die Aktion auf Touch-Eingabegeräten erstellt werden sollte.

inputTypes: Tuple

Jede Zahl von Enum.KeyCode oder Enum.UserInputType , die die Eingaben zu der Actionbindet.


Rückgaben

void

Code-Beispiele

ContextActionService Tool Reload

local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Reload"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Reloading!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)
General Action Handler

local ContextActionService = game:GetService("ContextActionService")
local function handleAction(actionName, inputState, inputObj)
if inputState == Enum.UserInputState.Begin then
print("Handling action: " .. actionName)
print(inputObj.UserInputType)
end
-- Since this function does not return anything, this handler will
-- "sink" the input and no other action handlers will be called after
-- this one.
end
ContextActionService:BindAction("BoundAction", handleAction, false, Enum.KeyCode.F)
Stacked Action Handlers

local ContextActionService = game:GetService("ContextActionService")
-- Define an action handler for FirstAction
local function actionHandlerOne(actionName, inputState, _inputObj)
if inputState == Enum.UserInputState.Begin then
print("Action Handler One: " .. actionName)
end
-- This action handler returns nil, so it is assumed that
-- it properly handles the action.
end
-- Binding the action FirstAction (it's on the bottom of the stack)
ContextActionService:BindAction("FirstAction", actionHandlerOne, false, Enum.KeyCode.Z, Enum.KeyCode.X, Enum.KeyCode.C)
-- Define an action handler for SecondAction
local function actionHandlerTwo(actionName, inputState, inputObj)
if inputState == Enum.UserInputState.Begin then
print("Action Handler Two: " .. actionName)
end
if inputObj.KeyCode == Enum.KeyCode.X then
return Enum.ContextActionResult.Pass
else
-- Returning nil implicitly Sinks inputs
return Enum.ContextActionResult.Sink
end
end
-- Binding SecondAction over the first action (since it bound more recently, it is on the top of the stack)
-- Note that SecondAction uses the same keys as
ContextActionService:BindAction("SecondAction", actionHandlerTwo, false, Enum.KeyCode.Z, Enum.KeyCode.X)

BindActionAtPriority

void

BindActionAtPriority verhält sich wie BindAction , aber erlaubt auch eine Priorität zuzuweisen. Wenn mehrere Aktionen auf dieselben Eingaben gebunden sind, wird die höhere Priorität-Funktion aufgerufen, unabhängig von der Reihenfolge, in der die Aktionen gebunden wurden. In anderen Worten, diese Funktion überschreibt das normale "Stack" -Verhalten von BindAction.

Parameter

actionName: string

Eine Zeichenfolge, die die auszuführende Aktion repräsentiert (z. B. "HonkHorn" oder "OpenDoor").

functionToBind: function

Die Aktionsverarbeitungsfunktion, die mit den folgenden Parametern aufgerufen wird, wenn die gebundenen Eingaben ausgelöst werden: string (actionName), Enum.UserInputState und ein InputObjekt.

createTouchButton: bool

Ob eine GUI-Schaltfläche für die Aktion auf Touch-Eingabegeräten erstellt werden sollte.

priorityLevel: number

Die Prioritätsstufe, bei der die Aktion gebunden sein soll (höher betrachtet vor niedriger).

inputTypes: Tuple

Jede Zahl von Enum.KeyCode oder Enum.UserInputType, die die Eingaben zu der Actionbindet.


Rückgaben

void

Code-Beispiele

ContextActionService BindAction Priorities

local ContextActionService = game:GetService("ContextActionService")
local INPUT_KEY1 = Enum.KeyCode.Q
local INPUT_KEY2 = Enum.KeyCode.E
local function handleThrow(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject)
if inputState ~= Enum.UserInputState.Begin then
return Enum.ContextActionResult.Pass
end
print(`Action [{actionName}] occurred. KeyCode [{inputObject.KeyCode}] pressed.`)
return Enum.ContextActionResult.Sink
end
local function handlePunch(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject)
if inputState ~= Enum.UserInputState.Begin then
return Enum.ContextActionResult.Pass
end
print(`Action [{actionName}] occurred. KeyCode [{inputObject.KeyCode}] pressed.`)
return Enum.ContextActionResult.Sink
end
-- Without specifying priority, the most recently bound action is called first,
-- so pressing INPUT_KEY1 prints "Punch" and then sinks the input.
ContextActionService:BindAction("DefaultThrow", handleThrow, false, INPUT_KEY1)
ContextActionService:BindAction("DefaultPunch", handlePunch, false, INPUT_KEY1)
-- Here we bind both functions in the same order as above, but with explicitly swapped priorities.
-- That is, we give "Throw" a higher priority of 2 so it will be called first,
-- despite "Punch" still being bound more recently.
-- Pressing INPUT_KEY2 prints "Throw" and then sinks the input.
ContextActionService:BindActionAtPriority("PriorityThrow", handleThrow, false, 2, INPUT_KEY2)
ContextActionService:BindActionAtPriority("PriorityPunch", handlePunch, false, 1, INPUT_KEY2)

BindActivate

void

Beachten Sie, dass die Enum.UserInputType angegebene muss sein Keyboard oder Gamepad1 durch 2>Gamepad82> in 5>Gamepad85> sein, um gültig zu sein.

Parameter

userInputTypeForActivation: Enum.UserInputType

Muss über Gamepad8 Keyboard oder Gamepad1 sein.

keyCodesForActivation: Tuple

Rückgaben

void

GetAllBoundActionInfo

GetAllboundActioninfo gibt eine Tabelle zurück, die alle Aktionen' s Namen (ursprünglich an Class.ContextActionService:BindAction) zu einer Tabelle zurückgibt, die von GetBoundActionInfo aufgerufen wurde, wenn sie den Aktionsnamen selbst verwendet. Wenn Sie diese Funktion verwenden, können Sie alle derzeit gebundenen Aktionen überprüfen. Dies ist nützlich, wenn Sie


Rückgaben

GetBoundActionInfo

GetBoundActionInfo gibt eine Tabelle mit den folgenden Schlüsseln zurück, die eine gebundene Aktion beschreiben, deren Name gegeben ist. Um die gleichen Informationen für alle Aktionen auf einmal zu erhalten, verwenden Sie GetAllBoundActionInfo .


<tr>
<td><code>stackOrder</code></td>
<td>nummer</td>
<td>
Beschreibt die Index der Aktion auf der Stack (erhöhen)
</td>
</tr>
<tr>
<td><code>Prioritäts-Ebene</code> \*</td>
<td>nummer</td>
<td>
Beschreibt die <code>Class.ContextActionService:BindActionAtPriority()|priority</code> Ebene der Aktion
</td>
</tr>
<tr>
<td><code>createTouchButton</code></td>
<td>boolean</td>
<td>
Beschreibt, ob eine Touch-Schaltfläche auf <code>Class.UserInputService.TouchEnabled|TouchEnabled</code>-Geräten erstellt werden sollte
</td>
</tr>
<tr>
<td><code>inputTypen</code></td>
<td>tabelle</td>
<td>
Die Eingabeaufgaben, die an <code>Class.ContextActionService:BindAction()|BindAction</code> übergeben werden, für die dieses Handeln Auslöser
</td>
</tr>
<tr>
<td><code>beschreibung</code> ^</td>
<td>string</td>
<td>
Die Beschreibung der Aktion, die von <code>Class.ContextActionService:SetDescription()|SetDescription</code>
</td>
</tr>
<tr>
<td><code>titel</code> ^</td>
<td>string</td>
<td>
Der Titel der Aktion festgelegt von <code>Class.ContextActionService:SetTitle()|SetTitle</code>
</td>
</tr>
<tr>
<td><code>bild</code> †</td>
<td>string</td>
<td>
Das Bild des Touch-Buttons der Aktion, die von <code>Class.ContextActionService:SetImage()|SetImage</code>
</td>
</tr>
NameTypBeschreibung

Der Prioritätslevel wird immer noch enthalten, wenn BindActionAtPriority nicht verwendet wird - standardmäßig wird es 2000 sein.

° Indiziert, dass dieses Feld nil ist, wenn die zugeordnete Methode für die angegebene Actionnicht aufgerufen wurde.

Parameter

actionName: string

Rückgaben

GetCurrentLocalToolIcon

GetCurrentLocalToolIcon wird die BackpackItem.TextureId eines Tool derzeit equipped durch den 1> Class.Player1> oder 4> nil4> wenn kein solches Werkzeug oder wenn der Spieler kein 7> Class.Player.Character|Character


Rückgaben

Eine Inhaltsstring aus der Textur-ID des Werkzeugs oder null, wenn eine nicht gefunden werden konnte.

SetDescription

void

SetDescription wird die Beschreibung einer Aktion, die an Bindung durch BindAction festgelegt, setzen. In einer Liste der verfügbaren Aktionen wäre dies Text, der die gegebene Aktion beschreibt.

Obwohl der Name vielleicht darauf hinweist, dass diese Methode mit der Familie von Funktionen verwandt ist, die einen Touch-Button für Aktionen erstellen ( SetTitle , SetImage und SetPosition ) hat dies keine Ausw

Parameter

actionName: string

Der Name der Aktion wurde ursprünglich an BindAction übergeben.

description: string

Eine Textbeschreibung der Action, wie "Honk the car's horn" oder "Öffne das Inventar".


Rückgaben

void

Code-Beispiele

ContextActionService Touch Button

local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "Inspect"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- Image of a speech bubble with ? in it
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("Inspecting")
end
end
-- For touch devices, a button is created on-screen automatically via the 3rd parameter
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- We can use these functions to customize the button:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Look")
ContextActionService:SetDescription(ACTION_INSPECT, "Inspect something.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- We can manipulate the button directly using ContextActionService:GetButton
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Remember: non-touch devices won't return anything!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- Tint the ImageButton green
end

SetImage

void

Diese Methode setzt das Bild, das auf einem Touch-Button angezeigt wird, der von BindAction() erstellt wurde. Speziell setzt sie die ImageLabel.Image -Eigenschaft der ImageLabel inner

Diese Funktion ist Teil einer Reihe von Methoden, die die Touch-Schaltfläche einer Aktion anpassen. Andere in dieser Reihe umfassen SetPosition und SetTitle .

Parameter

actionName: string

Der Name der Aktion wurde ursprünglich an BindAction übergeben.

image: string

Der Wert, der der Eigenschaft Bild festlegensein sollte.


Rückgaben

void

Code-Beispiele

ContextActionService Touch Button

local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "Inspect"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- Image of a speech bubble with ? in it
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("Inspecting")
end
end
-- For touch devices, a button is created on-screen automatically via the 3rd parameter
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- We can use these functions to customize the button:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Look")
ContextActionService:SetDescription(ACTION_INSPECT, "Inspect something.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- We can manipulate the button directly using ContextActionService:GetButton
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Remember: non-touch devices won't return anything!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- Tint the ImageButton green
end

SetPosition

void

Diese Methode setzt die Position eines Touch-Buttons, der von BindAction() erstellt wurde. Speziell setzt sie die GuiObject.Position -Eigenschaft des ImageButton, der zurückgegeben wird von 1> Class.ContextActionService:GetButton()1>.

Diese Funktion ist Teil einer Reihe von Methoden, die die Touch-Schaltfläche einer Aktion anpassen. Andere in dieser Reihe umfassen SetImage und SetTitle .

Parameter

actionName: string

Der Name der Aktion wurde ursprünglich an BindAction übergeben.

position: UDim2

Die Position innerhalb des ContextButtonFrame.


Rückgaben

void

Code-Beispiele

ContextActionService Touch Button

local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "Inspect"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- Image of a speech bubble with ? in it
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("Inspecting")
end
end
-- For touch devices, a button is created on-screen automatically via the 3rd parameter
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- We can use these functions to customize the button:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Look")
ContextActionService:SetDescription(ACTION_INSPECT, "Inspect something.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- We can manipulate the button directly using ContextActionService:GetButton
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Remember: non-touch devices won't return anything!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- Tint the ImageButton green
end

SetTitle

void

SetTitle wird den Text, der auf einem Touch-Button angezeigt wird, der von BindAction erstellt wurde, festlegen. Dieser setzt insbesondere die TextLabel.Text -Eigenschaft eines TextLabel

Diese Funktion ist Teil einer Reihe von Methoden, die die Touch-Schaltfläche einer Aktion anpassen. Andere in dieser Reihe umfassen SetImage und SetPosition .

Parameter

actionName: string

Der Name der Aktion wurde ursprünglich an BindAction übergeben.

title: string

Der Text, der auf der Schaltfläche angezeigt wird.


Rückgaben

void

Code-Beispiele

ContextActionService Touch Button

local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "Inspect"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- Image of a speech bubble with ? in it
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("Inspecting")
end
end
-- For touch devices, a button is created on-screen automatically via the 3rd parameter
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- We can use these functions to customize the button:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Look")
ContextActionService:SetDescription(ACTION_INSPECT, "Inspect something.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- We can manipulate the button directly using ContextActionService:GetButton
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Remember: non-touch devices won't return anything!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- Tint the ImageButton green
end

UnbindAction

void

UnbindAction wird eine Aktion nach Namen von Benutzer-Eingaben abbinden, damit die Aktion-Handler-Funktion nicht mehr aufgerufen wird. Rufe diese Funktion auf, wenn der Kontext für einige Aktionen nicht mehr geltendist, z. B. das Schließen eines Benutzeroberflächens, das Beenden eines Autos oder unequipping ein Class

Diese Funktion wird keinen Fehler werfen, wenn es keine solche Aktion mit dem angegebenen Strings gebunden gibt. Wenn Sie Class.ContextActionService:GetAllBindActionInfo()|GetAllBindActionInfo oder die Registerkarte "Action Bindings" der Entwicklerkonsole verwenden, können Sie herausfinden, welche Aktionen derzeit gebunden sind.

Parameter

actionName: string

Rückgaben

void

Code-Beispiele

ContextActionService Tool Reload

local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Reload"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Reloading!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)

UnbindActivate

void

UnbindActivate unbinds an Enum.KeyCode mit einem Enum.UserInputType für die Aktivierung eines Tool (oder eines 1> Class.HopperBin1> ) mit der Verwendung von 4> Class.ContextActionService:BindActivate()|BindActivate4>. Diese Funktion führt

Parameter

userInputTypeForActivation: Enum.UserInputType

Der gleiche UserInputType wurde ursprünglich an BindActivate gesendet.

keyCodeForActivation: Enum.KeyCode

Der gleiche KeyCode, der ursprünglich an BindActivate gesendet wurde.

Standardwert: "Unknown"

Rückgaben

void

UnbindAllActions

void

Entfernt alle gebundenen Funktionen. Es bleiben keine Aktionen übrig. Alle Touch-Schaltflächen werden entfernt. Wenn eine Schaltfläche manuell manipuliert wurde, gibt es keine Garantie, dass sie wieder sauber gemacht wird.


Rückgaben

void

GetButton

Angehalten

GetButton gibt die ImageButton zurück, die von BindAction erstellt wurde, wenn sein dritter Parallelberechtigung wahr ist und das Gerät TouchEnabled ist. Der einzige Parallelberechtigung für diese Funktion muss genau den Namen der Aktion ursprünglich an BindAction entsprechen.

Wenn keine solche Aktion gebunden wurde oder wenn kein Button erstellt wurde, gibt diese Funktion nil zurück.

Parameter

actionName: string

Der Name der Aktion wurde ursprünglich an BindAction übergeben.


Rückgaben

Ein ImageButton erstellt von BindAction.

Ereignisse

LocalToolEquipped

Feuert, wenn der aktuelle Spieler ein Tool trägt.

Parameter

toolEquipped: Instance

LocalToolUnequipped

Feuert, wenn der aktuelle Spieler ein Tool ablegen.

Parameter

toolUnequipped: Instance