Easily edit console prints, and color support as well.
NOTE: Yes I did use Claude for most of the script (and Grok to fix the updating issue) however the original code before Claude (and Grok) was made by me, I am not that advanced with LuaU so yea lol. Anyways enjoy it.
1local CoreGui = game:GetService("CoreGui")
2local RunService = game:GetService("RunService")
3
4getgenv().StatusManager = getgenv().StatusManager or {
5 statuses = {},
6 nextId = 1
7}
8local StatusManager = getgenv().StatusManager
9
10function StatusManager:CreateStatus(text, color)
11 local id = self.nextId
12 self.nextId = self.nextId + 1
13
14 local statusNumString = tostring(math.random(10000, 99999)) .. "_" .. tostring(id)
15
16 local currentTime = os.date("*t")
17 local timeString = string.format("%02d:%02d:%02d", currentTime.hour, currentTime.min, currentTime.sec)
18
19 self.statuses[id] = {
20 id = id,
21 identifier = statusNumString,
22 timeString = timeString,
23 text = text or "Status",
24 color = color or Color3.fromRGB(255, 255, 255),
25 enabled = true
26 }
27
28 print(statusNumString)
29
30 return id
31end
32
33function StatusManager:SetText(id, text)
34 if self.statuses[id] then
35 self.statuses[id].text = text
36 end
37end
38
39function StatusManager:SetColor(id, color)
40 if self.statuses[id] then
41 self.statuses[id].color = color
42 end
43end
44
45function StatusManager:SetEnabled(id, enabled)
46 if self.statuses[id] then
47 self.statuses[id].enabled = enabled
48 end
49end
50
51function StatusManager:RemoveStatus(id)
52 self.statuses[id] = nil
53end
54
55task.wait(0.1)
56
57RunService.Heartbeat:Connect(function()
58 local devConsole = CoreGui:FindFirstChild("DevConsoleMaster")
59 if not devConsole then return end
60
61 local window = devConsole:FindFirstChild("DevConsoleWindow")
62 if not window or not window.Visible then return end
63
64 local clientLog = window:FindFirstChild("DevConsoleUI")
65 if clientLog then
66 clientLog = clientLog:FindFirstChild("MainView")
67 if clientLog then
68 clientLog = clientLog:FindFirstChild("ClientLog")
69 end
70 end
71
72 if not clientLog then return end
73
74 for _, child in pairs(clientLog:GetChildren()) do
75 if child.ClassName == "Frame" and child.Name ~= "WindowingPadding" then
76 local msgLabel = child:FindFirstChild("msg")
77 if msgLabel then
78 for id, status in pairs(StatusManager.statuses) do
79 if status.enabled then
80 local found = false
81 if string.find(msgLabel.Text, status.identifier) then
82 child.Name = "Status_" .. status.identifier
83 found = true
84 elseif child.Name == "Status_" .. status.identifier then
85 found = true
86 end
87 if found then
88 msgLabel.Text = status.timeString .. " -- " .. status.text
89 msgLabel.TextColor3 = status.color
90 break
91 end
92 end
93 end
94 end
95 end
96 end
97end)
98
99local myStatus = StatusManager:CreateStatus("Im gonna scare you ", Color3.fromRGB(255, 255, 0))
100task.wait(0.9)
101for i = 1, 10 do
102 task.wait(0.3)
103 StatusManager:SetText(myStatus, tostring(i))
104end
105StatusManager:SetText(myStatus, "Boo! You been spooked!")
106StatusManager:SetEnabled(myStatus, true)
107StatusManager:SetColor(myStatus, Color3.fromRGB(0, 255, 0))