-- [[ RETROSLOP GUI TRANSLATOR v3.0 - MOBILE SUPPORT ]] -- local CoreGui = game:GetService("CoreGui") local TextChatService = game:GetService("TextChatService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") -- Clean up duplicates if CoreGui:FindFirstChild("RetroslopTranslator") then CoreGui.RetroslopTranslator:Destroy() end -- Create Main ScreenGui local gui = Instance.new("ScreenGui") gui.Name = "RetroslopTranslator" gui.ResetOnSpawn = false gui.Parent = CoreGui -- ========================================== -- 📱 MOBILE / UNIVERSAL TOGGLE BUTTON -- ========================================== local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(0, 50, 0, 50) toggleButton.Position = UDim2.new(0.05, 0, 0, 10) -- Top left area, out of the way of main Roblox buttons toggleButton.Text = "👽" toggleButton.TextSize = 24 toggleButton.BackgroundColor3 = Color3.fromRGB(25, 25, 30) toggleButton.AutoButtonColor = true toggleButton.Parent = gui local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 25) -- Perfect circle toggleCorner.Parent = toggleButton local toggleStroke = Instance.new("UIStroke") toggleStroke.Color = Color3.fromRGB(165, 55, 255) toggleStroke.Thickness = 2 toggleStroke.Parent = toggleButton -- ========================================== -- 💻 MAIN INTERFACE FRAME -- ========================================== local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 330, 0, 180) frame.Position = UDim2.new(0.5, -165, 0.5, -90) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) frame.BorderSizePixel = 0 frame.Active = true frame.Visible = true -- Starts open frame.Parent = gui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 12) frameCorner.Parent = frame local borderStroke = Instance.new("UIStroke") borderStroke.Color = Color3.fromRGB(165, 55, 255) borderStroke.Thickness = 2 borderStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border borderStroke.Parent = frame -- Title Bar Labels local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 35) title.Text = " RETROSLOP TRANSLATOR v3" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.BackgroundTransparency = 1 title.Font = Enum.Font.FredokaOne title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = frame local subtitle = Instance.new("TextLabel") subtitle.Size = UDim2.new(0, 120, 0, 35) subtitle.Position = UDim2.new(1, -130, 0, 0) subtitle.Text = "[RSHIFT / Click Alien]" subtitle.TextColor3 = Color3.fromRGB(150, 150, 150) subtitle.BackgroundTransparency = 1 subtitle.Font = Enum.Font.SourceSansItalic subtitle.TextSize = 11 subtitle.TextXAlignment = Enum.TextXAlignment.Right subtitle.Parent = frame -- Input Field local inputBox = Instance.new("TextBox") inputBox.Size = UDim2.new(0.92, 0, 0, 45) inputBox.Position = UDim2.new(0.04, 0, 0.25, 0) inputBox.PlaceholderText = "Type normal message..." inputBox.Text = "" inputBox.TextSize = 14 inputBox.Font = Enum.Font.GothamMedium inputBox.BackgroundColor3 = Color3.fromRGB(30, 30, 38) inputBox.TextColor3 = Color3.fromRGB(255, 255, 255) inputBox.PlaceholderColor3 = Color3.fromRGB(100, 100, 110) inputBox.ClearTextOnFocus = false inputBox.Parent = frame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 6) inputCorner.Parent = inputBox local inputPadding = Instance.new("UIPadding") inputPadding.PaddingLeft = UDim.new(0, 8) inputPadding.PaddingRight = UDim.new(0, 8) inputPadding.Parent = inputBox -- Action Button local sendButton = Instance.new("TextButton") sendButton.Size = UDim2.new(0.92, 0, 0, 45) sendButton.Position = UDim2.new(0.04, 0, 0.62, 0) sendButton.Text = "SLOPIFY & SEND" sendButton.BackgroundColor3 = Color3.fromRGB(165, 55, 255) sendButton.TextColor3 = Color3.fromRGB(255, 255, 255) sendButton.Font = Enum.Font.GothamBold sendButton.TextSize = 16 sendButton.AutoButtonColor = true sendButton.Parent = frame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 6) buttonCorner.Parent = sendButton -- ========================================== -- 🛠️ FUNCTIONALITY & LOGIC -- ========================================== -- Toggle Logic (For both PC Keybind and Mobile Click) local function toggleGui() frame.Visible = not frame.Visible end toggleButton.MouseButton1Click:Connect(toggleGui) UserInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.KeyCode == Enum.KeyCode.RightShift then toggleGui() end end) -- Fluid UI Dragging System local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart local targetPos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) TweenService:Create(frame, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = targetPos}):Play() end frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- Enhanced Slopify Translation Engine local emotions = { ":333", "xD", "OwO", "UwU", ">_<", "^_^", "T_T", ";3", "x_x", "XD", ":P", "rawr", "rawrrr", "rawer", ">w<", "qwq", "ono", "unu", " :3 ", "X3", "ツ" } local slangSwaps = { ["hello"] = "haiii", ["hi"] = "hai", ["love"] = "wuv", ["what"] = "wut", ["why"] = "wai", ["stop"] = "stahp", ["cool"] = "kewl", ["please"] = "plz" } local characterReplacements = { ["a"]="4", ["A"]="4", ["e"]="3", ["E"]="3", ["i"]="1", ["I"]="1", ["o"]="0", ["O"]="0", ["s"]="5", ["S"]="5", ["t"]="7", ["T"]="7" } local function slopify(str) -- Step 1: Lowercase for uniform processing local lowerStr = str:lower() -- Step 2: Swap regular slang words for word, replacement in pairs(slangSwaps) do lowerStr = lowerStr:gsub("%f[%a]" .. word .. "%f[%A]", replacement) end -- Step 3: Alternating Caps logic mixed with Leetspeak mapping local finalMessage = "" for i = 1, #lowerStr do local char = lowerStr:sub(i, i) -- Apply 1337 numbers char = characterReplacements[char] or char -- 50% chance to force uppercase if it's a letter (Mocking Caps layout) if math.random(1, 2) == 1 and char:match("%a") then char = char:upper() end finalMessage = finalMessage .. char end -- Step 4: Pile on chaos variables local randomEmotion = emotions[math.random(1, #emotions)] local exclamations = string.rep("!", math.random(4, 8)) return finalMessage .. exclamations .. " " .. randomEmotion end -- Safe Universal Game Chat Transmitter local function sendToChat(msg) task.spawn(function() if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(msg) end else local legacyEvent = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents") if legacyEvent then legacyEvent.SayMessageRequest:FireServer(msg, "All") end end end) end -- Fire UI Event Handler sendButton.MouseButton1Click:Connect(function() local rawText = inputBox.Text if rawText ~= "" then local slopMessage = slopify(rawText) sendToChat(slopMessage) inputBox.Text = "" end end)