Zusätzlich zu den häufigen Werbemethoden zur Erweiterung deiner Spielerbasis kannst du Einladungsaufforderungen direkt in deinem Spiel implementieren, um die Spieler zu ermutigen, ihre Freunde einzuladen und das gemeinsame Gameplay zu erhöhen.
Das Einladungsaufforderungssystem bietet Folgendes:
- Dynamische Einzuladende — Fordere die Spieler auf, mehrere Freunde aus einer Auswahlliste einzuladen oder einen bestimmten Freund einzuladen.
- Startdaten — Füge optionale Startdaten hinzu, die über Player:GetJoinData() gelesen werden können, wenn der eingeladene Freund beitritt. Beispielanwendungen umfassen das Leiten eingeladener Freunde zu einem Koordinatenstandort oder das Personalisieren des beigetretenen Spiels für den Eingeladenen.
- Anpassbarer Text — Passe die Einladungsaufforderung und die Benachrichtigungs nachricht an. Zum Beispiel könnte eine Einladungsaufforderung für den Spieler "Bitte lade deine Freunde ein, sich dem Abenteuer anzuschließen!" lauten, und die Benachrichtungsnachricht für den eingeladenen Freund(e) könnte lauten "{displayName} möchte, dass du dich ihrem Abenteuer in {experienceName} anschließt!".
Du kannst auch Einladende und Eingeladene mit dem Freund Einladungsbelohnungssystem nachverfolgen und belohnen.

