Tt

--// PeexHub | TapSim Helper v0.1
--// AUTOMATION UI (NO BYPASS) | CLIENT ONLY | SAFE
--// Features: Auto Click (input), Teleport Island/Egg (scan parts), Auto Golden Craft (UI automation),
--// Auto Rebirth (UI automation), Search, Modern UI, Drag/Minimize/Close

--==================== SERVICES ====================
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local VirtualInputManager = game:GetService("VirtualInputManager")

local player = Players.LocalPlayer
local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
gui.Name = "PeexHub_TapSim"
gui.ResetOnSpawn = false

--==================== UTIL ====================
local function corner(o,r) local c=Instance.new("UICorner",o); c.CornerRadius=UDim.new(0,r) end
local function tween(o,t,p) TweenService:Create(o,TweenInfo.new(t,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),p):Play() end
local function rgbStroke(frame)
    local s=Instance.new("UIStroke",frame); s.Thickness=2
    task.spawn(function()
        local h=0
        while frame.Parent do h=(h+1)%360; s.Color=Color3.fromHSV(h/360,1,1); task.wait(0.04) end
    end)
end
local function safeClick(btn)
    if btn and btn:IsA("GuiButton") and btn.Visible then
        btn:Activate()
        -- fallback virtual click
        local abs=btn.AbsolutePosition+btn.AbsoluteSize/2
        VirtualInputManager:SendMouseButtonEvent(abs.X,abs.Y,0,true,game,0)
        VirtualInputManager:SendMouseButtonEvent(abs.X,abs.Y,0,false,game,0)
        return true
    end
end

--==================== SPLASH ====================
local splash=Instance.new("Frame",gui)
splash.Size=UDim2.fromOffset(260,150)
splash.Position=UDim2.fromScale(0.5,0.45)
splash.AnchorPoint=Vector2.new(0.5,0.5)
splash.BackgroundColor3=Color3.fromRGB(15,18,26)
corner(splash,18)

local logo=Instance.new("ImageLabel",splash)
logo.Image="rbxassetid://7229442422"
logo.Size=UDim2.fromOffset(64,64)
logo.Position=UDim2.fromScale(0.5,-0.4)
logo.AnchorPoint=Vector2.new(0.5,0.5)
logo.BackgroundTransparency=1

local st=Instance.new("TextLabel",splash)
st.Text="PeexHub"
st.Font=Enum.Font.GothamBlack
st.TextSize=18
st.Position=UDim2.fromScale(0.5,0.75)
st.AnchorPoint=Vector2.new(0.5,0.5)
st.BackgroundTransparency=1

TweenService:Create(logo,TweenInfo.new(0.9,Enum.EasingStyle.Bounce),{Position=UDim2.fromScale(0.5,0.35)}):Play()
task.spawn(function() local h=0 while splash.Parent do h=(h+2)%360; st.TextColor3=Color3.fromHSV(h/360,1,1); task.wait(0.04) end end)
task.wait(1.2)
tween(splash,0.4,{BackgroundTransparency=1})
tween(logo,0.4,{ImageTransparency=1})
tween(st,0.4,{TextTransparency=1})
task.wait(0.4)
splash:Destroy()

--==================== MAIN ====================
local main=Instance.new("Frame",gui)
main.Size=UDim2.fromOffset(540,320)
main.Position=UDim2.fromScale(0.5,0.5)
main.AnchorPoint=Vector2.new(0.5,0.5)
main.BackgroundColor3=Color3.fromRGB(18,22,30)
main.BorderSizePixel=0
corner(main,18)
rgbStroke(main)

-- HEADER
local header=Instance.new("Frame",main)
header.Size=UDim2.new(1,0,0,42)
header.BackgroundTransparency=1

local title=Instance.new("TextLabel",header)
title.Text="PeexHub | TapSim v0.1"
title.Font=Enum.Font.GothamBlack
title.TextSize=18
title.Position=UDim2.fromOffset(14,0)
title.Size=UDim2.new(1,-120,1,0)
title.BackgroundTransparency=1
task.spawn(function() local h=0 while title.Parent do h=(h+2)%360; title.TextColor3=Color3.fromHSV(h/360,1,1); task.wait(0.05) end end)

