-- Project RIGHTWHRITE Server-Side (Fix ClipsDescendants) local Players = game:GetService("Players") local LogService = game:GetService("LogService") -- 🔒 local ALLOWED_USERID = 9897783769 -- 🎨 COLORE CONTORNI (VERDE OLIVA) local BORDER_COLOR = Color3.fromRGB(85, 107, 47) 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR 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 = BORDER_COLOR ScrollList.CanvasSize = UDim2.new(0, 0, 0, 500) 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 = BORDER_COLOR 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://6129291390" 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) AddBtn("Particles", function() -- 🔽🔽🔽 INCOLLA QUI IL TUO SCRIPT 🔽🔽🔽 local imageId = "rbxassetid://80529788688635" local desiredSpeed = 10 local ratePerPart = 20 local function applyParticles(obj) if obj:IsA("BasePart") then -- Rimuove particelle vecchie per evitare sovrapposizioni for _, old in pairs(obj:GetChildren()) do if old:IsA("ParticleEmitter") and old.Name == "C00lEffect" then old:Destroy() end end local pe = Instance.new("ParticleEmitter") pe.Name = "C00lEffect" pe.Texture = imageId pe.Transparency = NumberSequence.new(0) -- Solide pe.LightEmission = 0 -- Niente effetto fantasma pe.Size = NumberSequence.new(2) pe.Lifetime = NumberRange.new(3, 5) -- Impostazioni per salire verso l'alto pe.Speed = NumberRange.new(desiredSpeed, desiredSpeed) -- Velocità fissa 10 pe.EmissionDirection = Enum.NormalId.Top -- Emette verso l'alto pe.Acceleration = Vector3.new(0, 0, 0) -- Nessuna gravità, salgono dritte pe.Rate = ratePerPart -- 20 per ogni parte pe.Parent = obj end end -- Applica a tutti i blocchi esistenti nella piattaforma (Workspace) for _, v in pairs(workspace:GetDescendants()) do applyParticles(v) end -- Applica a tutti i Players attuali e futuri (per ogni parte del corpo) for _, player in pairs(game.Players:GetPlayers()) do if player.Character then for _, part in pairs(player.Character:GetDescendants()) do applyParticles(part) end end end print("RIGHTWHRITE IS BETTER AHAHAHHAHA!") -- 🔼🔼🔼 FINE SCRIPT 🔼🔼🔼 end) AddBtn("Disco", function() local lighting = game:GetService("Lighting") -- Crea l'effetto sulla visuale local cc = Instance.new("ColorCorrectionEffect", lighting) cc.Name = "DiscoVisual" cc.Saturation = 0.5 -- Mantiene i colori della mappa visibili cc.Brightness = 0.1 -- Non esagera con la luce -- Tabella colori vivaci (senza bianco, nero, grigio) local c = { Color3.fromRGB(255, 0, 0), -- Rosso Color3.fromRGB(255, 255, 0), -- Giallo Color3.fromRGB(255, 0, 255), -- Rosa/Viola Color3.fromRGB(0, 255, 0), -- Verde Color3.fromRGB(0, 255, 255), -- Azzurro Color3.fromRGB(255, 100, 0), -- Arancione Color3.fromRGB(150, 0, 255) -- Viola scuro } -- Loop infinito che riparte sempre da solo task.spawn(function() while true do for i = 1, #c do -- Cambia colore con una sfumatura leggera (transparente) cc.TintColor = c[i] task.wait(0.2) -- Velocità moderata per vedere la piattaforma end -- Qui il ciclo ricomincia da solo dal primo colore 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 = BORDER_COLOR 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 = BORDER_COLOR 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) BCopy.MouseButton1Click:Connect(function() if setclipboard then setclipboard(ExecBox.Text) -- Optional: a small visual feedback BCopy.Text = "Copy" task.wait(1) BCopy.Text = "Copy" else warn("Your executor does not support setclipboard") 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)