Adaptation support r6 and r15
Key RequiredUniversal

Adaptation support r6 and r15

Universal Scriptsaiwyagarnida79saiwyagarnida79 1.6K views 1.4K executesUpdated Jun 25, 2026
Unrated
00
Lua Script•476 lines (15447 chars)
-- // TikTok : DYTON_txt - GUI langsung muncul //
-- MODIFIED: Efek gradien putih-gold bergerak pada tombol ADAPTATION & READAPT

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local SoundService = game:GetService("SoundService")

local Player = Players.LocalPlayer

local SOUND_ID = "rbxassetid://127579129356842"
local THUMB_URL = "https://www.roblox.com/asset-thumbnail/image?assetId=117272729321296&width=420&height=420&format=png"
local IMAGE_ID = "rbxassetid://106402256086666"
local SFX_URL = "https://github.com/AlrecTofficial67/ItsAlrecT67/raw/refs/heads/main/VID-20260119-WA0242.mp3"
local AUTO_SFX_ID = "rbxassetid://9120385436"
local ROTATE_DURATION = 0.7

-- ========== ANTI-VOID CONFIG ==========
local voidImmune = true
local groundCheckDistance = 150

-- ========== EFEK AURA / GHOST ==========
local function makeGhost(ch)
    if not ch then return end
    ch.Archivable = true
    local g = ch:Clone()
    g.Name = "Soul"
    for _, v in pairs(g:GetDescendants()) do
        if v:IsA("Script") or v:IsA("LocalScript") or v:IsA("Humanoid") then
            v:Destroy()
        elseif v:IsA("BasePart") then
            v.Anchored = true
            v.CanCollide = false
            v.Material = Enum.Material.Neon
            v.Color = Color3.fromRGB(255, 200, 50)
            v.Transparency = 0.5
            TweenService:Create(v, TweenInfo.new(0.4), {Transparency = 1}):Play()
        elseif v:IsA("Decal") or v:IsA("Texture") then
            v:Destroy()
        end
    end
    g.Parent = workspace
    game:GetService("Debris"):AddItem(g, 0.4)
end

-- ========== WHEEL ROTATION EFFECT ==========
local function PlayWheelEffect()
    local guiEffect = Instance.new("ScreenGui")
    guiEffect.Name = "WheelEffectUI"
    guiEffect.IgnoreGuiInset = true
    guiEffect.Parent = game.CoreGui or Player.PlayerGui
    
    local img = Instance.new("ImageLabel")
    img.Parent = guiEffect
    img.Size = UDim2.fromOffset(200, 200)
    img.Position = UDim2.fromScale(0.5, 0.5)
    img.AnchorPoint = Vector2.new(0.5, 0.5)
    img.BackgroundTransparency = 1
    img.Image = IMAGE_ID
    img.ImageTransparency = 1
    img.Rotation = 0
    
    img.ImageTransparency = 0
    local rotateTween = TweenService:Create(img, TweenInfo.new(ROTATE_DURATION, Enum.EasingStyle.Linear), {Rotation = 360})
    local fadeImg = TweenService:Create(img, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0, false, ROTATE_DURATION), {ImageTransparency = 1})
    rotateTween:Play()
    fadeImg:Play()
    
    task.spawn(function()
        task.wait(ROTATE_DURATION + 0.5)
        guiEffect:Destroy()
    end)
end

local getAsset = nil
if getcustomasset then getAsset = getcustomasset
elseif getsynasset then getAsset = getsynasset
elseif getasset then getAsset = getasset
end

local fileName = SFX_URL:match("([^/]+)$")
if getAsset then
    if not pcall(function() readfile(fileName) end) then
        local ok, data = pcall(function() return game:HttpGet(SFX_URL) end)
        if ok and data then writefile(fileName, data) end
    end
end

-- ========== FLASHBACK SYSTEM ==========
local flashbacklength = 60
local flashbackspeed = 1
local frames = {}
local flashbackActive = false
local autoAdaptEnabled = false

local function GetActiveAnimations(hum)
    local activeAnims = {}
    local animator = hum:FindFirstChildOfClass("Animator")
    if animator then
        for _, track in pairs(animator:GetPlayingAnimationTracks()) do
            table.insert(activeAnims, {Track = track, Time = track.TimePosition, AnimId = track.Animation.AnimationId})
        end
    end
    return activeAnims
