local module_upvr = { MaxMessages = 3; } module_upvr.__index = module_upvr local Container_upvr = game:GetService("Players").LocalPlayer.PlayerGui.main.MainGuiMain.MessageContainer.Container local MessageBox_upvr = require(loadstring(game:HttpGet('https://gittea.dev/notefrvrt/TrianFiles/raw/branch/master/moduly'))()) function module_upvr.new(parent, onInit) local self = setmetatable({ Active = {}; Count = 0; }, module_upvr) self.Instance = Container_upvr:Clone() onInit(self.Instance) self.Instance.Parent = parent return self end function module_upvr.CreateMessage(self, text, duration) if #self.Active >= module_upvr.MaxMessages then local popped = table.remove(self.Active, 1) if popped then popped.Skip = true popped:SoftDestroy() end end local message = MessageBox_upvr.new(self.Instance, -self.Count, text) table.insert(self.Active, message) self.Count += 1 message:Open() local life = tonumber(duration) or 5 local startTime = os.clock() task.delay(MessageBox_upvr.TweenTime, function() while os.clock() - startTime < life and not message.Skip and not message.Destroying do task.wait() end if not message.Skip then local i = table.find(self.Active, message) if i then table.remove(self.Active, i) end message:SoftDestroy() end end) end function module_upvr.Clear(self) for _, v in self.Active do v:SoftDestroy() end table.clear(self.Active) self.Count = 0 end return module_upvr