In-Game-Tools

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

In-Game Tools sind interaktive Werkzeuge, die Spieler in Sitzungen ausrüsten können, wie Waffen, Zauberstäbe, Taschenlampen, Schlüssel und mehr. Sie können Werkzeuge entwerfen und sie im Inventar eines Spielers einfügen oder sie in der Welt als Abholungen platzieren.

Erstellen Sie ein In-Game-Tool

Das Tool-Objekt ist die Grundlage jedes Werkzeugs in Roblox, daher müssen Sie eines erstellen. Es ist einfacher, eine Vorschau zu sehen, wie ein Werkzeug aussieht, indem Sie es im Workspace entwerfen, und später können Sie es zu einem Inventar-Element oder einem verdienten/gekauften-Element machen.

  1. Bewegen Sie im Explorer die Maus über Workspace, klicken Sie auf die -Schaltfläche und fügen Sie ein Tool ein.

    Tool-Objekt, das im Arbeitsbereich erstellt wurde
  2. Wählen Sie das neue Tool aus, greifen Sie auf das Eigenschaften-Fenster zu und passen Sie an, wie das Werkzeug im Inventar des Spielers erscheinen soll:

    • TextureId — Gibt die Bild-Asset-ID für das Werkzeug im Inventar eines Spielers an.
    • ToolTip — Der Tooltip-Name beim Überfahren für das Werkzeug im Inventar eines Spielers.
  3. Entscheiden Sie, ob das Werkzeug ein physisches Werkzeug in der 3D-Umgebung (am häufigsten) oder ein nicht-physisches Werkzeug sein soll, das einfach das Inventar eines Spielers belegt und auf deren Eingaben reagiert.

Physisches Werkzeug

Nachdem Sie die Tool-Instanz für ein physisches Werkzeug erstellt haben, müssen Sie Teile/Meshes hinzufügen, um sein Aussehen in der 3D-Welt zu gestalten. Sie müssen auch einen Griff einfügen, den die Spielercharaktere halten.

Teile/Meshes hinzufügen

In-Game-Tools können aus einem oder mehreren Parts und/oder MeshParts bestehen. Wenn Sie das Werkzeug aus mehreren Teilen konstruieren, denken Sie daran, sie alle mit WeldConstraints oder anderen mechanischen Einschränkungen zu verbinden, damit das Werkzeug als Einheit intakt bleibt, während der Spieler es herumträgt.

Einschränkungswähler, die in der Werkzeugleiste von Studio angezeigt werden

Den Griff festlegen

Um es den Spielern zu ermöglichen, Werkzeuge herumzutragen, muss ein Teil des Werkzeugs Handle genannt werden. Hier wird das Werkzeug am RightHand Körperteil (R15) oder am Right Arm-Teil (R6) des Charaktermodells befestigt.

Wenn das Werkzeug nur aus einem MeshPart besteht, benennen Sie dieses Teil einfach Handle. Andernfalls können Sie ein separates Teil mit dem Namen Handle als direktes Kind des übergeordneten Tool einfügen und es dann mit einem WeldConstraint oder mechanischen Einschränkungen an ein anderes Teil anbringen.

Das folgende Beispiel zeigt ein Werkzeug mit drei Instanzen: dem Handle-Mesh, einer RopeConstraint und einem Laternen-Mesh, das an dem Seil hängt.

Die Griffposition/Ausrichtung anpassen

Die Grip-Eigenschaft des Werkzeugs ist ein CFrame, das angibt, wie das Werkzeug relativ zum haltenden Charakter positioniert und ausgerichtet ist.

Da die ideale Griffposition/Ausrichtung für jedes Werkzeug unterschiedlich ist, müssen Sie mit den Werten experimentieren, bis der Griff Ihres Werkzeugs korrekt aussieht. Das folgende Beispiel zeigt mögliche falsche und korrekte Grip-Einstellungen für die hängende Laterne:

Laterne, die mit Grip.Position von (0, -2, 0) und Grip.Orientation von (-90, 0, 0) auf dem Boden zieht
Laterne vor dem Charakter mit Grip.Position von (0, -1.5, 0) und Grip.Orientation von (25, 0, 0)

Nicht-physisches Werkzeug

Ein nicht-physisches Tool belegt einfach das Inventar eines Spielers und reagiert auf deren Eingaben. Zum Beispiel könnte ein Rollenspiel eine Reihe von magischen Zaubern enthalten, die Spieler durch ihr Inventar "wirken" können.

Nicht-physische Werkzeuge erfordern keine 3D-Zusammensetzung und verwenden kein Handle-Teil, daher sollten Sie die RequiresHandle-Eigenschaft des Werkzeugs deaktivieren:

Werkzeuge zu einem Spiel hinzufügen

Sobald Sie Ihr In-Game-Tool erstellt haben, müssen Sie es im richtigen Bereich der Explorer-Hierarchie platzieren. Wo Sie das Werkzeug in der Hierarchie platzieren, hängt von seiner beabsichtigten Verwendung ab.

Spielerinventar

Wenn Sie möchten, dass alle Spieler mit einem Werkzeug in ihrem Inventar starten, legen Sie es in den StarterPack-Container. Wenn ein Spieler spawnt, kopiert das System das Werkzeug in seinen Backpack. Von dort aus kann der Spieler das Werkzeug ausrüsten, indem er auf das Inventar-Symbol klickt oder die zugehörige Taste wie 1 oder 2 drückt.

Beachten Sie, dass Werkzeuge in der Reihenfolge, in der sie zu StarterPack hinzugefügt wurden, in das Inventar des Spielers (Backpack) kopiert werden. Für eine kontrolliertere Reihenfolge können Sie ein LocalScript zu StarterPack hinzufügen, das die Werkzeuge vorübergehend in ReplicatedStorage verschiebt und sie dann in der im order-Tabelle angegebenen Reihenfolge wieder in Backpack umschließt.