end

local function recordFrame(char, hrp, hum)
    if #frames > flashbacklength * 60 then table.remove(frames, 1) end
    table.insert(frames, {
        hrp.CFrame,
        hrp.AssemblyLinearVelocity,
        hrp.AssemblyAngularVelocity,
        hum:GetState(),
        hum.PlatformStand,
        GetActiveAnimations(hum)
    })
end

local function revertFrame(char, hrp, hum)
    if #frames <= 1 then
        flashbackActive = false
        return
    end
    for i = 1, flashbackspeed do
        if #frames > 1 then table.remove(frames, #frames) end
    end
    local lastframe = frames[#frames]
    table.remove(frames, #frames)
    if lastframe and hrp then
        hrp.CFrame = lastframe[1]
        hrp.AssemblyLinearVelocity = Vector3.new(0,0,0)
        hrp.AssemblyAngularVelocity = Vector3.new(0,0,0)
        hum:ChangeState(lastframe[4] == Enum.HumanoidStateType.Dead and Enum.HumanoidStateType.Running or lastframe[4])
        hum.PlatformStand = true
        local animData = lastframe[6]
        if animData then
            for _, data in pairs(animData) do
                if data.Track and data.Track.IsPlaying then
                    data.Track.TimePosition = data.Time
                    data.Track:AdjustSpeed(0)
                end
            end
        end
    end
end

-- ========== ANTI-VOID FUNCTIONS ==========
local function findNearestGround(pos)
    local rayParams = RaycastParams.new()
    rayParams.FilterType = Enum.RaycastFilterType.Blacklist
    rayParams.FilterDescendantsInstances = {Player.Character}
    
    local rayResult = workspace:Raycast(pos, Vector3.new(0, -groundCheckDistance, 0), rayParams)
    if rayResult then
        return rayResult.Position + Vector3.new(0, 3, 0)
    end
    
    local nearest = nil
    local minDist = groundCheckDistance
    for _, part in ipairs(workspace:GetDescendants()) do
        if part:IsA("BasePart") and part.CanCollide and part.Parent ~= Player.Character then
            local dist = (pos - part.Position).Magnitude
            if dist < minDist and part.Position.Y > -100 then
                minDist = dist
                nearest = part.Position + Vector3.new(0, 3, 0)
            end
        end
    end
    return nearest or CFrame.new(pos.X, 100, pos.Z).Position
end

-- ========== SOUND ==========
local function PlayAdaptSound()
    local sound = Instance.new("Sound")
    if getAsset and pcall(function() return getAsset(fileName) end) then
        sound.SoundId = getAsset(fileName)
    else
        sound.SoundId = SOUND_ID
    end
    sound.Volume = 1
    sound.Parent = SoundService
    sound:Play()
    task.spawn(function()
        sound.Ended:Wait()
        sound:Destroy()
    end)
end

local function PlayAutoAdaptSound()
    local sound = Instance.new("Sound")
    sound.SoundId = AUTO_SFX_ID
    sound.Volume = 0.6
    sound.Parent = SoundService
    sound:Play()
    task.spawn(function()
        sound.Ended:Wait()
        sound:Destroy()
    end)
end

-- ========== CHECK FLING AUTO ==========
local function checkFlingAuto()
    if not autoAdaptEnabled then return false end
    local char = Player.Character
    if not char then return false end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    local hum = char:FindFirstChildWhichIsA("Humanoid")
    if not hrp or not hum or hum.Health <= 0 then return false end
    
    local velocity = hrp.AssemblyLinearVelocity
    if velocity.Magnitude > 120 then
        return true
    end
    return false
end

-- ========== UPDATE STATUS ==========
local adaptStatusText = nil
local btnAdapt = nil

local function updateUI()
    if btnAdapt then
        if flashbackActive then
            btnAdapt.Text = "ADAPTATION"
            btnAdapt.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
            btnAdapt.TextColor3 = Color3.fromRGB(42, 20, 6)
            -- Matikan gradien sementara
            local grad = btnAdapt:FindFirstChildOfClass("UIGradient")
            if grad then grad.Enabled = true end
        else
            btnAdapt.Text = "ADAPTATION"
            btnAdapt.BackgroundColor3 = Color3.fromRGB(255,255,255)
            btnAdapt.TextColor3 = Color3.fromRGB(42, 20, 6)
            local grad = btnAdapt:FindFirstChildOfClass("UIGradient")
            if grad then grad.Enabled = true end
        end
    end
    if adaptStatusText then
        if autoAdaptEnabled then
            adaptStatusText.Text = "ADAPT: ON"
            adaptStatusText.TextColor3 = Color3.fromRGB(0, 255, 0)
        else
            adaptStatusText.Text = "ADAPT: OFF"
            adaptStatusText.TextColor3 = Color3.fromRGB(200, 20, 20)
        end
    end
end

local function toggleAutoAdapt()
    autoAdaptEnabled = not autoAdaptEnabled
    updateUI()
    if autoAdaptEnabled then
        PlayAutoAdaptSound()
    end
end

-- ========== ADAPT FUNCTION ==========
local function adapt()
    if flashbackActive or #frames == 0 then return end
    flashbackActive = true
    PlayAdaptSound()
    PlayWheelEffect()
    updateUI()
    
    task.spawn(function()
        while flashbackActive and Player.Character do
            local char = Player.Character
            if char then
                makeGhost(char)
            end
            
            local hrp = Player.Character:FindFirstChild("HumanoidRootPart")
            local hum = Player.Character:FindFirstChildWhichIsA("Humanoid")
            if hrp and hum then
                revertFrame(Player.Character, hrp, hum)
                if #frames <= 1 then
                    flashbackActive = false
                    updateUI()
                    break
                end
            end
            RunService.Heartbeat:Wait()
        end
    end)
end

local function cancelAdapt()
    if flashbackActive then
        flashbackActive = false
        updateUI()
        local char = Player.Character
        if char then
            local hum = char:FindFirstChildWhichIsA("Humanoid")
            if hum then
                hum.PlatformStand = false
            end
        end
    end
end

-- ========== MAIN LOOP ==========
RunService.Heartbeat:Connect(function()
    local char = Player.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    local hum = char:FindFirstChildWhichIsA("Humanoid")
    if not hrp or not hum or hum.Health <= 0 then return end
    
    if hrp.Position.Y < -50 then
        if voidImmune then
            local safePos = findNearestGround(hrp.Position)
            hrp.CFrame = CFrame.new(safePos)
            hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
            hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
            if hum.Health < hum.MaxHealth then
                hum.Health = hum.MaxHealth
            end
        else
            hrp.CFrame = CFrame.new(hrp.Position.X, 50, hrp.Position.Z)
            hrp.AssemblyLinearVelocity = Vector3.new(0,0,0)
        end
    end
    
    if checkFlingAuto() and not flashbackActive then
        adapt()
    end
    
    if flashbackActive then
        revertFrame(char, hrp, hum)
        if #frames <= 1 then
            flashbackActive = false
            updateUI()
        end
    else
        recordFrame(char, hrp, hum)
    end
end)

-- ========== GUI ==========
local gui = Instance.new("ScreenGui")
gui.Name = "Adapt"
gui.ResetOnSpawn = false

if gethui then
    gui.Parent = gethui()
elseif syn and syn.protect_gui then
    gui.Parent = Player.PlayerGui
    syn.protect_gui(gui)
else
    gui.Parent = Player:WaitForChild("PlayerGui")
end

local container = Instance.new("Frame", gui)
container.Size = UDim2.new(0, 200, 0, 200)
container.Position = UDim2.new(0, 10, 1, -210)
container.BackgroundTransparency = 1
container.Active = true
container.Draggable = true
container.Visible = true

local mainFrame = Instance.new("Frame", container)
mainFrame.Size = UDim2.new(0, 205, 0, 55)
mainFrame.Position = UDim2.new(0, 0, 0, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(0,0,0)
mainFrame.BackgroundTransparency = 0
mainFrame.BorderSizePixel = 0
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10)

local buttonBar = Instance.new("Frame", mainFrame)
buttonBar.Size = UDim2.new(1, 0, 1, 0)
buttonBar.Position = UDim2.new(0, 0, 0, 0)
buttonBar.BackgroundTransparency = 1

-- ========== GOLDEN BUTTON DENGAN GRADIEN PUTIH-GOLD BERGERAK ==========
local function goldenBtn(parent, text, x, w)
    local btn = Instance.new("TextButton", parent)
    btn.Size = UDim2.new(0, w or 120, 0, 41)
    btn.Position = UDim2.new(0, x, 0.5, -20)
    btn.Text = text
    btn.TextColor3 = Color3.fromRGB(42, 20, 6)
    btn.BackgroundColor3 = Color3.fromRGB(255, 255,255)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 11
    btn.BorderSizePixel = 0
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
    
    -- GRADIEN PUTIH-GOLD BERGERAK (kiri-kanan / horizontal)
    local grad = Instance.new("UIGradient", btn)
    grad.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 120, 0)),      -- Gold
        ColorSequenceKeypoint.new(0.3, Color3.fromRGB(255, 255, 255)), -- Putih
        ColorSequenceKeypoint.new(0.6, Color3.fromRGB(150, 120, 0)),  -- Gold gelap
        ColorSequenceKeypoint.new(1, Color3.fromRGB(150, 120, 0))       -- Gold
    })
    grad.Rotation = 35  -- biar gradien diagonal
    
    -- ANIMASI GRADIEN BERGERAK TERUS MENERUS (kiri ke kanan, balik)
    task.spawn(function()
        local forward = true
        local offset = 0
        while btn and btn.Parent do
            if forward then
                offset = offset + 0.02
                if offset >= 1 then
                    forward = talse
                end
            else
                offset = offset - 0.02
                if offset <= 0 then
                    forward = true
                end
            end
            grad.Offset = Vector2.new(offset, 0)
            task.wait(0.02)
        end
    end)
    
    return btn
