Donation illusion
Key RequiredUniversal

Donation illusion

Universal ScriptDetlathescripterDetlathescripter 473 views 588 executesUpdated Apr 27, 2026
Unrated
00
Lua Script•257 lines (16645 chars)
local MarketplaceService = game:GetService("MarketplaceService")
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local RS = game:GetService("RunService")
local Chat = game:GetService("Chat")
local Debris = game:GetService("Debris")

local lp = Players.LocalPlayer
local gName = "DonationIllusionHubV7"

if CoreGui:FindFirstChild(gName) then CoreGui[gName]:Destroy() end
if lp:WaitForChild("PlayerGui"):FindFirstChild(gName) then lp.PlayerGui[gName]:Destroy() end

-- == 1. STYLISH UI ENGINE ==
local function c(cl, p, props)
	local i = Instance.new(cl) if p then i.Parent = p end
	for k, v in pairs(props or {}) do i[k] = v end return i
end

local gui = c("ScreenGui", pcall(function() return CoreGui end) and CoreGui or lp:WaitForChild("PlayerGui"), {Name=gName, ResetOnSpawn=false})

-- == CUSTOM NOTIFICATION SYSTEM ==
local notifTray = c("Frame", gui, {Size=UDim2.new(0, 250, 1, -20), Position=UDim2.new(1, -260, 0, 10), BackgroundTransparency=1})
c("UIListLayout", notifTray, {VerticalAlignment=Enum.VerticalAlignment.Bottom, Padding=UDim.new(0, 8), SortOrder=Enum.SortOrder.LayoutOrder})

local function SendNotif(title, text, color)
	task.spawn(function()
		local n = c("Frame", notifTray, {Size=UDim2.new(1,0,0,60), BackgroundColor3=Color3.fromRGB(20,20,25), BackgroundTransparency=0.1})
		c("UICorner", n, {CornerRadius=UDim.new(0,6)})
		c("UIStroke", n, {Color=color or Color3.fromRGB(0,255,255), Thickness=2})
		c("TextLabel", n, {Size=UDim2.new(1,-20,0,20), Position=UDim2.new(0,10,0,5), BackgroundTransparency=1, Text=title, TextColor3=color or Color3.fromRGB(0,255,255), Font=Enum.Font.GothamBold, TextSize=14, TextXAlignment=Enum.TextXAlignment.Left})
		c("TextLabel", n, {Size=UDim2.new(1,-20,0,30), Position=UDim2.new(0,10,0,25), BackgroundTransparency=1, Text=text, TextColor3=Color3.fromRGB(200,200,200), Font=Enum.Font.Gotham, TextSize=12, TextXAlignment=Enum.TextXAlignment.Left, TextWrapped=true})
		Debris:AddItem(n, 3.5)
	end)
end

-- Main Frame
local frm = c("Frame", gui, {Size=UDim2.new(0,480,0,550), Position=UDim2.new(0.5,-240,0.5,-275), BackgroundColor3=Color3.fromRGB(12,12,16), Active=true, Draggable=true})
c("UICorner", frm, {CornerRadius=UDim.new(0,8)}) 
local stroke = c("UIStroke", frm, {Thickness=2.5})
c("UIGradient", stroke, {Color=ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(0,255,200)), ColorSequenceKeypoint.new(1,Color3.fromRGB(150,50,255))}})

c("TextLabel", frm, {Size=UDim2.new(1,-40,0,40), Position=UDim2.new(0,15,0,0), BackgroundTransparency=1, Text="💎 DONATION ILLUSION V7", TextColor3=Color3.fromRGB(255,255,255), TextXAlignment=Enum.TextXAlignment.Left, Font=Enum.Font.GothamBold, TextSize=18})

local mini = c("TextButton", gui, {Size=UDim2.new(0,60,0,60), Position=UDim2.new(0.5,-30,0.1,0), BackgroundColor3=Color3.fromRGB(15,15,20), TextColor3=Color3.fromRGB(0,255,200), Text="OPEN", Font=Enum.Font.GothamBold, TextSize=14, Active=true, Draggable=true, Visible=false})
c("UICorner", mini, {CornerRadius=UDim.new(0,8)}) c("UIStroke", mini, {Color=Color3.fromRGB(0,255,200), Thickness=2})

