--[[ Script: RanmaChan Multi-Tool Funcionalidades: 1. Auto Train (Spamea ApplyMobileTrain, ApplyStationaryTrain y TrainSpeedHasChanged - MÁS RÁPIDO) 2. Safe Zone (Crea plataforma grande, permite movimiento libre, anti-caída, regresa a pos. anterior al desactivar) 3. No Slow (Universal, activable/desactivable, bucle Stepped, con slider de velocidad mejorado) GUI: RanmaChan (Dark Purple Smooth, alternar con Right Ctrl) ]] local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer -- Configuración de la GUI local guiName = "RanmaChan" local toggleKey = Enum.KeyCode.RightControl local baseColor = Color3.fromRGB(45, 20, 70) local accentColor = Color3.fromRGB(180, 160, 220) local font = Enum.Font.GothamSemibold local lightBaseColor = Color3.fromRGB(65, 40, 90) -- Para el fondo del slider local screenGui = Instance.new("ScreenGui") screenGui.Name = guiName screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = game:GetService("CoreGui") local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 300, 0, 225) mainFrame.Position = UDim2.new(0.5, -mainFrame.Size.X.Offset / 2, 0.5, -mainFrame.Size.Y.Offset / 2) mainFrame.BackgroundColor3 = baseColor mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local mainFrameCorner = Instance.new("UICorner") mainFrameCorner.CornerRadius = UDim.new(0, 8) mainFrameCorner.Parent = mainFrame local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 30) titleBar.BackgroundColor3 = baseColor titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame -- UICorner para el TitleBar para asegurar sus propias esquinas redondeadas local titleBarCorner = Instance.new("UICorner") titleBarCorner.CornerRadius = UDim.new(0, 8) -- Mismo radio que el MainFrame titleBarCorner.Parent = titleBar local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, 0, 1, 0) titleLabel.Position = UDim2.new(0.5, 0, 0.5, 0) titleLabel.AnchorPoint = Vector2.new(0.5, 0.5) titleLabel.BackgroundTransparency = 1 titleLabel.Text = guiName titleLabel.Font = font titleLabel.TextColor3 = accentColor titleLabel.TextSize = 18 titleLabel.Parent = titleBar local buttonYOffset = 45 local buttonSpacing = 40 local autoTrainButton = Instance.new("TextButton") autoTrainButton.Name = "AutoTrainButton" autoTrainButton.Size = UDim2.new(1, -20, 0, 30) autoTrainButton.Position = UDim2.new(0, 10, 0, buttonYOffset) autoTrainButton.BackgroundColor3 = accentColor autoTrainButton.Text = "Auto Train (OFF)" autoTrainButton.Font = font; autoTrainButton.TextColor3 = baseColor; autoTrainButton.TextSize = 16 autoTrainButton.Parent = mainFrame local autoTrainButtonCorner = Instance.new("UICorner"); autoTrainButtonCorner.CornerRadius = UDim.new(0, 6); autoTrainButtonCorner.Parent = autoTrainButton buttonYOffset = buttonYOffset + buttonSpacing local safeZoneButton = Instance.new("TextButton") safeZoneButton.Name = "SafeZoneButton" safeZoneButton.Size = UDim2.new(1, -20, 0, 30) safeZoneButton.Position = UDim2.new(0, 10, 0, buttonYOffset) safeZoneButton.BackgroundColor3 = accentColor safeZoneButton.Text = "Safe Zone (OFF)" safeZoneButton.Font = font; safeZoneButton.TextColor3 = baseColor; safeZoneButton.TextSize = 16 safeZoneButton.Parent = mainFrame local safeZoneButtonCorner = Instance.new("UICorner"); safeZoneButtonCorner.CornerRadius = UDim.new(0, 6); safeZoneButtonCorner.Parent = safeZoneButton buttonYOffset = buttonYOffset + buttonSpacing local noSlowButton = Instance.new("TextButton") noSlowButton.Name = "NoSlowButton" noSlowButton.Size = UDim2.new(1, -20, 0, 30) noSlowButton.Position = UDim2.new(0, 10, 0, buttonYOffset) noSlowButton.BackgroundColor3 = accentColor noSlowButton.Text = "No Slow (OFF)" noSlowButton.Font = font; noSlowButton.TextColor3 = baseColor; noSlowButton.TextSize = 16 noSlowButton.Parent = mainFrame local noSlowButtonCorner = Instance.new("UICorner"); noSlowButtonCorner.CornerRadius = UDim.new(0, 6); noSlowButtonCorner.Parent = noSlowButton buttonYOffset = buttonYOffset + buttonSpacing - 5 local speedLabel = Instance.new("TextLabel") speedLabel.Name = "SpeedLabel" speedLabel.Size = UDim2.new(1, -20, 0, 20) speedLabel.Position = UDim2.new(0, 10, 0, buttonYOffset) speedLabel.BackgroundTransparency = 1 speedLabel.Font = font; speedLabel.TextColor3 = accentColor; speedLabel.TextSize = 14 speedLabel.Text = "Speed: 16"; speedLabel.TextXAlignment = Enum.TextXAlignment.Left speedLabel.Parent = mainFrame buttonYOffset = buttonYOffset + 20 + 5 local sliderBar = Instance.new("Frame") sliderBar.Name = "SliderBar" sliderBar.Size = UDim2.new(1, -20, 0, 8) sliderBar.Position = UDim2.new(0, 10, 0, buttonYOffset) sliderBar.BackgroundColor3 = lightBaseColor sliderBar.BorderSizePixel = 0 sliderBar.Parent = mainFrame local sliderBarCorner = Instance.new("UICorner"); sliderBarCorner.CornerRadius = UDim.new(0, 4); sliderBarCorner.Parent = sliderBar local sliderFill = Instance.new("Frame") sliderFill.Name = "SliderFill" sliderFill.Size = UDim2.new(0, 0, 1, 0) sliderFill.Position = UDim2.new(0, 0, 0, 0) sliderFill.BackgroundColor3 = accentColor sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderBar local sliderFillCorner = Instance.new("UICorner"); sliderFillCorner.CornerRadius = UDim.new(0, 4); sliderFillCorner.Parent = sliderFill local sliderThumb = Instance.new("TextButton") sliderThumb.Name = "SliderThumb" sliderThumb.Size = UDim2.new(0, 12, 0, 16) sliderThumb.AnchorPoint = Vector2.new(0.5, 0.5) sliderThumb.Position = UDim2.new(0, 0, 0.5, 0) sliderThumb.BackgroundColor3 = accentColor sliderThumb.BorderSizePixel = 0 sliderThumb.Text = "" sliderThumb.Parent = sliderBar local sliderThumbCorner = Instance.new("UICorner"); sliderThumbCorner.CornerRadius = UDim.new(0, 6); sliderThumbCorner.Parent = sliderThumb screenGui.Enabled = true UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) if gameProcessedEvent then return end if input.KeyCode == toggleKey then screenGui.Enabled = not screenGui.Enabled end end) -- Lógica Auto Train local autoTrainEnabled = false; local autoTrainThread = nil; local mobileTrainRemote, stationaryTrainRemote, trainSpeedRemote = nil,nil,nil; local trainSpeedArgs = {4}; local spamMultiplier = 3; local function findTrainRemotes() local rs=ReplicatedStorage;local teFound,tsFound=true,true;local tE=rs:FindFirstChild("TrainEquipment");if tE then local rFTE=tE:FindFirstChild("Remote");if rFTE then mobileTrainRemote=rFTE:FindFirstChild("ApplyMobileTrain");stationaryTrainRemote=rFTE:FindFirstChild("ApplyStationaryTrain")else teFound=false end else teFound=false end;local tS=rs:FindFirstChild("TrainSystem");if tS then local rFTS=tS:FindFirstChild("Remote");if rFTS then trainSpeedRemote=rFTS:FindFirstChild("TrainSpeedHasChanged")else tsFound=false end else tsFound=false end;if not teFound then warn("AT: TE Path Fail")end;if not tsFound then warn("AT: TS Path Fail")end;if not mobileTrainRemote then warn("AT: MTR Fail")end;if not stationaryTrainRemote then warn("AT: STR Fail")end;if not trainSpeedRemote then warn("AT: TSR Fail")end;return mobileTrainRemote and stationaryTrainRemote and trainSpeedRemote end; local function startAutoTrain()if not(mobileTrainRemote and stationaryTrainRemote and trainSpeedRemote)then if not findTrainRemotes()then autoTrainButton.Text="Auto Train (Error)";autoTrainEnabled=false;return end end;if not(mobileTrainRemote and stationaryTrainRemote and trainSpeedRemote)then autoTrainButton.Text="Auto Train (Error)";autoTrainEnabled=false;return end;if autoTrainThread then task.cancel(autoTrainThread)autoTrainThread=nil end;autoTrainThread=task.spawn(function()while autoTrainEnabled do for i=1,spamMultiplier do if mobileTrainRemote then pcall(function()mobileTrainRemote:InvokeServer()end)end;if stationaryTrainRemote then pcall(function()stationaryTrainRemote:InvokeServer()end)end;if trainSpeedRemote then pcall(function()trainSpeedRemote:FireServer(unpack(trainSpeedArgs))end)end end;RunService.Heartbeat:Wait()end end)end; autoTrainButton.MouseButton1Click:Connect(function()autoTrainEnabled=not autoTrainEnabled;if autoTrainEnabled then autoTrainButton.Text="Auto Train (ON)";autoTrainButton.BackgroundColor3=Color3.fromRGB(120,200,120);startAutoTrain()else autoTrainButton.Text="Auto Train (OFF)";autoTrainButton.BackgroundColor3=accentColor;if autoTrainThread then task.cancel(autoTrainThread)autoTrainThread=nil end end end) -- Lógica Safe Zone local safeZoneEnabled = false; local safeZoneThread = nil; local safePlatform = nil; local safePlatformName = "RanmaChanSafeZonePlatform_v2"; local lastPlayerCFrameBeforeSafeZone = nil; local function createOrGetSafePlatform() if safePlatform and safePlatform.Parent then return safePlatform end;safePlatform=Workspace:FindFirstChild(safePlatformName);if safePlatform and safePlatform:IsA("Part")then if not safePlatform.Anchored then safePlatform.Anchored=true end;return safePlatform elseif safePlatform then safePlatform:Destroy()safePlatform=nil end;safePlatform=Instance.new("Part");safePlatform.Name=safePlatformName;safePlatform.Size=Vector3.new(150,2,150);safePlatform.Color=Color3.fromRGB(120,80,160);safePlatform.Material=Enum.Material.SmoothPlastic;safePlatform.Transparency=0.4;safePlatform.Anchored=true;safePlatform.CanCollide=true;safePlatform.Position=Vector3.new(0,5000,0);safePlatform.Parent=Workspace;return safePlatform end; local function forcePlayerToCFrame(character,targetCFrame)if not character then return end;local hrp=character:FindFirstChild("HumanoidRootPart");local humanoid=character:FindFirstChildOfClass("Humanoid");if hrp and hrp:IsA("BasePart")and humanoid then if hrp.Anchored then hrp.Anchored=false end;if humanoid.PlatformStand then humanoid.PlatformStand=false end;if humanoid.Sit then humanoid.Sit=false;RunService.Stepped:Wait()end;local cS=humanoid:GetState();if cS==Enum.HumanoidStateType.Seated then humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)RunService.Stepped:Wait()cS=humanoid:GetState()if cS~=Enum.HumanoidStateType.Freefall and cS~=Enum.HumanoidStateType.Jumping and cS~=Enum.HumanoidStateType.Running then humanoid:ChangeState(Enum.HumanoidStateType.Running)RunService.Stepped:Wait()end end;if hrp.Anchored then hrp.Anchored=false end;character:SetPrimaryPartCFrame(targetCFrame)end end; local function startSafeZoneLoop()if not safePlatform or not safePlatform.Parent then if not createOrGetSafePlatform()then warn("SZ: Platform Fail");safeZoneButton.Text="Safe Zone (Error)";safeZoneEnabled=false;return end end;if safeZoneThread then task.cancel(safeZoneThread)safeZoneThread=nil end;safeZoneThread=task.spawn(function()while safeZoneEnabled do local char=LocalPlayer.Character;if char then local hrp=char:FindFirstChild("HumanoidRootPart");if hrp and hrp:IsA("BasePart")and safePlatform and safePlatform.Parent then local pP=safePlatform.Position;local pS=safePlatform.Size;local plP=hrp.Position;local hSX=pS.X/2;local hSZ=pS.Z/2;local mY=pP.Y-(pS.Y/2)-hrp.Size.Y-10;if plP.XpP.X+hSX or plP.ZpP.Z+hSZ or plP.Y