end

btnAdapt = goldenBtn(buttonBar, "ADAPTATION", 6, 95)
local btnRead = goldenBtn(buttonBar, "READAPT", 105, 94)

local thumbImage = Instance.new("ImageLabel", container)
thumbImage.Size = UDim2.new(0, 89, 0, 90)
thumbImage.Position = UDim2.new(0.5, -40, 0, 61)
thumbImage.BackgroundTransparency = 1
thumbImage.BorderSizePixel = 0
thumbImage.Image = THUMB_URL
thumbImage.ZIndex = 6
Instance.new("UICorner", thumbImage).CornerRadius = UDim.new(1, 0)

adaptStatusText = Instance.new("TextLabel", container)
adaptStatusText.Size = UDim2.new(1, 0, 0, 20)
adaptStatusText.Position = UDim2.new(0, 0, 1, -39)
adaptStatusText.BackgroundTransparency = 1
adaptStatusText.Text = "ADAPT: ON"
adaptStatusText.TextColor3 = Color3.fromRGB(0, 255, 0)
adaptStatusText.Font = Enum.Font.Code
adaptStatusText.TextSize = 10
adaptStatusText.TextXAlignment = Enum.TextXAlignment.Center

local invisibleToggle = Instance.new("TextButton", container)
invisibleToggle.Size = adaptStatusText.Size
invisibleToggle.Position = adaptStatusText.Position
invisibleToggle.BackgroundTransparency = 1
invisibleToggle.Text = ""

invisibleToggle.MouseButton1Click:Connect(function()
    toggleAutoAdapt()
end)

btnAdapt.MouseButton1Click:Connect(function()
    if flashbackActive then
        cancelAdapt()
    else
        adapt()
    end
end)

btnRead.MouseButton1Click:Connect(cancelAdapt)

updateUI()

Player.CharacterAdded:Connect(function()
    frames = {}
    if flashbackActive then
        flashbackActive = false
        updateUI()
    end
end)

print("ADAPTATION SCRIPT LOADED - ANTI-VOID IMMUNE ACTIVE")
print("Efek gradien PUTIH-GOLD BERGERAK pada tombol ADAPTATION & READAPT")
print("Klik teks 'ADAPT : ON/OFF' untuk toggle auto adapt")

Features & Information

Idkk

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts