Engagement-Belohnungen

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

Das Engagement-Belohnungen Feature-Paket ist ein anpassbarer Rahmen für das Anbieten von In-Game-Belohnungen für bestimmte Spieleraktivitäten, einschließlich täglicher Login-Streaks und Spielzeit. Neben der Client- und Serverlogik enthält das Paket eine Standard-Benutzeroberfläche zur Anzeige des Belohnungsfortschritts, des Belohnungsstatus und zum Einfordern von Belohnungen.

Paket erhalten

  1. Fügen Sie die Core und Engagement-Belohnungen Pakete zu Ihrem Inventar innerhalb von Studio hinzu, indem Sie auf die Zum Inventar hinzufügen Links hier klicken:

  2. Öffnen Sie im Fenster-Menü oder in der Startseite-Registerkarte die Toolbox.

  3. Klicken Sie im Toolbox-Fenster auf die Registerkarte Inventar. Die Sortierung Meine Modelle wird angezeigt.

    Toolbox-Fenster von Studio mit hervorgehobener Inventar-Registerkarte.
  4. Klicken Sie auf die Kachel Feature-Paket Core und dann auf die Kachel Engagement-Belohnungen Feature-Paket. Beide Paketordner werden im Explorer-Fenster angezeigt.

  5. Ziehen Sie die Ordner in ReplicatedStorage.

Paket initialisieren

Das Verschieben der Pakete in ReplicatedStorage und das Testen Ihres Spiels führt das Skript EngagementRewardsExample in ReplicatedStorage.EngagementRewards.Server.Examples aus.

Dieses Skript zeigt, wie man das Paket für die Verwendung in Ihrem Spiel initialisiert, was das Erfordern mehrerer Modul-Skripte und die Definition einer Funktion rewardClaimedHandlerFunction() umfasst, die letztendlich die Belohnung(en) an den Spieler vergibt.

Diese Funktion muss einen booleschen Wert zurückgeben. Im Beispielskript sehen Sie, dass es dem Spieler keine Belohnungen gibt; es druckt nur den Spieler, die Belohnung und die Menge, die beansprucht wird.

EngagementRewardsExample
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EngagementRewardsConfig = require(ReplicatedStorage.EngagementRewards.Configs.EngagementRewardsConfig)
local EngagementRewards = require(ReplicatedStorage.EngagementRewards.Server.EngagementRewards)
local EngagementRewardsUtils = require(ReplicatedStorage.EngagementRewards.Utils.EngagementRewardsUtils)
local Types = require(ReplicatedStorage.EngagementRewards.Configs.Types)
-- Ersetzen Sie diese Handler-Funktion durch Ihre eigene Belohnungs-Handler-Funktion
-- Diese Funktion sollte das Ereignis für die beanspruchte Belohnung für die übergebene rewardId behandeln
local function rewardClaimedHandlerFunction(player: Player, rewardId: RewardId, quantity: number): (boolean, string?)
print(`Belohnung {rewardId} wurde von {player} mit der Menge {quantity} beansprucht`)
return true
end
-- mehr

Sie können dieses Skript entweder direkt ändern oder es in ServerScriptService verschieben, wenn dies Ihr bevorzugter Ort für Servercode ist. So wie es ist, ist das Skript nur für Testzwecke nützlich.

Die Vergabe der Belohnung an den Spieler variiert je nach Spiel. In einigen Spielen könnten Sie einen Spielboost gewähren oder einfach die Goldanzahl des Spielers erhöhen. In anderen Spielen haben Sie möglicherweise ein benutzerdefiniertes Inventarsystem, während andere möglicherweise einen Gegenstand in die Rucksäcke der Spieler legen. In allen Fällen müssen Sie jedoch rewardClaimedHandlerFunction() durch Ihre eigene Funktion ersetzen.

Belohnungen und Kriterien hinzufügen

Die meisten Anpassungen der Belohnungen erfolgen innerhalb von ReplicatedStorage.EngagementRewards.Configs.EngagementRewardsConfig. Dieses Modul-Skript definiert die Belohnung und die Anforderungen für deren Freischaltung.

Sie können die vollständigen Typdeklarationen (oder neue hinzufügen) in ReplicatedStorage.EngagementRewards.Configs.Types sehen, aber wahrscheinlich müssen Sie nur mit EngagementRewardsConfig arbeiten. Das Feature-Paket umfasst zwei Belohnungstypen: Zeit und Täglich.

