Gamepass set up

Hi devs! I’ve tried so far to set up my gamepass but it does not work. I’ve searched many tutorials and this is a script I’ve edited:

local localplayer = game.Players.LocalPlayer
local OwnsForcePowerPack = game:GetService("MarketplaceService"):UserOwnsGamePassAsync(localplayer.UserId,18850227)

if OwnsForcePowerPack then
	game.ServerStorage["Force Lightning"]:Clone().Parent = localplayer.Backpack
	game.ServerStorage["Force Crush"]:Clone().Parent = localplayer.Backpack
	game.ServerStorage["Force Grip"]:Clone().Parent = localplayer.Backpack
	game.ServerStorage["Force Push"]:Clone().Parent = localplayer.Backpack
	game.ServerStorage["Force Repulse"]:Clone().Parent = localplayer.Backpack
	game.ServerStorage["Force Speed"]:Clone().Parent = localplayer.Backpack
end

And the output error is:

ServerScriptService.ItemGiver:59: attempt to index nil with 'UserId'

Thanks.

1 Like

This appears to be a server script. Server scripts cannot access the local player so you need to use the PlayerAdded event that is part of game.Players. Here’s how to implement it

game.Players.PlayerAdded:Connect(function(localplayer)
    local OwnsForcePowerPack = game:GetService("MarketplaceService"):UserOwnsGamePassAsync(localplayer.UserId,18850227)
    if OwnsForcePowerPack then
    	game.ServerStorage["Force Lightning"]:Clone().Parent = localplayer.Backpack
     	game.ServerStorage["Force Crush"]:Clone().Parent = localplayer.Backpack
	    game.ServerStorage["Force Grip"]:Clone().Parent = localplayer.Backpack
	    game.ServerStorage["Force Push"]:Clone().Parent = localplayer.Backpack
	    game.ServerStorage["Force Repulse"]:Clone().Parent = localplayer.Backpack
	    game.ServerStorage["Force Speed"]:Clone().Parent = localplayer.Backpack
    end
end)
1 Like

With this script there are not errors in the output but it still does not work for me. (I have the gamepass)