local cls = c("TextButton", frm, {Size=UDim2.new(0,30,0,30), Position=UDim2.new(1,-35,0,5), BackgroundColor3=Color3.fromRGB(255,50,50), TextColor3=Color3.fromRGB(255,255,255), Text="-", Font=Enum.Font.GothamBold, TextSize=24})
c("UICorner", cls, {CornerRadius=UDim.new(0,6)})
cls.MouseButton1Click:Connect(function() frm.Visible=false mini.Visible=true end)
mini.MouseButton1Click:Connect(function() mini.Visible=false frm.Visible=true end)

-- Tab System
local tCon = c("Frame", frm, {Size=UDim2.new(1,-30,0,35), Position=UDim2.new(0,15,0,45), BackgroundTransparency=1})
local function mkT(n, x, w) 
	local b = c("TextButton", tCon, {Size=UDim2.new(w,0,1,0), Position=UDim2.new(x,0,0,0), BackgroundColor3=Color3.fromRGB(20,20,25), TextColor3=Color3.fromRGB(150,150,150), Text=n, Font=Enum.Font.GothamBold, TextSize=12})
	c("UICorner", b, {CornerRadius=UDim.new(0,6)}) return b
end

local bS, bM, bE = mkT("Smart Scanner", 0, 0.32), mkT("Hijack & Spam", 0.34, 0.32), mkT("Extra Illusions", 0.68, 0.32)
local pS = c("Frame", frm, {Size=UDim2.new(1,0,1,-80), Position=UDim2.new(0,0,0,80), BackgroundTransparency=1})
local pM = c("Frame", frm, {Size=UDim2.new(1,0,1,-80), Position=UDim2.new(0,0,0,80), BackgroundTransparency=1, Visible=false})
local pE = c("Frame", frm, {Size=UDim2.new(1,0,1,-80), Position=UDim2.new(0,0,0,80), BackgroundTransparency=1, Visible=false})

local function swT(tab, btn)
	pS.Visible=false pM.Visible=false pE.Visible=false
	bS.TextColor3=Color3.fromRGB(150,150,150) bM.TextColor3=Color3.fromRGB(150,150,150) bE.TextColor3=Color3.fromRGB(150,150,150)
	tab.Visible=true btn.TextColor3=Color3.fromRGB(0,255,200)
end
bS.MouseButton1Click:Connect(function() swT(pS, bS) end)
bM.MouseButton1Click:Connect(function() swT(pM, bM) end)
bE.MouseButton1Click:Connect(function() swT(pE, bE) end)
bS.TextColor3 = Color3.fromRGB(0,255,200)

-- == 2. CORE FAKE LOGIC & SFX ==
_G.PlaySFX = true
local function playChaChing()
	if _G.PlaySFX then
		local s = c("Sound", game.Workspace, {SoundId="rbxassetid://130785805", Volume=1, PlayOnRemove=false})
		s:Play() Debris:AddItem(s, 2)
	end
end

local function triggerFake(id, isGamepass, name)
	pcall(function()
		if isGamepass then MarketplaceService:SignalPromptGamePassPurchaseFinished(lp, id, true)
		else MarketplaceService:SignalPromptProductPurchaseFinished(lp.UserId, id, true) end
		playChaChing()
		SendNotif("Illusion Fired", "Successfully faked receipt for: "..(name or id), Color3.fromRGB(0,255,100))
	end)
end

-- == 3. TAB 1: SMART SCANNER ==
local scanBtn = c("TextButton", pS, {Size=UDim2.new(0.9,0,0,40), Position=UDim2.new(0.05,0,0,0), BackgroundColor3=Color3.fromRGB(20,40,40), TextColor3=Color3.fromRGB(0,255,200), Text="🔍 SCAN GUI FOR PRODUCTS", Font=Enum.Font.GothamBold, TextSize=14})
c("UICorner", scanBtn, {CornerRadius=UDim.new(0,6)}) c("UIStroke", scanBtn, {Color=Color3.fromRGB(0,255,200), Thickness=1})

local scroll = c("ScrollingFrame", pS, {Size=UDim2.new(0.9,0,1,-60), Position=UDim2.new(0.05,0,0,50), BackgroundTransparency=1, ScrollBarThickness=4})
local grid = c("UIGridLayout", scroll, {CellSize=UDim2.new(1,0,0,70), CellPadding=UDim2.new(0,0,0,10)})
grid:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.new(0,0,0,grid.AbsoluteContentSize.Y) end)