Inventar neu anordnen
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local order = {"WaterSpell", "FireSpell", "AirSpell", "EarthSpell"}
local backpack = script.Parent
for _, item in backpack:GetChildren() do
if item:IsA("Tool") then
item.Parent = ReplicatedStorage
end
end
-- Werkzeuge in der angegebenen Reihenfolge wieder umschließen
for i = 1, #order do
local tool = ReplicatedStorage:FindFirstChild(order[i])
if tool then
tool.Parent = backpack
end
end

Sammelbares Werkzeug

Wenn Sie es den Spielern ermöglichen möchten, physische Werkzeuge zu sammeln, während sie die 3D-Welt erkunden, platzieren Sie die Werkzeuge im Workspace, genau wie normale 3D-Objekte. Gesammelte Werkzeuge werden automatisch ausgerüstet und dem Inventar des Spielers hinzugefügt (Sie müssen keine zusätzliche Kollisionsüberprüfung hinzufügen, damit Charaktere das Werkzeug greifen können).

Wie im Abschnitt Teile/Meshes hinzufügen erwähnt, sollten Werkzeugteile normalerweise nicht Anchored sein, da die Spielercharaktere an Ort und Stelle stecken bleiben, wenn sie ein verankertes Werkzeug aufheben oder ausrüsten. Wenn Sie jedoch ein sammelbares Werkzeug an einem bestimmten Ort in der 3D-Welt verankern möchten, z. B. leicht über dem Boden schwebend, können Sie das folgende Script zum Werkzeug hinzufügen, um seine Teile beim Einsammeln zu entankern.

Werkzeug beim Ausrüsten/Sammeln entankern
local tool = script.Parent
tool.Equipped:Connect(function()
for _, part in tool:GetDescendants() do
if part:IsA("BasePart") and part.Anchored then
part.Anchored = false
end
end
end)

Verdientes/gekauftes Werkzeug

Wenn Sie Werkzeuge als Belohnungen festlegen möchten, wenn Spieler Aufgaben erfüllen, oder Werkzeuge zum Verkauf in einem In-Game-Shop anbieten möchten, legen Sie diese Werkzeuge in ReplicatedStorage. Von dort aus können Sie Clone() ein Werkzeug zum Backpack des Spielers zur richtigen Zeit hinzufügen.

Werkzeug in das Inventar des Spielers klonen
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
-- Erstellen Sie einen Klon des Werkzeugs
local tool = ReplicatedStorage:FindFirstChild("WaterSpell")
if tool then
local clone = tool:Clone()
clone.Parent = backpack -- Fügt den Klon dem Inventar des Spielers hinzu
end

Werkzeugeffekte implementieren

Nachdem Sie Werkzeuge zu Ihrem Spiel hinzugefügt haben, können Sie Skripte implementieren, um es den Spielern zu ermöglichen, ihre Werkzeuge zu verwenden und die gewünschten Aktionen auszuführen. Die folgenden werkzeugspezifischen Ereignisse zeigen den Zustand des Werkzeugs und die Eingaben des Spielers damit an.

  • Equipped() — Wird ausgelöst, wenn der Spieler das Werkzeug aus seinem Rucksack auswählt.
  • Unequipped() — Wird ausgelöst, wenn der Spieler die Werkzeuge wechselt oder das Werkzeug fallen lässt.
  • Activated() — Wird ausgelöst, wenn der Spieler beginnt, das Werkzeug zu aktivieren (klickt, tippt oder drückt den hinteren rechten Trigger auf einem Gamepad).
  • Deactivated() — Wird ausgelöst, wenn der Spieler die Aktivierungseingabe stoppt (lässt die Taste oder Berührung los).
Werkzeugereignisvorlage
local tool = script.Parent
local function onEquip()
print(tool.Name, "Werkzeug ausgerüstet")
end
local function onUnequip()
print(tool.Name, "Werkzeug abgenommen")
end
local function onActivate()
print(tool.Name, "Werkzeug aktiviert")
end
local function onDeactivate()
print(tool.Name, "Werkzeug deaktiviert")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

Werkzeugereignisse werden nur in clientseitigen LocalScripts ausgelöst, da nur das Gerät des Spielers weiß, wann Eingaben erfolgen. Daher erfordern die meisten Werkzeuge sowohl ein LocalScript als auch ein serverseitiges Script, wobei jedes bestimmte Aspekte des Verhaltens des Werkzeugs behandelt und ein RemoteEvent Informationen vom Client zum Server überträgt (siehe Remote-Events und Rückrufe für weitere Informationen).

Im Folgenden sind Beispielwerkzeuge und deren Verhaltensweisen aufgeführt, die entweder von einem LocalScript oder einem Script verwaltet werden:

WerkzeugLocalScriptScript
Zauberstab des ErstellersErkennt, wo der Spieler das Werkzeug aktiviert (Activated()).Erstellt ein neues Teil an dem Ort in der 3D-Welt, wo der Spieler berührt oder klickt.
UnsichtbarkeitsumhangErkennt, wenn der Spieler das Werkzeug ausrüstet (Equipped()) oder das Werkzeug abnimmt (Unequipped()).Macht den Spieler für alle anderen Spieler unsichtbar, während der Umhang ausgerüstet ist, und stellt den Spieler bei Abnahme des Umhangs wieder vollständig sichtbar.
Mega-BogenErkennt, wie lange der Spieler das Werkzeug aktiviert (Zeit zwischen Activated() und Deactivated()).Schießt einen magischen Pfeil mit größerer oder geringerer Kraft, abhängig von der erkannten Aktivierungszeit.
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.