Einladungsoptionen festlegen
Standardmäßig zeigt eine Einladungsaufforderung für den Spieler ein Menü mit seinen Freunden mit Einladen-Schaltflächen an. Um die Aufforderungsnachricht anzupassen, einen bestimmten Freund auszuwählen oder Startdaten in die Einladung einzufügen, musst du ein ExperienceInviteOptions-Objekt mit den gewünschten Eigenschaften einrichten.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
| PromptMessage | string | Benutzerdefinierter Text, der auf der Einladungsaufforderung für den sendenden Spieler angezeigt wird. Zum Beispiel "Bitte lade deine Freunde ein, sich dem Abenteuer anzuschließen!" für eine Einladungsaufforderung mit mehreren Freunden oder "Lade diesen Freund ein, sich dem Abenteuer anzuschließen!" für eine spezifische Freundeseinladung. Beachte, dass, falls deine benutzerdefinierte Einladungsaufforderungsnachricht lang genug ist, um die Grenzen der UI zu überschreiten, sie nicht angezeigt wird. |
| InviteUser | number | Roblox UserId des spezifischen Freundes, den du einladen möchtest. Wenn dies nicht angegeben ist, wird der Spieler aufgefordert, aus einer Liste von Freunden auszuwählen. |
| InviteMessageId | string | Asset-ID, die einem Benachrichtigungs-Assettyp zuordnet. Dieses Asset wird verwendet, um einen benutzerdefinierten Text für die Einladung zu speichern/lokalisieren, den Freunde erhalten. Siehe Benachrichtigungsoptionen festlegen für weitere Details. |
| LaunchData | string | Wird verwendet, um einen Parameter in Player:GetJoinData() festzulegen, wenn ein Freund über die Einladung geht. Maximal 200 Zeichen. Siehe Startdaten einfügen für ein Anwendungsbeispiel. |
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Einladungsoptionen mit benutzerdefinierter Aufforderungsnachricht erstellen
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Bitte lade deine Freunde ein, sich dem Abenteuer anzuschließen!"Benachrichtigungsoptionen festlegen
Standardmäßig enthält die Einladungsbenachrichtigung, die Freunde erhalten, den DisplayName, den Benutzername und den Spielnamen des Senders. Um die Nachricht anzupassen, kannst du ein Benachrichtigungs-Asset im Creator Dashboard erstellen und dessen Asset-ID als Parameter von ExperienceInviteOptions einfügen.
Navigiere zum Creator Dashboard.
Ähnlich wie bei Abzeichen sind Benachrichtigungsstrings an ein bestimmtes Spiel gebunden. Finde das Thumbnail dieses Spiels und klicke darauf.
Klicke in der linken Spalte unter Engagement auf Benachrichtigungen.
Klicke im mittleren Bereich auf die Schaltfläche Erstelle einen Benachrichtigungsstring.
Fülle einen Identifikationsnamen (nur für dich sichtbar) und den benutzerdefinierten Benachrichtigungstext aus. Beachte, dass du {experienceName} als Platzhalter einfügen musst, um den Namen des Spiels für eingeladene Freunde zu kennzeichnen, und du kannst optional den DisplayName des Senders über den Platzhalter {displayName} einfügen.
Beispiel-Benachrichtigungsstrings:
- {displayName} möchte, dass du dich ihrem Abenteuer in {experienceName} anschließt!
- {displayName} hat gerade die sechste Stufe von {experienceName} gemeistert. Kannst du das auch?
Wenn du bereit bist, klicke auf die Schaltfläche Benachrichtigungsstring erstellen.
Klicke auf der Seite der Benachrichtigungen in der Tabelle der Benachrichtigungen auf die Schaltfläche ⋯ in der Aktionen-Spalte und wähle Asset-ID kopieren.
Füge in dem ExperienceInviteOptions-Objekt für die Einladungsaufforderung die Asset-ID als Wert der InviteMessageId-Eigenschaft ein.
LocalScript - Mehrere Freunde Einladenlocal SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Einladungsoptionen mit der Benutzer-ID des Freundes erstellenlocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"
Einladung auslösen
Um eine Einladung auszulösen, solltest du zunächst feststellen, ob der Spieler einladen kann, da die Fähigkeit je nach Plattform oder Spieler variieren kann. Nachdem dies bestätigt wurde, kannst du die Einladungsaufforderung dem Spieler anzeigen.
- Rufe SocialService:CanSendGameInviteAsync() auf, um die Fähigkeit zu überprüfen, verpackt in pcall(), da dies ein asynchroner Netzwerkanruf ist, der gelegentlich fehlschlagen kann.
- Wenn die Einladungsfähigkeit bestätigt wird, rufe SocialService:PromptGameInvite() mit dem optionalen Einladungsoptionsobjekt als zweiten Parameter auf.
Sobald die Einladung angezeigt wird, sieht der Spieler eine Aufforderung auf dem Bildschirm, mehrere Freunde oder den spezifischen Freund einzuladen, der in dem Einladungsoptionsobjekt definiert ist. Wenn der Spieler dann auf die Einladen-Schaltfläche für einen oder mehrere Freunde klickt, erhalten diese Freunde eine Benachrichtigung mit dem DisplayName, dem Benutzernamen und dem Erfahrungsnamen des Senders. Benachrichtigungen können weiter angepasst werden, wie in Benachrichtigungsoptionen festlegen beschrieben.
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funktion, um zu prüfen, ob der Spieler eine Einladung senden kann
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
endStartdaten einfügen
Um die Zusammenarbeit im Spiel weiter zu verbessern oder Spieler einzuladen, kannst du Startdaten in einer Einladungsaufforderung einfügen, die nützlich sind für Szenarien wie das Leiten eingeladener Freunde zu einem Koordinatenstandort oder das Personalisieren des beigetretenen Spiels für den Eingeladenen.
Wenn du eine Einladung auslöst, füge ein ExperienceInviteOptions-Objekt mit relevanten Daten ein, das verwendet wird, wenn der Freund dem Spiel beitritt. Das können beispielsweise die Player.UserId des Senders, die ID eines Abzeichens, das dem Freund beim Beitritt verliehen werden soll, oder ein Koordinatenstandort sein, an dem der Freund erscheinen soll. Wenn du mehrere Daten zusammenstellen musst, kodierst du die Daten mit JSONEncode().
LocalScript - Mehrere Freunde Einladenlocal HttpService = game:GetService("HttpService")local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal data = {senderUserID = player.UserId,spawnLocation = {12, 48, 205.5}}local launchData = HttpService:JSONEncode(data)-- Einladungsoptionen mit Startdaten erstellenlocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.LaunchData = launchData-- Funktion, um zu prüfen, ob der Spieler eine Einladung senden kannlocal function canSendGameInvite(sendingPlayer)local success, canSend = pcall(function()return SocialService:CanSendGameInviteAsync(sendingPlayer)end)return success and canSendendlocal canInvite = canSendGameInvite(player)if canInvite thenSocialService:PromptGameInvite(player, inviteOptions)endFür eingehende Freunde, die über die Benachrichtigung beitreten, überprüfe die Startdaten auf der Serverseite über Player:GetJoinData(). Wenn du mehrere Daten in JSON für die Einladungsaufforderung kodierst, denke daran, es mit JSONDecode() zu dekodieren.
Script - Verwendung von Einladungsstartdatenlocal HttpService = game:GetService("HttpService")local Players = game:GetService("Players")local ATTEMPT_LIMIT = 10local RETRY_DELAY = 1local function onPlayerAdded(player)local launchDatafor _ = 1, ATTEMPT_LIMIT dotask.wait(RETRY_DELAY)local joinData = player:GetJoinData()if joinData.LaunchData ~= "" thenlaunchData = joinData.LaunchDatabreakendendif launchData thenlocal data = HttpService:JSONDecode(launchData)print(data.senderUserID)print(data.spawnLocation)elsewarn("Keine Startdaten empfangen!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)Wenn die Startdaten vorhanden sind, kannst du sie für eine Vielzahl von Szenarien verwenden, darunter:
- Den eingehenden Freund zu Beginn eines herausfordernden Hinderniskurses spawnen, den der Sender gerade abgeschlossen hat, basierend auf einem Koordinatenstandort, der über die Startdaten übergeben wird.
- Überprüfen, ob der Sender an dem Ort ist, basierend auf ihrer Player.UserId in den Startdaten, und die Figur des Freundes in die Nähe ihrer Figur teleportieren.