
KeylessUniversal

--[[
Vadrifts notification system v2 (dsc.gg/vadriftz)
Example usage:
Notification w/out a button:
local NotificationSystem = loadstring(game:HttpGet("https://raw.githubusercontent.com/vqmpjayZ/utils/refs/heads/main/Notification-SystemV2.lua"))() <-- boot up the notification system
NotificationSystem:Notify("Title", "This is a notification.", 5) <-- "Title" is the title of the notification; "This is a notification message." <-- is the notifications text; 5 <-- length of the notification
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Notification w/ a button:
local NotificationSystem = loadstring(game:HttpGet("https://raw.githubusercontent.com/vqmpjayZ/utils/refs/heads/main/Notification-SystemV2.lua"))()
NotificationSystem:Notify("Title", "This is a notification with a button.", 10, "Click me", function() <-- "Click me" is the button and its text
print("Button was clicked!") <-- the script that gets executed when the button is clicked
end)
--]]
local NotificationSystem = {}
local TweenService = game:GetService("TweenService")
local CoreGui = game:GetService("CoreGui")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NotificationSystem"
ScreenGui.Parent = CoreGui
local NotificationFrame = Instance.new("Frame")
NotificationFrame.Name = "NotificationFrame"
NotificationFrame.Size = UDim2.new(0, 300, 1, 0)
NotificationFrame.Position = UDim2.new(1, -300, 0, 0)
NotificationFrame.BackgroundTransparency = 1
NotificationFrame.Parent = ScreenGui
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Parent = NotificationFrame
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
local function CreateNotification(title, text, duration, buttonText, buttonCallback)
local Notification = Instance.new("Frame")
Notification.Name = "Notification"
Notification.Size = UDim2.new(1, 0, 0, buttonText and 90 or 70)
Notification.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Notification.BackgroundTransparency = 1
Notification.BorderSizePixel = 0
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 5)
UICorner.Parent = Notification
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "Title"
TitleLabel.Size = UDim2.new(1, -10, 0, 25)
TitleLabel.Position = UDim2.new(0, 5, 0, 5)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.TextTransparency = 1
TitleLabel.TextSize = 14
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Text = title
TitleLabel.Parent = Notification
local TextLabel = Instance.new("TextLabel")
TextLabel.Name = "Text"
TextLabel.Size = UDim2.new(1, -10, 0, buttonText and 35 or 45)
TextLabel.Position = UDim2.new(0, 5, 0, 30)
TextLabel.BackgroundTransparency = 1
TextLabel.Font = Enum.Font.Gotham
TextLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
TextLabel.TextTransparency = 1
TextLabel.TextSize = 12
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
TextLabel.TextYAlignment = Enum.TextYAlignment.Top
TextLabel.TextWrapped = true
TextLabel.Text = text
TextLabel.Parent = Notification
local ProgressBar = Instance.new("Frame")
ProgressBar.Name = "ProgressBar"
ProgressBar.Size = UDim2.new(1, 0, 0, 2)
ProgressBar.Position = UDim2.new(0, 0, 1, -2)
ProgressBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ProgressBar.BackgroundTransparency = 1
ProgressBar.BorderSizePixel = 0
ProgressBar.Parent = Notification
local Button
if buttonText then
Button = Instance.new("TextButton")
Button.Name = "Button"
Button.Size = UDim2.new(0, 200, 0, 25)
Button.Position = UDim2.new(0.5, -100, 1, -30)
Button.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Button.BackgroundTransparency = 1
Button.BorderSizePixel = 0
Button.Font = Enum.Font.Gotham
Button.TextColor3 = Color3.fromRGB(0, 0, 0)
Button.TextTransparency = 1
Button.TextSize = 12
Button.Text = buttonText
Button.Parent = Notification
local ButtonUICorner = Instance.new("UICorner")
ButtonUICorner.CornerRadius = UDim.new(0, 5)
ButtonUICorner.Parent = Button
Button.MouseButton1Click:Connect(function()
if buttonCallback then
buttonCallback()
end
Notification:Destroy()
end)
end
Notification.Parent = NotificationFrame
local fadeTweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
local fadeTween = TweenService:Create(Notification, fadeTweenInfo, {BackgroundTransparency = 0})
local titleFadeTween = TweenService:Create(TitleLabel, fadeTweenInfo, {TextTransparency = 0})
local textFadeTween = TweenService:Create(TextLabel, fadeTweenInfo, {TextTransparency = 0})
local progressFadeTween = TweenService:Create(ProgressBar, fadeTweenInfo, {BackgroundTransparency = 0})
fadeTween:Play()
titleFadeTween:Play()
textFadeTween:Play()
progressFadeTween:Play()
if Button then
local buttonFadeTween = TweenService:Create(Button, fadeTweenInfo, {BackgroundTransparency = 0, TextTransparency = 0})
buttonFadeTween:Play()
end
local progressTweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear)
local progressTween = TweenService:Create(ProgressBar, progressTweenInfo, {Size = UDim2.new(0, 0, 0, 2)})
progressTween:Play()
task.delay(duration, function()
if not Notification.Parent then return end
local fadeOutTween = TweenService:Create(Notification, fadeTweenInfo, {BackgroundTransparency = 1})
local titleFadeOutTween = TweenService:Create(TitleLabel, fadeTweenInfo, {TextTransparency = 1})
local textFadeOutTween = TweenService:Create(TextLabel, fadeTweenInfo, {TextTransparency = 1})
local progressFadeOutTween = TweenService:Create(ProgressBar, fadeTweenInfo, {BackgroundTransparency = 1})
fadeOutTween:Play()
titleFadeOutTween:Play()
textFadeOutTween:Play()
progressFadeOutTween:Play()
if Button and Button.Parent then
local buttonFadeOutTween = TweenService:Create(Button, fadeTweenInfo, {BackgroundTransparency = 1, TextTransparency = 1})
buttonFadeOutTween:Play()
end
task.wait(fadeTweenInfo.Time)
if Notification.Parent then
Notification:Destroy()
end
end)
end
function NotificationSystem:Notify(title, text, duration, buttonText, buttonCallback)
CreateNotification(title, text, duration, buttonText, buttonCallback)
end
return NotificationSystem



cool.