Mobile Ready
RIGHTGUI
RIGHTGUI server
0
Likes
47
Views
0
Downloads
Script Source
-- Project RIGHTWHRITE Server-Side (Fix ClipsDescendants)
local Players = game:GetService("Players")
local LogService = game:GetService("LogService")
-- 🔒
local ALLOWED_USERID = 9897783769
local function CreateProjectRW(player)
if player.UserId ~= ALLOWED_USERID then
return
end
if player.PlayerGui:FindFirstChild("RIGHTWHRITEGUI_SS") then return end
local sg = Instance.new("ScreenGui")
sg.Name = "RIGHTWHRITEGUI_SS"
sg.Parent = player.PlayerGui
sg.ResetOnSpawn = false
-- Main Frame (Rettangolare, Nero, Contorno Rosso)
local Main = Instance.new("Frame")
Main.Name = "Main"
Main.Size = UDim2.new(0, 580, 0, 380)
Main.Position = UDim2.new(0.5, -290, 0.5, -190)
Main.BackgroundColor3 = Color3.new(0, 0, 0)
Main.BorderColor3 = Color3.new(1, 0, 0)
Main.BorderSizePixel = 2
Main.ClipsDescendants = true -- EVITA CHE IL TESTO ESCA FUORI
Main.Active = true
Main.Draggable = true
Main.Parent = sg
-- Title Bar
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundColor3 = Color3.new(0, 0, 0)
Title.BorderColor3 = Color3.new(1, 0, 0)
Title.Text = "RIGHTGUI"
Title.TextColor3 = Color3.new(1, 1, 1)
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 18
Title.Parent = Main
-- Tasto Apri/Chiudi (- / +)
local MinBtn = Instance.new("TextButton")
MinBtn.Size = UDim2.new(0, 30, 0, 30)
MinBtn.Position = UDim2.new(1, -30, 0, 0)
MinBtn.BackgroundColor3 = Color3.new(0, 0, 0)
MinBtn.BorderColor3 = Color3.new(1, 0, 0)
MinBtn.Text = "(:"
MinBtn.TextColor3 = Color3.new(1, 1, 1)
MinBtn.Parent = Main
-- Tabs Container
local TabHome = Instance.new("TextButton")
TabHome.Size = UDim2.new(0, 80, 0, 25)
TabHome.Position = UDim2.new(0, 5, 0, 35)
TabHome.BackgroundColor3 = Color3.new(0,0,0)
TabHome.BorderColor3 = Color3.new(1,0,0)
TabHome.Text = "Editor >_"
TabHome.TextColor3 = Color3.new(1,1,1)
TabHome.Parent = Main
local TabConsole = Instance.new("TextButton")
TabConsole.Size = UDim2.new(0, 80, 0, 25)
TabConsole.Position = UDim2.new(0, 90, 0, 35)
TabConsole.BackgroundColor3 = Color3.new(0,0,0)
TabConsole.BorderColor3 = Color3.new(1,0,0)
TabConsole.Text = "Console"
TabConsole.TextColor3 = Color3.new(1,1,1)
TabConsole.Parent = Main
-- PAGINA HOME
local HomePage = Instance.new("Frame")
HomePage.Size = UDim2.new(1, 0, 1, -65)
HomePage.Position = UDim2.new(0, 0, 0, 65)
HomePage.BackgroundTransparency = 1
HomePage.Parent = Main
-- TextBox Style Executor con ClipsDescendants
local ExecBox = Instance.new("TextBox")
ExecBox.Size = UDim2.new(0, 380, 0, 250)
ExecBox.Position = UDim2.new(0, 10, 0, 5)
ExecBox.BackgroundColor3 = Color3.new(0,0,0)
ExecBox.BorderColor3 = Color3.new(1,0,0)
ExecBox.TextColor3 = Color3.new(1,1,1)
ExecBox.Text = ""
ExecBox.PlaceholderText = "--Project RIGHTWHRITE"
ExecBox.MultiLine = true
ExecBox.ClearTextOnFocus = false
ExecBox.ClipsDescendants = true -- PROTEZIONE EXTRA
ExecBox.TextXAlignment = Enum.TextXAlignment.Left
ExecBox.TextYAlignment = Enum.TextYAlignment.Top
ExecBox.Parent = HomePage
-- Bottoni Sotto la TextBox
local function CreateActionBtn(txt, pos)
local b = Instance.new("TextButton")
b.Size = UDim2.new(0, 120, 0, 30)
b.Position = pos
b.BackgroundColor3 = Color3.new(0,0,0)
b.BorderColor3 = Color3.new(1,0,0)
b.Text = txt
b.TextColor3 = Color3.new(1,1,1)
b.Parent = HomePage
return b
end
local BExecute = CreateActionBtn("Execute", UDim2.new(0, 10, 0, 260))
local BClear = CreateActionBtn("Clear", UDim2.new(0, 140, 0, 260))
local BCopy = CreateActionBtn("Copy", UDim2.new(0, 270, 0, 260))
-- LISTA BOTTONI A DESTRA (VERTICALE)
local ScrollList = Instance.new("ScrollingFrame")
ScrollList.Size = UDim2.new(0, 160, 0, 285)
ScrollList.Position = UDim2.new(0, 405, 0, 5)
ScrollList.BackgroundColor3 = Color3.new(0,0,0)
ScrollList.BorderColor3 = Color3.new(1,0,0)
ScrollList.CanvasSize = UDim2.new(0, 0, 0, 400)
ScrollList.ScrollBarThickness = 4
ScrollList.Parent = HomePage
local listLayout = Instance.new("UIListLayout")
listLayout.Parent = ScrollList
listLayout.Padding = UDim.new(0, 5)
local function AddBtn(name, fn)
local b = Instance.new("TextButton")
b.Size = UDim2.new(1, -10, 0, 40)
b.BackgroundColor3 = Color3.new(0,0,0)
b.BorderColor3 = Color3.new(1,0,0)
b.TextColor3 = Color3.new(1,1,1)
b.Text = name
b.Parent = ScrollList
b.MouseButton1Click:Connect(fn)
end
-- AZIONI BOTTONI
AddBtn("Skybox", function()
local s = Instance.new("Sky", game.Lighting)
local id = "rbxassetid://90703417242017"
s.SkyboxBk, s.SkyboxDn, s.SkyboxFt, s.SkyboxLf, s.SkyboxRt, s.SkyboxUp = id, id, id, id, id, id
end)
AddBtn("Skybox 2", function()
local s = Instance.new("Sky", game.Lighting)
local id = "rbxassetid://80529788688635"
s.SkyboxBk, s.SkyboxDn, s.SkyboxFt, s.SkyboxLf, s.SkyboxRt, s.SkyboxUp = id, id, id, id, id, id
end)
AddBtn("Decal spam", function()
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA("BasePart") then
for i=0,5 do
local d = Instance.new("Decal", p)
d.Texture = "rbxassetid://90703417242017"
d.Face = Enum.NormalId:GetEnumItems()[i+1]
end
end
end
end)
AddBtn("Decal spam 2", function()
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA("BasePart") then
for i=0,5 do
local d = Instance.new("Decal", p)
d.Texture = "rbxassetid://80529788688635"
d.Face = Enum.NormalId:GetEnumItems()[i+1]
end
end
end
end)
AddBtn("Music", function()
local snd = Instance.new("Sound", workspace)
snd.SoundId = "rbxassetid://18974101814"
snd:Play()
end)
AddBtn("Jumpscare", function()
for _, plr in pairs(Players:GetPlayers()) do
local jg = Instance.new("ScreenGui", plr.PlayerGui)
local img = Instance.new("ImageLabel", jg)
img.Size = UDim2.new(1,0,1,0)
img.Image = "rbxassetid://90703417242017"
local s = Instance.new("Sound", workspace)
s.SoundId = "rbxassetid://5567540210"
s:Play()
task.delay(3, function() jg:Destroy() end)
end
end)
AddBtn("Fire", function()
for _, p in pairs(workspace:GetDescendants()) do
if p:IsA("BasePart") then Instance.new("Fire", p).Size = 30 end
end
end)
AddBtn("Enter message", function()
local msgs = {"I am RIGHTWHRITE", "HAHAHAAHHAHHAHA", "I am KING!!!"}
for _, text in pairs(msgs) do
local h = Instance.new("Hint", workspace)
h.Text = text
task.wait(2.5)
h:Destroy()
end
end)
AddBtn("Collapse World", function()
-- Identifica i personaggi dei player per proteggerli
local protected = {}
for _, p in pairs(Players:GetPlayers()) do
if p.Character then
protected[p.Character] = true
end
end
-- Scansiona tutto il Workspace
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") then
-- Controlla che l'oggetto non appartenga a un player
local isSafe = false
for char, _ in pairs(protected) do
if obj:IsDescendantOf(char) then
isSafe = true
break
end
end
if not isSafe then
-- L'EFFETTO COLLAPSE:
obj.Anchored = false -- Toglie il blocco
obj:BreakJoints() -- Rompe le saldature (fondamentale per far crollare i palazzi)
-- Applica una piccola forza casuale per far "vibrare" e cadere meglio i pezzi
obj.Velocity = Vector3.new(math.random(-1,1), -5, math.random(-1,1))
end
end
end
end)
-- PAGINA CONSOLE
local ConsolePage = Instance.new("Frame")
ConsolePage.Size = UDim2.new(1, 0, 1, -65)
ConsolePage.Position = UDim2.new(0, 0, 0, 65)
ConsolePage.BackgroundTransparency = 1
ConsolePage.Visible = false
ConsolePage.Parent = Main
local ConsoleBox = Instance.new("ScrollingFrame")
ConsoleBox.Size = UDim2.new(0, 380, 0, 300)
ConsoleBox.Position = UDim2.new(0, 10, 0, 5)
ConsoleBox.BackgroundColor3 = Color3.new(0,0,0)
ConsoleBox.BorderColor3 = Color3.new(1,0,0)
ConsoleBox.CanvasSize = UDim2.new(0,0,0,5000)
ConsoleBox.Parent = ConsolePage
Instance.new("UIListLayout", ConsoleBox)
local PlayerList = Instance.new("ScrollingFrame")
PlayerList.Size = UDim2.new(0, 160, 0, 300)
PlayerList.Position = UDim2.new(0, 405, 0, 5)
PlayerList.BackgroundColor3 = Color3.new(0,0,0)
PlayerList.BorderColor3 = Color3.new(1,0,0)
PlayerList.Parent = ConsolePage
Instance.new("UIListLayout", PlayerList)
-- Logica
LogService.MessageOut:Connect(function(msg)
local t = Instance.new("TextLabel", ConsoleBox)
t.Size = UDim2.new(1,0,0,20)
t.BackgroundTransparency = 1
t.TextColor3 = Color3.new(1,1,1)
t.Text = msg
t.TextXAlignment = Enum.TextXAlignment.Left
end)
local function Refresh()
for _, v in pairs(PlayerList:GetChildren()) do if v:IsA("TextLabel") then v:Destroy() end end
for _, p in pairs(Players:GetPlayers()) do
local l = Instance.new("TextLabel", PlayerList)
l.Size = UDim2.new(1,0,0,25)
l.BackgroundTransparency = 1
l.TextColor3 = Color3.new(1,1,1)
l.Text = p.Name
end
end
Players.PlayerAdded:Connect(Refresh) Players.PlayerRemoving:Connect(Refresh) Refresh()
TabHome.MouseButton1Click:Connect(function() HomePage.Visible = true ConsolePage.Visible = false end)
TabConsole.MouseButton1Click:Connect(function() HomePage.Visible = false ConsolePage.Visible = true end)
BClear.MouseButton1Click:Connect(function() ExecBox.Text = "" end)
BExecute.MouseButton1Click:Connect(function()
local f, err = loadstring(ExecBox.Text)
if f then f() else warn(err) end
end)
-- Funzione Contrai/Espandi
local isMin = false
MinBtn.MouseButton1Click:Connect(function()
isMin = not isMin
if isMin then
HomePage.Visible = false ConsolePage.Visible = false
TabHome.Visible = false TabConsole.Visible = false
Main:TweenSize(UDim2.new(0, 180, 0, 30), "Out", "Quad", 0.2, true)
MinBtn.Text = "):"
else
Main:TweenSize(UDim2.new(0, 580, 0, 380), "Out", "Quad", 0.2, true)
task.wait(0.2)
HomePage.Visible = true TabHome.Visible = true TabConsole.Visible = true
MinBtn.Text = "(:"
end
end)
end
for _, p in pairs(Players:GetPlayers()) do CreateProjectRW(p) end
Players.PlayerAdded:Connect(CreateGUIRW)
Comments
Sign in to leave a comment