local function displayProduct(id)
	pcall(function()
		local isGamepass, info = false, nil
		local success, result = pcall(function() return MarketplaceService:GetProductInfo(id, Enum.InfoType.Product) end)
		if success and result then info = result else
			success, result = pcall(function() return MarketplaceService:GetProductInfo(id, Enum.InfoType.GamePass) end)
			if success and result then info = result isGamepass = true end
		end
		if not info then return end
		
		local card = c("Frame", scroll, {BackgroundColor3=Color3.fromRGB(25,25,30)}) c("UICorner", card, {CornerRadius=UDim.new(0,6)})
		local icon = c("ImageLabel", card, {Size=UDim2.new(0,50,0,50), Position=UDim2.new(0,10,0,10), BackgroundTransparency=1})
		icon.Image = (info.IconImageAssetId and info.IconImageAssetId > 0) and "rbxassetid://"..info.IconImageAssetId or "rbxasset://textures/ui/GuiImagePlaceholder.png"
		
		c("TextLabel", card, {Size=UDim2.new(1,-210,0,25), Position=UDim2.new(0,70,0,10), BackgroundTransparency=1, Text=(isGamepass and "[GAMEPASS] " or "[PRODUCT] ")..info.Name, TextColor3=Color3.fromRGB(255,255,255), TextXAlignment=Enum.TextXAlignment.Left, Font=Enum.Font.GothamBold, TextSize=13, TextTruncate=Enum.TextTruncate.AtEnd})
		c("TextLabel", card, {Size=UDim2.new(1,-210,0,20), Position=UDim2.new(0,70,0,35), BackgroundTransparency=1, Text="Price: R$ "..(info.PriceInRobux or "0").." | ID: "..id, TextColor3=Color3.fromRGB(0,255,200), TextXAlignment=Enum.TextXAlignment.Left, Font=Enum.Font.Gotham, TextSize=11})
		
		local copyBtn = c("TextButton", card, {Size=UDim2.new(0,65,0,30), Position=UDim2.new(1,-145,0,20), BackgroundColor3=Color3.fromRGB(40,40,50), TextColor3=Color3.fromRGB(200,200,200), Text="COPY ID", Font=Enum.Font.GothamBold, TextSize=11}) c("UICorner", copyBtn, {CornerRadius=UDim.new(0,6)})
		copyBtn.MouseButton1Click:Connect(function()
			pcall(function()
				if setclipboard then setclipboard(tostring(id)) elseif toclipboard then toclipboard(tostring(id)) end
				SendNotif("ID Copied", "Copied to clipboard: "..id, Color3.fromRGB(150,50,255))
				copyBtn.Text = "COPIED!" task.wait(1) copyBtn.Text = "COPY ID"
			end)
		end)
		
		local fakeBtn = c("TextButton", card, {Size=UDim2.new(0,65,0,30), Position=UDim2.new(1,-75,0,20), BackgroundColor3=Color3.fromRGB(100,30,150), TextColor3=Color3.fromRGB(255,255,255), Text="FAKE BUY", Font=Enum.Font.GothamBold, TextSize=11}) c("UICorner", fakeBtn, {CornerRadius=UDim.new(0,6)})
		fakeBtn.MouseButton1Click:Connect(function() fakeBtn.Text = "SENT!" triggerFake(id, isGamepass, info.Name) task.wait(1) fakeBtn.Text = "FAKE BUY" end)
	end)
end

