While making a game, I tried making a gamepass that would allow players to chat in the multiplayer version of the game, and for some strange reason; it doesn't end up as 'false' when the player doesn't have the gamepass, which begs the question: Why isn't this working?
Heres the code:
local ServerScriptService = game:GetService("ServerScriptService") local ChatService = require(ServerScriptService:WaitForChild("ChatServiceRunner"):WaitForChild("ChatService")) local Channel = ChatService:GetChannel("All") local MarketplaceService = game:GetService("MarketplaceService") game.Players.PlayerAdded:Connect(function(plr) if MarketplaceService:UserOwnsGamePassAsync(plr.UserId, 14986576) then print("Allowed player " .. plr.Name .. " to chat.") else Channel:MuteSpeaker(plr.Name, "You are not permitted to chat, Boss's orders.", 0) script:FindFirstChild("Placeholder"):Clone().Parent = plr.PlayerGui end end)
Here is the game incase you want to see the multiplayer mode. A gui should appear, notifying the player that they do not have the gamepass, and should mute the player's speaker.