local function topBtn(txt,x)
    local b=Instance.new("TextButton",header)
    b.Text=txt; b.Font=Enum.Font.GothamBold; b.TextSize=14
    b.Size=UDim2.fromOffset(28,28); b.Position=UDim2.fromOffset(x,7)
    b.BackgroundColor3=Color3.fromRGB(40,45,60); b.TextColor3=Color3.new(1,1,1)
    corner(b,8); return b
end
local minBtn=topBtn("-", main.Size.X.Offset-70)
local closeBtn=topBtn("X", main.Size.X.Offset-36)
closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end)

-- DRAG (mouse + touch)
do
    local dragging=false; local dragStart,startPos
    local function start(i) dragging=true; dragStart=i.Position; startPos=main.Position end
    local function move(i) if dragging then local d=i.Position-dragStart
        main.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y) end end
    header.InputBegan:Connect(function(i)
        if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then start(i) end
    end)
    UIS.InputChanged:Connect(function(i)
        if i.UserInputType==Enum.UserInputType.MouseMovement or i.UserInputType==Enum.UserInputType.Touch then move(i) end
    end)
    UIS.InputEnded:Connect(function(i)
        if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then dragging=false end
    end)
end

-- MINIMIZE BUBBLE
local bubble=Instance.new("ImageButton",gui)
bubble.Image="rbxassetid://7229442422"
bubble.Size=UDim2.fromOffset(56,56)
bubble.Position=UDim2.fromScale(0.5,0.82)
bubble.AnchorPoint=Vector2.new(0.5,0.5)
bubble.Visible=false
bubble.BackgroundColor3=Color3.fromRGB(20,20,30)
corner(bubble,28)
minBtn.MouseButton1Click:Connect(function() main.Visible=false; bubble.Visible=true end)
bubble.MouseButton1Click:Connect(function() bubble.Visible=false; main.Visible=true end)

--==================== CONTENT ====================
local content=Instance.new("Frame",main)
content.Position=UDim2.fromOffset(12,46)
content.Size=UDim2.new(1,-24,1,-58)
content.BackgroundTransparency=1

-- LEFT MENU
local menu=Instance.new("UIListLayout",content); menu.FillDirection=Enum.FillDirection.Horizontal; menu.Padding=UDim.new(0,10)

local left=Instance.new("Frame",content)
left.Size=UDim2.new(0,150,1,0); left.BackgroundColor3=Color3.fromRGB(24,28,38); corner(left,14)
local right=Instance.new("Frame",content)
right.Size=UDim2.new(1,-160,1,0); right.BackgroundColor3=Color3.fromRGB(24,28,38); corner(right,14)

local llist=Instance.new("UIListLayout",left); llist.Padding=UDim.new(0,8)
llist.HorizontalAlignment=Enum.HorizontalAlignment.Center; llist.VerticalAlignment=Enum.VerticalAlignment.Top
local rstack=Instance.new("UIListLayout",right); rstack.Padding=UDim.new(0,10)

local function menuBtn(txt)
    local b=Instance.new("TextButton",left)
    b.Text=txt; b.Font=Enum.Font.GothamBold; b.TextSize=14
    b.Size=UDim2.new(1,-16,0,36); b.BackgroundColor3=Color3.fromRGB(40,45,60)
    b.TextColor3=Color3.new(1,1,1); corner(b,10)
    return b
end

local btnAutoClick=menuBtn("Auto Click")
local btnIsland=menuBtn("Teleport Island")
local btnEgg=menuBtn("Teleport Egg")
local btnGolden=menuBtn("Auto Golden")
local btnRebirth=menuBtn("Auto Rebirth")

--==================== RIGHT PANELS ====================
local panels={}
local function showPanel(p)
    for _,v in pairs(panels) do v.Visible=false end
    p.Visible=true