local engagementRewardsConfig: Types.EngagementRewardsConfig = {
[Types.RewardType.Time] = {
tabDisplayName = "Zeit",
tabOrder = 1,
description = "Spielen Sie weiter, um Belohnungen freizuschalten!",
rewards = {
MinutesPlayed1 = {
icon = 116913478160966,
displayName = "Eislanze",
requiredSecondsInGame = 1 * 5,
},
-- mehr
[Types.RewardType.Daily] = {
tabDisplayName = "Täglich",
tabOrder = 2,
description = "Spielen Sie täglich, um Belohnungen freizuschalten!",
rewards = {
DailyStreak1 = {
icon = 116913478160966,
displayName = "Eislanze",
requiredDaysVisitedStreak = 1,
effect = Types.RewardEffect.Valuable,
},
-- mehr

Beide Belohnungstypen erfordern ein Icon, das eine Roblox-Asset-ID für ein Bild ist (nicht ein Decal). Sie möchten wahrscheinlich auch einen Anzeigenamen für die Verwendung in der Benutzeroberfläche. Geben Sie quantity für Werte ungleich 1 an. Sie können auch optional eine Belohnung als wertvoll (effect = Types.RewardEffect.Valuable) kennzeichnen, um ihr einen anderen Hintergrundrahmen in der Benutzeroberfläche zu geben.

VariableTypBeschreibungStandardErforderlich
iconNummerEine Roblox-Asset-ID für das UI-Icon.N/AJa
displayNameStringEin Name für die Belohnungen zur Verwendung in der UI.Die RewardIdNein
quantityNummerDie Anzahl der zu belohnenden Gegenstände.1Nein
effectRewardEffectDer visuelle Effekt, der in der UI verwendet werden soll. Siehe Benutzeroberfläche anpassen.Types.RewardEffect.DefaultNein

Zeitbelohnungen

Zeit-Belohnungen werden nach einer bestimmten Anzahl von Sekunden im Spiel freigeschaltet. Passen Sie diese Zahlen an Ihre Bedürfnisse an. Sie könnten kleine Zahlen für einfache Tests verwenden, und im veröffentlichten Spiel eine Belohnung nach 10 Minuten, eine weitere nach 30 Minuten, eine weitere nach einer Stunde und so weiter vergeben.

Multiplikation macht Zahlen in Sekunden für Menschen einfacher zu handhaben, daher könnten Sie für zwei Stunden lieber 2 * 60 * 60 angeben, anstatt 7200.

VariableTypBeschreibungStandardErforderlich
requiredSecondsInGameNummerDie Anzahl der Sekunden (eine positive ganze Zahl), die der Spieler im Spiel verbringen muss, um die Belohnung zu verdienen.N/AJa

Tägliche Belohnungen

Täglich-Belohnungen werden nach einer bestimmten Anzahl von aufeinanderfolgenden täglichen Logins freigeschaltet. Zum Beispiel könnten Sie dem Spieler am ersten Tag, an dem er sich einloggt, drei Tränke oder eine Zimtschnecke geben. An den folgenden Tagen könnten Sie wertvollere Verbrauchsgüter belohnen, gefolgt von einem haltbaren Gegenstand, wie einer neuen Angelrute, nach sieben aufeinanderfolgenden Tagen.

VariableTypBeschreibungStandardErforderlich
requiredDaysVisitedStreakNummerDie Anzahl der aufeinanderfolgenden Tage, an denen der Spieler sich mit dem Spiel verbinden muss, um die Belohnung zu verdienen.N/AJa

Zwei zusätzliche Konfigurationsoptionen für tägliche Belohnungen sind in der DailyRewardTabConfig verfügbar.

[Types.RewardType.Daily] = {
tabDisplayName = "Täglich",
tabOrder = 2,
description = "Spielen Sie täglich, um Belohnungen freizuschalten!",
isHiddenOnJoin = true,
isAlignedToStreakResetTime = true,
rewards = {
DailyStreak1 = {
icon = 116913478160966,
displayName = "Eislanze",
requiredDaysVisitedStreak = 1,
},
-- mehr
VariableTypBeschreibungStandardErforderlich
isHiddenOnJoinBooleanWenn wahr, erscheinen Belohnungen nicht automatisch beim Betreten des Spiels. Wenn falsch, erscheinen Belohnungen automatisch beim Betreten des Spiels, wenn der Spieler eine neue tägliche Belohnung zu beanspruchen hat.FalschNein
isAlignedToStreakResetTimeBooleanWenn wahr, können Belohnungen für Tag 2 24 Stunden nach der ursprünglichen beanspruchbaren Zeit von Tag 1 beansprucht werden. Wenn falsch, können die Belohnungen für Tag 2 zur ersten Mitternacht nach der beanspruchbaren Zeit von Tag 1 beansprucht werden. Zum Beispiel, wenn ein Spieler um 23:00 Uhr einloggt und seine Belohnung für Tag 1 beansprucht, bedeutet wahr, dass er die Belohnung für Tag 2 erst am nächsten Tag um 23:00 Uhr beanspruchen kann. Falsch bedeutet, dass er die Belohnung für Tag 2 um 00:00 Uhr, eine Stunde später, beanspruchen kann. Belohnungen für Tag 3 und darüber hinaus sind immer 24 Stunden nach der beanspruchbaren Zeit des vorherigen Tages verfügbar.FalschNein

Benutzeroberfläche anpassen

Im vorherigen Abschnitt haben Sie möglicherweise die Felder tabDisplayName, tabOrder und description bemerkt, die eine grundlegende Anpassung der Benutzeroberfläche ermöglichen. Sie finden auch einige UI-Strings in ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

  • Um einen neuen Belohnungshintergrund mit der Variablen effect anzugeben, fügen Sie einen Rahmen zu ReplicatedStorage.EngagementRewards.Objects.RewardItemFrames hinzu. Fügen Sie dann den Namen des Rahmens zur Tabelle Types.RewardEffect in ReplicatedStorage.EngagementRewards.Configs.Types hinzu.

  • Für umfassendere Anpassungen ändern Sie die Objekte in ReplicatedStorage.EngagementRewards.Objects. Zum Beispiel könnten Sie die BackgroundColor3 des Rahmens RewardsHudButton.Background oder die Color von FooterContentFrame.ClaimableUIGradient ändern.

  • Der Einstiegspunkt für die Benutzeroberfläche ist das Skript ReplicatedStorage.EngagementRewards.Client.UIController, das die erforderlichen Objekte abruft und die UI initialisiert. Wenn Sie Objekte auf oberster Ebene hinzufügen oder umbenennen (im Gegensatz dazu, nur Kinder hinzuzufügen oder Eigenschaften zu ändern), müssen Sie wahrscheinlich den Code in diesem Ordner aktualisieren, um sie zu behandeln.

©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.