scanBtn.MouseButton1Click:Connect(function()
	scanBtn.Text = "SCANNING..."
	SendNotif("Scanner Started", "Deep scanning game GUI for IDs...", Color3.fromRGB(0,255,200))
	for _, child in pairs(scroll:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end
	local foundIds = {}
	for _, v in pairs(lp.PlayerGui:GetDescendants()) do
		if v:IsA("IntValue") or v:IsA("NumberValue") then
			local val = tonumber(v.Value)
			if val and val > 1000000 and not foundIds[val] then foundIds[val] = true task.spawn(function() displayProduct(val) end) end
		end
		local attrs = v:GetAttributes()
		for key, val in pairs(attrs) do
			if type(val) == "number" and val > 1000000 and string.find(string.lower(key), "product") and not foundIds[val] then
				foundIds[val] = true task.spawn(function() displayProduct(val) end)
			end
		end
	end
	task.wait(1.5) scanBtn.Text = "🔍 SCAN GUI FOR PRODUCTS"
end)

-- == 4. TAB 2: HIJACK & AUTO-SPAM ==
local mGrid = c("Frame", pM, {Size=UDim2.new(0.9,0,1,-20), Position=UDim2.new(0.05,0,0,0), BackgroundTransparency=1})
c("UIListLayout", mGrid, {Padding=UDim.new(0,15)})

_G.InterceptPrompts = false
local interceptBtn = c("TextButton", mGrid, {Size=UDim2.new(1,0,0,50), BackgroundColor3=Color3.fromRGB(40,20,20), TextColor3=Color3.fromRGB(255,100,100), Text="❌ PROMPT INTERCEPTOR: OFF", Font=Enum.Font.GothamBold, TextSize=14}) c("UICorner", interceptBtn, {CornerRadius=UDim.new(0,6)})
c("TextLabel", interceptBtn, {Size=UDim2.new(1,0,0,15), Position=UDim2.new(0,0,1,5), BackgroundTransparency=1, Text="When ON: Clicking a real buy button fakes it instantly.", TextColor3=Color3.fromRGB(150,150,150), Font=Enum.Font.Gotham, TextSize=11})

interceptBtn.MouseButton1Click:Connect(function()
	_G.InterceptPrompts = not _G.InterceptPrompts
	interceptBtn.BackgroundColor3 = _G.InterceptPrompts and Color3.fromRGB(20,60,40) or Color3.fromRGB(40,20,20)
	interceptBtn.TextColor3 = _G.InterceptPrompts and Color3.fromRGB(0,255,150) or Color3.fromRGB(255,100,100)
	interceptBtn.Text = _G.InterceptPrompts and "✅ PROMPT INTERCEPTOR: ON" or "❌ PROMPT INTERCEPTOR: OFF"
	SendNotif("Interceptor", _G.InterceptPrompts and "Activated. All real prompts will be faked." or "Deactivated.", _G.InterceptPrompts and Color3.fromRGB(0,255,150) or Color3.fromRGB(255,100,100))
end)

local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", function(self, ...)
	local method = getnamecallmethod()
	local args = {...}
	if _G.InterceptPrompts and self == MarketplaceService then
		if method == "PromptProductPurchase" then
			local id = args[2] task.spawn(function() triggerFake(id, false, "Intercepted Product") end) return
		elseif method == "PromptGamePassPurchase" then
			local id = args[2] task.spawn(function() triggerFake(id, true, "Intercepted Gamepass") end) return
		end
	end
	return oldNamecall(self, ...)
end)

local spamFrame = c("Frame", mGrid, {Size=UDim2.new(1,0,0,130), BackgroundColor3=Color3.fromRGB(20,20,25)}) c("UICorner", spamFrame, {CornerRadius=UDim.new(0,6)})
c("TextLabel", spamFrame, {Size=UDim2.new(1,-20,0,20), Position=UDim2.new(0,10,0,10), BackgroundTransparency=1, Text="0.1s Auto-Spammer", TextColor3=Color3.fromRGB(255,255,255), Font=Enum.Font.GothamBold, TextSize=13, TextXAlignment=Enum.TextXAlignment.Left})

local spamBox = c("TextBox", spamFrame, {Size=UDim2.new(0.65,0,0,30), Position=UDim2.new(0.025,0,0,35), BackgroundColor3=Color3.fromRGB(12,12,16), TextColor3=Color3.fromRGB(255,255,255), PlaceholderText="Target ID...", Font=Enum.Font.Gotham, TextSize=13}) c("UICorner", spamBox, {CornerRadius=UDim.new(0,6)})
local pasteBtn = c("TextButton", spamFrame, {Size=UDim2.new(0.25,0,0,30), Position=UDim2.new(0.725,0,0,35), BackgroundColor3=Color3.fromRGB(40,40,50), TextColor3=Color3.fromRGB(0,255,200), Text="📋 PASTE", Font=Enum.Font.GothamBold, TextSize=12}) c("UICorner", pasteBtn, {CornerRadius=UDim.new(0,6)})

pasteBtn.MouseButton1Click:Connect(function()
	pcall(function()
		local cb = (getclipboard and getclipboard()) or ""
		if tonumber(cb) then 
			spamBox.Text = cb 
			SendNotif("Clipboard Read", "Pasted ID: "..cb, Color3.fromRGB(0,255,200))
		else 
			SendNotif("Clipboard Error", "No valid ID found in clipboard.", Color3.fromRGB(255,100,100))
		end
	end)
end)

local isSpamming, spamLoopConn = false, nil
local spamBtn = c("TextButton", spamFrame, {Size=UDim2.new(0.95,0,0,40), Position=UDim2.new(0.025,0,0,75), BackgroundColor3=Color3.fromRGB(150,0,0), TextColor3=Color3.fromRGB(255,255,255), Text="🔥 START 0.1s SPAM LOOP", Font=Enum.Font.GothamBold, TextSize=14}) c("UICorner", spamBtn, {CornerRadius=UDim.new(0,6)})

