It seems so simple im not sure whats going wrong here, no errors or anything.
local id = 103728213
local tool = game.ServerStorage.Guns.Gamepass["MP40"]
game.Players.PlayerAdded:connect(function(player)
if game:GetService("GamePassService"):PlayerHasPass(player, id) then
tool:clone().Parent = player.Backpack
tool:clone().Parent = player.StarterGear
else
end
end)

5 comments
Stop using PlayerHasPass, use UserOwnsGamePassAsync
Use; game:GetService("MarketPlaceService"):UserOwnsGamePassAsync()
Yeah even with those changes its still not working
You want a instant change?
if is how i do think, then see this, i think this can help you; https://www.robloxdev.com/articles/Game-Passes-One-Time-Purchases