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
-- 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:
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