spamBtn.MouseButton1Click:Connect(function()
	local targetId = tonumber(spamBox.Text)
	if not targetId then SendNotif("Spammer Error", "Please enter a valid numeric ID first.", Color3.fromRGB(255,100,100)) return end
	
	isSpamming = not isSpamming
	if isSpamming then
		spamBtn.Text = "🛑 STOP SPAMMING" spamBtn.BackgroundColor3 = Color3.fromRGB(0,0,0)
		SendNotif("Spammer Started", "Firing receipts at 10x per second.", Color3.fromRGB(255,100,100))
		spamLoopConn = RS.Heartbeat:Connect(function()
			task.wait(0.1)
			pcall(function()
				MarketplaceService:SignalPromptProductPurchaseFinished(lp.UserId, targetId, true)
				MarketplaceService:SignalPromptGamePassPurchaseFinished(lp, targetId, true)
				playChaChing()
			end)
		end)
	else
		spamBtn.Text = "🔥 START 0.1s SPAM LOOP" spamBtn.BackgroundColor3 = Color3.fromRGB(150,0,0)
		SendNotif("Spammer Stopped", "Loop terminated cleanly.", Color3.fromRGB(0,255,200))
		if spamLoopConn then spamLoopConn:Disconnect() end
	end
end)

-- == 5. TAB 3: EXTRA ILLUSIONS ==
local eGrid = c("Frame", pE, {Size=UDim2.new(0.9,0,1,-20), Position=UDim2.new(0.05,0,0,0), BackgroundTransparency=1})
c("UIListLayout", eGrid, {Padding=UDim.new(0,15)})

local sfxBtn = c("TextButton", eGrid, {Size=UDim2.new(1,0,0,45), BackgroundColor3=Color3.fromRGB(20,60,40), TextColor3=Color3.fromRGB(0,255,150), Text="🔊 PURCHASE SFX: ON", Font=Enum.Font.GothamBold, TextSize=14}) c("UICorner", sfxBtn, {CornerRadius=UDim.new(0,6)})
sfxBtn.MouseButton1Click:Connect(function()
	_G.PlaySFX = not _G.PlaySFX
	sfxBtn.BackgroundColor3 = _G.PlaySFX and Color3.fromRGB(20,60,40) or Color3.fromRGB(40,20,20)
	sfxBtn.TextColor3 = _G.PlaySFX and Color3.fromRGB(0,255,150) or Color3.fromRGB(255,100,100)
	sfxBtn.Text = _G.PlaySFX and "🔊 PURCHASE SFX: ON" or "🔊 PURCHASE SFX: OFF"
end)

local bubbleBtn = c("TextButton", eGrid, {Size=UDim2.new(1,0,0,45), BackgroundColor3=Color3.fromRGB(30,30,50), TextColor3=Color3.fromRGB(0,255,200), Text="💬 FAKE CHAT BUBBLE (1,000,000 R$)", Font=Enum.Font.GothamBold, TextSize=13}) c("UICorner", bubbleBtn, {CornerRadius=UDim.new(0,6)})
bubbleBtn.MouseButton1Click:Connect(function()
	pcall(function()
		if lp.Character and lp.Character:FindFirstChild("Head") then
			Chat:Chat(lp.Character.Head, "I just donated 1,000,000 Robux!!!", Enum.ChatColor.Green)
			SendNotif("Illusion Fired", "Forced local chat bubble.", Color3.fromRGB(0,255,200))
		end
	end)
end)

local statBtn = c("TextButton", eGrid, {Size=UDim2.new(1,0,0,45), BackgroundColor3=Color3.fromRGB(50,30,70), TextColor3=Color3.fromRGB(150,100,255), Text="💰 FAKE LOCAL LEADERSTATS (99M)", Font=Enum.Font.GothamBold, TextSize=13}) c("UICorner", statBtn, {CornerRadius=UDim.new(0,6)})
statBtn.MouseButton1Click:Connect(function()
	local ls = lp:FindFirstChild("leaderstats")
	if ls then
		for _, stat in pairs(ls:GetChildren()) do
			if stat:IsA("IntValue") or stat:IsA("NumberValue") then stat.Value = 99999999 end
		end
		SendNotif("Leaderstats Spoofed", "Your UI now shows 99,999,999.", Color3.fromRGB(150,100,255))
	end
end)

Features & Information

Can let you buy anything (might not work for some games)

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts