local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local player = Players.LocalPlayer local targetSpeed = 16 local isScriptActive = true local isFirstOpen = true -- "Speed: ?" yazısını kontrol etmek için -- [1] BİLDİRİM GÖNDERME pcall(function() StarterGui:SetCore("SendNotification", { Title = "SPEED ADJUSTER", Text = 'Enter the value "0" to close the panel.', Duration = 2.5 }) end) -- [2] GUI OLUŞTURMA (Oyun içi Anti-GUI tespitini engellemek için CoreGui'ye saklanır) local screenGui = Instance.new("ScreenGui") screenGui.Name = "SafeSpeedAdjuster" screenGui.ResetOnSpawn = false local success, coreGui = pcall(function() return game:GetService("CoreGui") end) screenGui.Parent = (success and coreGui) and coreGui or player:WaitForChild("PlayerGui") local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(0, 0, 0, 30) speedLabel.AutomaticSize = Enum.AutomaticSize.X -- Sayıya göre sağa/sola otomatik uzama speedLabel.Position = UDim2.new(0, 20, 0, 20) speedLabel.BackgroundColor3 = Color3.fromRGB(20, 20, 20) speedLabel.BackgroundTransparency = 0.4 -- %60 Opaklık speedLabel.TextColor3 = Color3.fromRGB(0, 255, 0) speedLabel.TextSize = 16 speedLabel.Font = Enum.Font.SourceSansBold speedLabel.Text = "Speed: ?" speedLabel.Active = true speedLabel.ClipsDescendants = true speedLabel.Parent = screenGui -- Yazının kenarlara yapışmaması için boşluk ayarlayıcı local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 10) padding.PaddingRight = UDim.new(0, 10) padding.Parent = speedLabel local speedBox = Instance.new("TextBox") speedBox.Size = UDim2.new(0, 0, 0, 0) speedBox.BackgroundTransparency = 1 speedBox.Text = "" speedBox.TextColor3 = Color3.fromRGB(255, 255, 255) speedBox.TextTransparency = 1 speedBox.ClearTextOnFocus = true speedBox.Parent = speedLabel -- [3] KUSURSUZ SÜRÜKLEME MEKANİZMASI local dragging, dragInput, dragStart, startPos local isJustClick = false -- Sürükleme mi tıklama mı olduğunu ayırt etmek için speedLabel.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true isJustClick = true dragStart = input.Position startPos = speedLabel.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false if isJustClick then isFirstOpen = false speedBox:CaptureFocus() end end end) end end) speedLabel.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 if (input.Position - dragStart).Magnitude > 5 then isJustClick = false -- Eğer 5 pikselden fazla kaydırılırsa tıklama iptal, sürükleme sayılır end local delta = input.Position - dragStart speedLabel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- [4] SAYI GİRİŞİ VE KAPATMA (0) MEKANİZMASI speedBox:GetPropertyChangedSignal("Text"):Connect(function() if speedBox:IsFocused() then speedLabel.Text = speedBox.Text end end) speedBox.FocusLost:Connect(function(enterPressed) local newSpeed = tonumber(speedBox.Text) if newSpeed then if newSpeed == 0 then -- 0 yazıldıysa her şeyi kapat ve hızı normale döndür isScriptActive = false targetSpeed = 16 if player.Character and player.Character:FindFirstChildOfClass("Humanoid") then player.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = 16 end screenGui:Destroy() return else targetSpeed = newSpeed end end if isScriptActive then speedBox.Text = "" speedLabel.Text = tostring(math.floor(targetSpeed)) end end) -- [5] GELİŞMİŞ VE ÇÖKMEYEN ANTI-CHEAT BYPASS if hookmetamethod and checkcaller then local oldIndex, oldNewIndex, oldNameCall oldIndex = hookmetamethod(game, "__index", function(t, k) -- Çökme (Stack Overflow) engellendi: Önce string (k) kontrol ediliyor! if not checkcaller() and k == "WalkSpeed" then if typeof(t) == "Instance" and t:IsA("Humanoid") then return 16 -- Oyun okumaya çalışırsa 16 döner end end return oldIndex(t, k) end) oldNewIndex = hookmetamethod(game, "__newindex", function(t, k, v) if not checkcaller() and k == "WalkSpeed" then if typeof(t) == "Instance" and t:IsA("Humanoid") then return -- Oyun hızı değiştirmeye çalışırsa yoksay (Reddet) end end return oldNewIndex(t, k, v) end) oldNameCall = hookmetamethod(game, "__namecall", function(t, ...) local method = getnamecallmethod() local args = {...} -- Anti-hile, hızın ne zaman değiştiğini takip eden bir sinyal (GetPropertyChangedSignal) kurmak isterse sahte bir event gönder. if not checkcaller() and method == "GetPropertyChangedSignal" and args[1] == "WalkSpeed" then if typeof(t) == "Instance" and t:IsA("Humanoid") then return Instance.new("BindableEvent").Event end end return oldNameCall(t, ...) end) end -- [6] SIFIR KASAN HIZ DÖNGÜSÜ (RunService) local speedLoop speedLoop = RunService.Heartbeat:Connect(function() if not isScriptActive then speedLoop:Disconnect() -- Script kapandıysa döngüyü tamamen yok et return end local character = player.Character if character then local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then if humanoid.WalkSpeed ~= targetSpeed then humanoid.WalkSpeed = targetSpeed end -- Textbox'a yazı yazılmıyorsa ve panel ilk halinde değilse hızı güncelle if not speedBox:IsFocused() and not isFirstOpen then speedLabel.Text = tostring(math.floor(humanoid.WalkSpeed)) end end end end)