end
local function panel(titleText)
    local p=Instance.new("Frame",right)
    p.Size=UDim2.new(1,-20,1,-20); p.Position=UDim2.fromOffset(10,10)
    p.BackgroundTransparency=1; p.Visible=false
    local t=Instance.new("TextLabel",p)
    t.Text=titleText; t.Font=Enum.Font.GothamBold; t.TextSize=16
    t.TextColor3=Color3.fromRGB(220,230,255); t.BackgroundTransparency=1
    t.Size=UDim2.new(1,0,0,24)
    local body=Instance.new("Frame",p)
    body.Position=UDim2.fromOffset(0,28); body.Size=UDim2.new(1,0,1,-28)
    body.BackgroundTransparency=1
    panels[#panels+1]=p
    return p, body
end

--==================== AUTO CLICK ====================
local pAC, bAC = panel("Auto Click (Input)")
local acToggle=Instance.new("TextButton",bAC)
acToggle.Text="OFF"; acToggle.Size=UDim2.fromOffset(120,36)
acToggle.BackgroundColor3=Color3.fromRGB(120,60,60); acToggle.TextColor3=Color3.new(1,1,1); corner(acToggle,10)
local acSpeed=Instance.new("TextBox",bAC)
acSpeed.PlaceholderText="Delay (ms) ex: 50"; acSpeed.Text="50"
acSpeed.Position=UDim2.fromOffset(0,46); acSpeed.Size=UDim2.fromOffset(180,32)
acSpeed.BackgroundColor3=Color3.fromRGB(40,45,60); acSpeed.TextColor3=Color3.new(1,1,1); corner(acSpeed,8)

local acOn=false
acToggle.MouseButton1Click:Connect(function()
    acOn=not acOn
    acToggle.Text=acOn and "ON" or "OFF"
    acToggle.BackgroundColor3=acOn and Color3.fromRGB(60,140,80) or Color3.fromRGB(120,60,60)
end)

task.spawn(function()
    while gui.Parent do
        if acOn then
            local d=tonumber(acSpeed.Text) or 50
            -- simulate tap anywhere (no remote)
            VirtualInputManager:SendMouseButtonEvent(10,10,0,true,game,0)
            VirtualInputManager:SendMouseButtonEvent(10,10,0,false,game,0)
            task.wait(math.clamp(d,10,500)/1000)
        else task.wait(0.1) end
    end
end)

--==================== TELEPORT ISLAND ====================
local pIS, bIS = panel("Teleport Island")
local searchIS=Instance.new("TextBox",bIS)
searchIS.PlaceholderText="Search Island..."
searchIS.Size=UDim2.fromOffset(220,32)
searchIS.BackgroundColor3=Color3.fromRGB(40,45,60); searchIS.TextColor3=Color3.new(1,1,1); corner(searchIS,8)

local listIS=Instance.new("ScrollingFrame",bIS)
listIS.Position=UDim2.fromOffset(0,40); listIS.Size=UDim2.new(1,0,1,-40)
listIS.AutomaticCanvasSize=Enum.AutomaticSize.Y; listIS.BackgroundTransparency=1
local isLayout=Instance.new("UIListLayout",listIS); isLayout.Padding=UDim.new(0,8)

local function scanIslands()
    listIS:ClearAllChildren(); isLayout.Parent=listIS
    for _,p in ipairs(workspace:GetDescendants()) do
        if p:IsA("BasePart") and p.Name:lower():find("island") then
            local b=Instance.new("TextButton",listIS)
            b.Text=p.Name; b.Size=UDim2.new(1,-12,0,34)
            b.BackgroundColor3=Color3.fromRGB(40,45,60); b.TextColor3=Color3.new(1,1,1); corner(b,10)
            b.MouseButton1Click:Connect(function()
                local hrp=player.Character and player.Character:FindFirstChild("HumanoidRootPart")
                if hrp then hrp.CFrame=p.CFrame*CFrame.new(0,5,6) end -- maju dikit
            end)
        end
    end
end
scanIslands()
searchIS:GetPropertyChangedSignal("Text"):Connect(function()
    for _,c in ipairs(listIS:GetChildren()) do
        if c:IsA("TextButton") then
            c.Visible=c.Text:lower():find(searchIS.Text:lower())~=nil
        end
    end
end)

--==================== TELEPORT EGG ====================
local pEG, bEG = panel("Teleport Egg")
local searchEG=Instance.new("TextBox",bEG)
searchEG.PlaceholderText="Search Egg..."
searchEG.Size=UDim2.fromOffset(220,32)
searchEG.BackgroundColor3=Color3.fromRGB(40,45,60); searchEG.TextColor3=Color3.new(1,1,1); corner(searchEG,8)

local listEG=Instance.new("ScrollingFrame",bEG)
listEG.Position=UDim2.fromOffset(0,40); listEG.Size=UDim2.new(1,0,1,-40)
listEG.AutomaticCanvasSize=Enum.AutomaticSize.Y; listEG.BackgroundTransparency=1
local egLayout=Instance.new("UIListLayout",listEG); egLayout.Padding=UDim.new(0,8)

local function scanEggs()
    listEG:ClearAllChildren(); egLayout.Parent=listEG
    for _,p in ipairs(workspace:GetDescendants()) do
        if p:IsA("BasePart") and p.Name:lower():find("egg") then
            local b=Instance.new("TextButton",listEG)
            b.Text=p.Name; b.Size=UDim2.new(1,-12,0,34)
            b.BackgroundColor3=Color3.fromRGB(40,45,60); b.TextColor3=Color3.new(1,1,1); corner(b,10)
            b.MouseButton1Click:Connect(function()
                local hrp=player.Character and player.Character:FindFirstChild("HumanoidRootPart")
                if hrp then hrp.CFrame=p.CFrame*CFrame.new(0,3,6) end
            end)
        end
    end
end
scanEggs()
searchEG:GetPropertyChangedSignal("Text"):Connect(function()
    for _,c in ipairs(listEG:GetChildren()) do
        if c:IsA("TextButton") then
            c.Visible=c.Text:lower():find(searchEG.Text:lower())~=nil
        end
    end
end)

--==================== AUTO GOLDEN (UI AUTOMATION) ====================
local pGD, bGD = panel("Auto Golden (UI)")
local info=Instance.new("TextLabel",bGD)
info.Text="Buka Golden Machine, script akan klik UI.\nJika ga punya pet/gamepass → server nolak (aman)."
info.Size=UDim2.new(1,0,0,40); info.BackgroundTransparency=1
info.TextColor3=Color3.fromRGB(200,210,230); info.Font=Enum.Font.Gotham; info.TextSize=12

local gStart=Instance.new("TextButton",bGD)
gStart.Text="START"; gStart.Position=UDim2.fromOffset(0,46); gStart.Size=UDim2.fromOffset(120,36)
gStart.BackgroundColor3=Color3.fromRGB(80,120,255); gStart.TextColor3=Color3.new(1,1,1); corner(gStart,10)

gStart.MouseButton1Click:Connect(function()
    -- try find Golden Machine UI buttons and click
    for _,ui in ipairs(player.PlayerGui:GetDescendants()) do
        if ui:IsA("TextButton") and ui.Text and ui.Text:lower():find("craft") then
            safeClick(ui)
        end
    end
end)

--==================== AUTO REBIRTH (UI AUTOMATION) ====================
local pRB, bRB = panel("Auto Rebirth (UI)")
local rbToggle=Instance.new("TextButton",bRB)
rbToggle.Text="OFF"; rbToggle.Size=UDim2.fromOffset(120,36)
rbToggle.BackgroundColor3=Color3.fromRGB(120,60,60); rbToggle.TextColor3=Color3.new(1,1,1); corner(rbToggle,10)
local rbOn=false
rbToggle.MouseButton1Click:Connect(function()
    rbOn=not rbOn
    rbToggle.Text=rbOn and "ON" or "OFF"
    rbToggle.BackgroundColor3=rbOn and Color3.fromRGB(60,140,80) or Color3.fromRGB(120,60,60)
end)

task.spawn(function()
    while gui.Parent do
        if rbOn then
            for _,ui in ipairs(player.PlayerGui:GetDescendants()) do
                if ui:IsA("TextButton") and ui.Text and ui.Text:lower():find("rebirth") then
                    safeClick(ui)
                end
            end
            task.wait(1)
        else task.wait(0.2) end
    end
end)

--==================== MENU WIRING ====================
btnAutoClick.MouseButton1Click:Connect(function() showPanel(pAC) end)
btnIsland.MouseButton1Click:Connect(function() showPanel(pIS) end)
btnEgg.MouseButton1Click:Connect(function() showPanel(pEG) end)
btnGolden.MouseButton1Click:Connect(function() showPanel(pGD) end)
btnRebirth.MouseButton1Click:Connect(function() showPanel(pRB) end)
showPanel(pAC)

Views: 70

Created At: 2025-12-29 11:47:54

View Raw Download Clone