--[[ Script by MegaXk 👨‍💻 Corrected version (⚠️Warning: this script may not always work, it has a chance of not working and it doesn't give you Gamepass. This script may work on poorly made games) ]] local player = game.Players.LocalPlayer local marketplace = game:GetService("MarketplaceService") local http = game:GetService("HttpService") local replicatedStorage = game:GetService("ReplicatedStorage") local function showRobloxNotification(title, text, duration) game:GetService("StarterGui"):SetCore("SendNotification", { Title = title, Text = text, Duration = duration or 4 }) end local function getGameName() local success, info = pcall(function() return marketplace:GetProductInfo(game.PlaceId) end) return success and info.Name or "Unknown Game" end local function getGamepassIds() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/game-passes?limit=100" local success, response = pcall(function() return http:GetAsync(url) end) if not success then return {} end local data = http:JSONDecode(response) local ids = {} for _, v in pairs(data.data or {}) do table.insert(ids, v.id) end return ids end local function getProductIds() local url = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/developer-products?limit=100" local success, response = pcall(function() return http:GetAsync(url) end) if not success then return {} end local data = http:JSONDecode(response) local ids = {} for _, v in pairs(data.data or {}) do table.insert(ids, v.id) end return ids end local function bypassUserOwns() local mt = getrawmetatable(game) if not mt then return end local oldNamecall = mt.__namecall setreadonly(mt, false) mt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() if self == marketplace and method == "UserOwnsGamePassAsync" then return true end return oldNamecall(self, ...) end) setreadonly(mt, true) end local function triggerGamepassRewards(ids) local promptEvent = replicatedStorage:FindFirstChild("PromptGamepassPurchaseFinished") if not promptEvent then return end for _, id in pairs(ids) do pcall(function() promptEvent:FireServer(player.UserId, id) end) end end local function triggerProductRewards(ids) for _, id in pairs(ids) do pcall(function() marketplace:SignalPromptProductPurchaseFinished(player.UserId, id, true) end) end end local function disablePromptHook() if not marketplace.PromptProductPurchaseFinished then return end local oldConnect oldConnect = hookfunction(marketplace.PromptProductPurchaseFinished.Connect, function(self, func) if self == marketplace.PromptProductPurchaseFinished then return end return oldConnect(self, func) end) end -- Execução principal local gameName = getGameName() local passIds = getGamepassIds() local productIds = getProductIds() bypassUserOwns() disablePromptHook() triggerGamepassRewards(passIds) triggerProductRewards(productIds) showRobloxNotification("Name Game: " .. gameName, "Your game is probably eligible for the code to work 💠", 4) warn("[SYSTEM] Script executed. Simulated rewards successfully applied.")