-- ✅ YOUR ORIGINAL LOADER GUI -----------------------------

local discordLink = "https://[Log in to view URL]"

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

spawn(function()
    if not game:IsLoaded() then
        game.Loaded:Wait()
    end
    repeat task.wait() until game.Players.LocalPlayer.Character and game.Players.LocalPlayer.PlayerGui:FindFirstChild("LoadingScreenPrefab") == nil
    game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("EndDecision"):FireServer(false)

    _G.Bond = 0
    workspace.RuntimeItems.ChildAdded:Connect(function(v)
        if v.Name:find("Bond") and v:FindFirstChild("Part") then
            v.Destroying:Connect(function()
                _G.Bond += 1
            end)
        end
    end)

    if player.Character:FindFirstChild("Humanoid") then
        workspace.CurrentCamera.CameraSubject = player.Character:FindFirstChild("Humanoid")
    end
    player.CameraMode = "Classic"
    player.CameraMaxZoomDistance = math.huge
    player.CameraMinZoomDistance = 30
    player.Character.HumanoidRootPart.Anchored = true
    wait(0.5)
    repeat task.wait()
        player.Character.HumanoidRootPart.Anchored = true
        wait(0.5)
        player.Character.HumanoidRootPart.CFrame = CFrame.new(80, 3, -9000)
    until workspace.RuntimeItems:FindFirstChild("MaximGun")

    wait(0.3)
    for _, v in pairs(workspace.RuntimeItems:GetChildren()) do
        if v.Name == "MaximGun" and v:FindFirstChild("VehicleSeat") then
            v.VehicleSeat.Disabled = false
            v.VehicleSeat:SetAttribute("Disabled", false)
            v.VehicleSeat:Sit(player.Character:FindFirstChild("Humanoid"))
        end
    end

    wait(0.5)
    for _, v in pairs(workspace.RuntimeItems:GetChildren()) do
        if v.Name == "MaximGun" and v:FindFirstChild("VehicleSeat") and (player.Character.HumanoidRootPart.Position - v.VehicleSeat.Position).Magnitude < 400 then
            player.Character.HumanoidRootPart.CFrame = v.VehicleSeat.CFrame
        end
    end

    wait(1)
    player.Character.HumanoidRootPart.Anchored = false

    repeat
        task.wait()
        for _, v in pairs(workspace.RuntimeItems:GetChildren()) do
            if v.Name == "MaximGun" and v:FindFirstChild("VehicleSeat") and (player.Character.HumanoidRootPart.Position - v.VehicleSeat.Position).Magnitude < 400 then
                player.Character.HumanoidRootPart.CFrame = v.VehicleSeat.CFrame
            end
        end
    until player.Character:FindFirstChild("Humanoid").Sit == true

    wait(0.5)
    player.Character:FindFirstChild("Humanoid").Sit = false
    wait(0.5)

    repeat
        task.wait()
        for _, v in pairs(workspace.RuntimeItems:GetChildren()) do
            if v.Name == "MaximGun" and v:FindFirstChild("VehicleSeat") and (player.Character.HumanoidRootPart.Position - v.VehicleSeat.Position).Magnitude < 400 then
                player.Character.HumanoidRootPart.CFrame = v.VehicleSeat.CFrame
            end
        end
    until player.Character:FindFirstChild("Humanoid").Sit == true

    wait(0.9)
    for _, v in pairs(workspace:GetChildren()) do
        if v:IsA("Model") and v:FindFirstChild("RequiredComponents") then
            if v.RequiredComponents:FindFirstChild("Controls")
                and v.RequiredComponents.Controls:FindFirstChild("ConductorSeat")
                and v.RequiredComponents.Controls.ConductorSeat:FindFirstChild("VehicleSeat") then
                local TpTrain = TweenService:Create(
                    player.Character.HumanoidRootPart,
                    TweenInfo.new(25, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut),
                    {CFrame = v.RequiredComponents.Controls.ConductorSeat.VehicleSeat.CFrame * CFrame.new(0, 20, 0)}
                )
                TpTrain:Play()
                if not player.Character.HumanoidRootPart:FindFirstChild("VelocityHandler") then
                    local bv = Instance.new("BodyVelocity")
                    bv.Name = "VelocityHandler"
                    bv.Parent = player.Character.HumanoidRootPart
                    bv.MaxForce = Vector3.new(100000, 100000, 100000)
                    bv.Velocity = Vector3.new(0, 0, 0)
                end
                TpTrain.Completed:Wait()
            end
        end
    end

    wait(1)
    while true do
        if player.Character:FindFirstChild("Humanoid").Sit == true then
            local TpEnd = TweenService:Create(
                player.Character.HumanoidRootPart,
                TweenInfo.new(17, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut),
                {CFrame = CFrame.new(0.5, -78, -49429)}
            )
            TpEnd:Play()
            if not player.Character.HumanoidRootPart:FindFirstChild("VelocityHandler") then
                local bv = Instance.new("BodyVelocity")
                bv.Name = "VelocityHandler"
                bv.Parent = player.Character.HumanoidRootPart
                bv.MaxForce = Vector3.new(100000, 100000, 100000)
                bv.Velocity = Vector3.new(0, 0, 0)
            end
            repeat task.wait() until workspace.RuntimeItems:FindFirstChild("Bond")
            TpEnd:Cancel()
            for _, v in pairs(workspace.RuntimeItems:GetChildren()) do
                if v.Name:find("Bond") and v:FindFirstChild("Part") then
                    repeat task.wait()
                        if v:FindFirstChild("Part") then
                            player.Character.HumanoidRootPart.CFrame = v.Part.CFrame
                            game:GetService("ReplicatedStorage").Shared.Network.RemotePromise.Remotes.C_ActivateObject:FireServer(v)
                        end
                    until not v:FindFirstChild("Part")
                end
            end
        end
        task.wait()
    end
end)

-- ✅ COUNTER & CLEANUP
spawn(function()
    while bondOverlay.Parent do
        bondCountLabel.Text = "Bonds Collected (+" .. tostring(_G.Bond) .. ")"
        task.wait(0.2)
    end
end)

spawn(function()
    repeat task.wait() until not player.Character or player.Character.Humanoid.Health <= 0
    bondOverlay:Destroy()
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: