DonateUI
Grab DonateUI[OLD] for free here: https://www.roblox.com/library/5233746733/DonateUI
Get the new DonateUI:
https://www.roblox.com/library/5248928522/DonateUI
Test it here: https://www.roblox.com/games/5233781585/DonateUI-demonstration
DonateUI was made with simplicity in mind, no clutter, everything at ease. DonateUI has features such as:
Gamepass DonorUI only
Remove Heads or hats
Add faces
Add Head
Add hats (coming soon)
and amazing animations!
Example
I can’t wait to get your feedback on my new model and I hope you all enjoy using it as much as I did making it!
Join my Discord here: Systematised Discord
Join Systematised group: https://www.roblox.com/groups/6800710/Systematised#!/about
Source Code
LocalScripts
Open
script.Parent.MouseButton1Click:Connect(function()
script.Parent.Parent.Parent.Parent.MainFrame:TweenPosition(UDim2.new(0.005, 12, 0.612, -271), "Out", "Sine", 1)
script.Parent.Text = ""
script.Parent.Parent.Title.Text = ""
script.Parent.Default_Roundify_11px:TweenSize(UDim2.new(0, 0, 2.441, 0), "Out", "Sine", 0.25)
wait(0.2)
script.Parent.Parent.Parent:TweenSize(UDim2.new(0, 134, 0, 0), "Out", "Sine", 0.25)
end)
Donate
local gamepass = 10409566
local Button = script.Parent
local player = game.Players.LocalPlayer
Button.MouseButton1Click:Connect(function()
game:GetService("MarketplaceService"):PromptGamePassPurchase(player, gamepass)
end)
RemoveHead
-- // Services \\
local RepStorage = game:GetService("ReplicatedStorage")
-- // Variables \\
local RemoveHead = RepStorage:WaitForChild("RemoveHead")
-- // Functions \\
script.Parent.MouseButton1Click:Connect(function()
RemoveHead:InvokeServer()
end)
function Process(enter)
if enter then
RemoveHead:InvokeServer()
end
end
AddFace
-- // Services \\
local RepStorage = game:GetService("ReplicatedStorage")
-- // Variables \\
local ApplyFace = RepStorage:WaitForChild("ApplyFace")
local textBox = script.Parent
-- // Functions \\
script.Parent.Parent.faceApply.MouseButton1Click:Connect(function()
ApplyFace:InvokeServer(textBox.Text)
end)
function Process(enter)
if enter then
ApplyFace:InvokeServer(textBox.Text)
end
end
-- // Events \\
textBox.FocusLost:Connect(Process)
AddHead
-- // Services \\
local RepStorage = game:GetService("ReplicatedStorage")
-- // Variables \\
local AddHead = RepStorage:WaitForChild("AddHead")
-- // Functions \\
script.Parent.MouseButton1Click:Connect(function()
AddHead:InvokeServer()
end)
function Process(enter)
if enter then
AddHead:InvokeServer()
end
end
Donate
local open = false
script.Parent.MouseButton1Click:Connect(function()
if open == false then
open = false
script.Parent.TextSize = 20
script.Parent.Text = "CLOSE"
script.Parent.Parent.SecondMenu:TweenSize(UDim2.new(0.961, 0, -0.346, 230), "Out", "Quint", 0.2)
script.Parent.Parent.SecondMenu.TextLabel.Visible = true
wait(0.25)
script.Parent.Parent.SecondMenu.Prompt.TextTransparency = 0
script.Parent.Parent.SecondMenu.Prompt:TweenSize(UDim2.new(0, 142, 0, 30), "Out", "Quint", 0.25)
open = true
else
open = true
script.Parent.TextSize = 15
script.Parent.Text = "SUPPORT DONATEUI"
script.Parent.Parent.SecondMenu.Prompt.TextTransparency = 1
script.Parent.Parent.SecondMenu.Prompt:TweenSize(UDim2.new(0, 0, 0, 0), "Out", "Quint", 0.25)
wait(0.25)
script.Parent.Parent.SecondMenu.TextLabel.Visible = false
script.Parent.Parent.SecondMenu:TweenSize(UDim2.new(0.961, 0, 0, 0), "Out", "Quint", 0.2)
open = false
end
end)
Close
script.Parent.MouseButton1Click:Connect(function()
script.Parent.Parent.Parent:TweenPosition(UDim2.new(-0.3, 12, 0.612, -271), "Out", "Sine", 1)
wait(0.3)
script.Parent.Parent.Parent.Parent.OpenFrame:TweenSize(UDim2.new(0, 134, 0, 70), "Out", "Sine", 0.25)
script.Parent.Parent.Parent.Parent.OpenFrame.Content.Title.Text = "DONATEUI"
wait(0.2)
script.Parent.Parent.Parent.Parent.OpenFrame.Content.Open.Default_Roundify_11px:TweenSize(UDim2.new(1, 0, 2.441, 0), "Out", "Sine", 0.25)
wait(0.1)
script.Parent.Parent.Parent.Parent.OpenFrame.Content.Open.Text = "OPEN"
end)
Scripts
Secondary
local Client = game.ReplicatedStorage.DonateClient
local messagedone = false
function respawned(char)
wait()
local player = game.Players:FindFirstChild(char.Name)
if char:FindFirstChild("Head") ~= nil then
if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, 10409566) then -- DonateUI supporters
Client.MainFrame.Content.Title.Text = "DONATEUI SUPPORTER"
Client.MainFrame.Content.Title.Position = UDim2.new(0, 32, 0, 15)
Client.MainFrame.Content.Title.Size = UDim2.new(1, -60, 0, 10)
Client.MainFrame.Content.SecondMenu.Visible = false
Client.MainFrame.Content.Donate.Visible = false
Client.MainFrame.Content.Close.Position = UDim2.new(0.328, 5, 1.021, -30)
if messagedone == false then
script.Message:Clone().Parent = player.PlayerGui
wait(2)
player.PlayerGui.Message.Message:TweenSize(UDim2.new(0, 265, 0, 300), "Out", "Quart", 0.3)
wait(0.3)
player.PlayerGui.Message.Message.Content.Text:TweenSize(UDim2.new(0.958, 0, 0, 230), "Out", "Quart", 0.4)
player.PlayerGui.Message.Message.Content.Text.TextLabel.Visible = true
player.PlayerGui.Message.Message.Content.Title.Visible = true
player.PlayerGui.Message.Message.Content.Close:TweenSize(UDim2.new(0.34, -10, -0.043, 25), "Out", "Quart", 0.4)
player.PlayerGui.Message.Message.Content.Close.TextTransparency = 0
messagedone = true
end
end
end
end
game.Workspace.ChildAdded:connect(respawned)
Loader
local gamepassId = 0000000 -- Donator Gamepass ID
local donateuiperks = true -- Donator perks for DonateUI supporters (thank you <3 if you keep true)
local Client = game.ReplicatedStorage.DonateClient
if donateuiperks == true then
script.Secondary.Disabled = false
end
function respawned(char)
wait()
local player = game.Players:FindFirstChild(char.Name)
if char:FindFirstChild("Head") ~= nil then
if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, gamepassId) then
if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, 10409566) then
wait()
else
Client:Clone().Parent = player.PlayerGui
end
end
end
end
game.Workspace.ChildAdded:connect(respawned)
DonateHandler
-- Services --
local InsertService = game:GetService("InsertService")
local RepStorage = game:GetService("ReplicatedStorage")
-- Variables --
local ApplyFace = RepStorage:WaitForChild("ApplyFace")
local RemoveHead = RepStorage:WaitForChild("RemoveHead")
local AddHead = RepStorage:WaitForChild("AddHead")
-- Functions --
function ApplyFace_Event(player, id)
local asset = InsertService:LoadAsset(tonumber(id))
local faceid = asset:WaitForChild("face").Texture
if player.Character then
player.Character.Head.face.Texture = faceid
return "Applied"
end
asset:Destroy()
return "Could not apply face"
end
function RemoveHead_Event(player, id)
if player.Character then
player.Character.Head.Transparency = 1
player.Character.Head.face.Transparency = 1
return "Applied"
end
return "Could not remove head"
end
function AddHead_Event(player, id)
if player.Character then
player.Character.Head.Transparency = 0
player.Character.Head.face.Transparency = 0
return "Applied"
end
return "Could not add head"
end
-- Callbacks --
ApplyFace.OnServerInvoke = ApplyFace_Event
RemoveHead.OnServerInvoke = RemoveHead_Event
AddHead.OnServerInvoke = AddHead_Event
Credit to @Rare_tendo for ApplyFace