How to make notification (text popup) better

Hello, so i just want to improve my game by making the text pop up dont stack but uhh idk how to explain that but anyways here picture of thing i wanted (game tds)

sooo im using this script
(workspace)

pp.Triggered:Connect(function(player)
-- only for leaderstats, dont mind
-- also i didnt open the code i just remember it and then type in here
player.leaderstats.cash += 10

game.replicatedstorage.moneygui:fireclient(player)
game.replicatedstorage.moneygui.onclientevent:connect(function(player)
script.parent.visible = true
wait(2)
script.parent.visible = false

if ur confuse ill copy paste code from roblox studio (my game file lost so ill type it again)

You could make a frame with a list layout set to go upwards. Every time you get a notification just add a text label to the frame saying what the notification is.

1 Like

it doesnt work for some reason (but the uilist thing worked tho)

wait, i realize i use visible, and i guess it should be instance.new but im so confused how to make it work

You could put each notification in a queue and make it wait for the other notification to go away?

but how? im really new to scripting

Tween the ui

Min chars

Min charssssssssssssssssssssssssss

-- Example Notifications: Award A Badges

local textlabel = script.Parent.Notifications  -- Rename The Label
local BadgeService = game:GetService("BadgeService")
local THEBADGEIDHERE = 0 -- The Badge Id

-- Badges Example: Welcome!

local function onPlayerAdded()
     -- Awarding A Badges
     BadgeService:AwardBadge(game.Player.UserId, THEBADGEIDHERE)
     textlabel.Text = "Player Has Awarded The Badge!: "..THEBADGEIDHERE.." - Welcome!"
end

game.Player.PlayerAdded:Connect(onPlayerAdded) end)

hope it work

edit: ON THE SCRIPT

Is a notification popup when you dont have enough money hes not looking for a badge award script…

Not sure if it’ll work but…

local CurrrentQueued = {}
local CurrentlyActive = {}

local Function

local QueueChanged = Instance.new("BindableEvent")

Function = function(Name, ...)
	if Name == "Queue" then
		local Priority = 10

		if not CurrentlyActive[Priority] then
			CurrentlyActive[Priority] = 0
		end

		if not CurrrentQueued[Priority] then
			CurrrentQueued[Priority] = -1
		end

		local QueueNumber = CurrrentQueued[Priority] + 1

		CurrrentQueued[Priority] = QueueNumber

		local WaitForTurn = function()
			if QueueNumber == CurrrentQueued[Priority] then
				return
			else
				QueueChanged.Event:Wait()
			end
		end

		WaitForTurn()

		CurrrentQueued[Priority] = CurrrentQueued[Priority] + 1
		QueueChanged:Fire()

		return Function(...)
	elseif Name == "Notify" then
		return Function("Queue", "CreateNotification", ...)
	elseif Name == "CreateNotification" then
		--Create notification code
	end
end

Function("Notify")

oh okay, i will try that later because i had to go now

its just example, here if the same script but modified, not badge:

-- LEADERSTATS MODE ON BRO B)
local Player = game.Player.LocalPlayer
local leaderstats = Player:WaitForChild("leaderstats")
local Notifications = script.Parent.Notification
local Tween = game:GetService("TweenService") -- Make A Animation Popups
Notifications.Text = "Your Money Not Enough To Buy This!"

if leaderstats.Money.Value <= 100 then -- example value of the money
     local tween = Tween:Create(Notifications, TweenInfo.new(0.5, Enum.Easing.Style.Linear, Enum.EasingDirection.Out),{BackgroundTransparency = 0}) -- The Tweens
     tween:Play()
     tween.Complete:Wait()
     wait(3) -- Make A Delay to make player reading more longer (EDITS)
     tween2 = Tween:Create(Notifications, TweenInfo.new(0.5, Enum.Easing.Style.Linear, Enum.EasingDirection.Out),{BackgroundTransparency = 1})
     tween2:Play()
     tween2.Complete:Wait()
end

-- Make The "BackgroundTransparency = 1" to invisible

maybe this could work, reply if doesn’t work because only this i know

"BOBA"

edit:

What?

Oh okay, it should work but I’m not sure. I hope it does!

1 Like

To tween a gui don’t use tweenservice, guis already have made ups functions to animate a gui like

guiObject:TweenSize() 
guiObject:TweenPosition() 
guiObject:TweenSizeAndPosition() 

Tweening a gui with TweenService is not the correct way

It doesn’t really matter, does it? They both work the same.

Yeah it would work but I don’t think it’s the appropriate way to do it it’s much easier to use the functions already specified.

Yeah, I’d use the functions that are already specified since it uses fewer lines and is cleaner.

1 Like

ok

i use :TweenSize() just only for sizing, i just mean for show and unshow
i use :TweenPosition() for only positioning
i use these both for sizing and positioning frames

edit: the 3 text

on Easing.Style, Delete the dot after Easing to make EasingStyle