Well, I have to admit that the title is somehow clickbait since I wasn’t able to find a way to make the studio script editor a rainbow without my pc blowing up. But I managed to do so with the comments.
Basically I was bored thinking about something cool to make and this is what came to my mind. It was somehow challenging to make it, not for the fact of being a hard idea to replicate but because changing studio settings is not an easy task for the studio.
In the gif shown above, my fps are going from 10 to 20. The cool thing is that in the gif above, the settings were updating every 1/10th of a second to make it look smooth, but if you increase the number by just .15 seconds (making it refresh every .25s) it will still look pretty smooth, in fact the only thing that will change is the speed of the rainbow effect, it will be easier to identify the gaps between each refresh but the rainbow will still look pretty smooth.
Now fps are sitting at ~45. But yeah, whatever you do you’re going to get some impact on your performance, even by changing the whole thing from rainbow to just “breathing” it still gives you some mini-lag spikes when you’re moving through the workspace (at least fps are now at a stable rate of 60).
So definitely this is not something that you’re going to use, not only for the fact that it really impacts in performance but also because it could make it harder to read comments. Also had to mention that you can apply this to other things like function names or normal text, and you can also apply the rainbow effect to multiple settings but that would just make your studio go brrrr.
If for some reason you want the code, here it is.
Rainbow Effect:
local Studio = settings().Studio
local RunService = game:GetService("RunService")
local playing = false
local function rainbowComments()
if (not playing) then
playing = true
for hue = 0, 1, .01 do
Studio["Comment Color"] = Color3.fromHSV(hue, 1, 1)
wait(.1)
end
playing = false
end
end
RunService.Heartbeat:Connect(rainbowComments)
Breathing effect:
local Studio = settings().Studio
local RunService = game:GetService("RunService")
local playing = false
local function rainbowComments()
if (not playing) then
playing = true
for hue = .5, .6, .01 do
Studio["Comment Color"] = Color3.fromHSV(hue, 1, 1)
wait(1.5)
end
for hue = .6, .5, -.01 do
Studio["Comment Color"] = Color3.fromHSV(hue, 1, 1)
wait(1.5)
end
playing = false
end
end
RunService.Heartbeat:Connect(rainbowComments)