Description
- Auto Buy Steps - Auto Equip Best Step - Auto Train at Selected Treadmill {} - Auto Rebirth - Auto Buy Trails - Auto Equip Best Trails - Auto Win
GAME+1 Speed Squish keyboard Escape!
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6aab163ac9ac0feb6732774a"))()
end)
end)
--[[rscripts:analytics:end]]
-- @hidevin | +1 Speed Squish keyboard Escape!
-- ObsidianUltra | design tokens from UI_STYLE.json | features from GAME_FEATURES.md
local Repo = "https://raw.githubusercontent.com/joustingmatch/ObsidianUltra/main/"
local Library = loadstring(game:HttpGet(Repo .. "Library.lua"))()
local ThemeManager = loadstring(game:HttpGet(Repo .. "addons/ThemeManager.lua"))()
local SaveManager = loadstring(game:HttpGet(Repo .. "addons/SaveManager.lua"))()
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local VirtualUser = game:GetService("VirtualUser")
local LocalPlayer = Players.LocalPlayer
local Options = Library.Options
local Toggles = Library.Toggles
local TOK = { Bg = Color3.fromRGB(13,13,13), Card = Color3.fromRGB(40,40,40), Border = Color3.fromRGB(58,58,58), Accent = Color3.fromRGB(88,101,242), Heading = Color3.fromRGB(255,255,255) }
pcall(function()
Library.Scheme.BackgroundColor = TOK.Bg
Library.Scheme.MainColor = TOK.Card
Library.Scheme.OutlineColor = TOK.Border
Library.Scheme.AccentColor = TOK.Accent
Library.Scheme.FontColor = TOK.Heading
end)
local Cfg = nil
pcall(function() Cfg = require(ReplicatedStorage:WaitForChild("Config")) end)
local STEP_AWARDS = (Cfg and Cfg.STEP_AWARDS) or {
Award1={Bonus=1,ReqWins=0},Award2={Bonus=2,ReqWins=3},Award3={Bonus=5,ReqWins=15},Award4={Bonus=25,ReqWins=100},
Award5={Bonus=50,ReqWins=500},Award6={Bonus=100,ReqWins=2500},Award7={Bonus=250,ReqWins=15000},Award8={Bonus=500,ReqWins=50000},
}
local TRAILS_CFG = (Cfg and Cfg.TRAILS) or {
GreenTrail={Multiplier=1.5,Price=500},BlueTrail={Multiplier=2,Price=1500},PurpleTrail={Multiplier=3,Price=5000},
RedTrail={Multiplier=4,Price=25000},RainbowTrail={Multiplier=5,Price=100000},GalaxyTrail={Multiplier=10,Price=0},
CosmicTrail={Multiplier=100,Price=5000000},VoidTrail={Multiplier=1000,Price=50000000},
SupernovaTrail={Multiplier=10000,Price=500000000},GodlikeTrail={Multiplier=100000,Price=5000000000},InfinityTrail={Multiplier=5000000,Price=0},
}
local SPEED_UPGRADES = (Cfg and Cfg.SPEED_UPGRADES) or {
{Tier=1,Multiplier=2,Price=3},{Tier=2,Multiplier=4,Price=9},{Tier=3,Multiplier=8,Price=24},{Tier=4,Multiplier=16,Price=39},
{Tier=5,Multiplier=32,Price=79},{Tier=6,Multiplier=64,Price=129},{Tier=7,Multiplier=128,Price=199},{Tier=8,Multiplier=256,Price=299},
{Tier=9,Multiplier=512,Price=449},{Tier=10,Multiplier=1024,Price=649},{Tier=11,Multiplier=2048,Price=949},{Tier=12,Multiplier=4096,Price=1375},
}
local WIN_AMOUNTS = (Cfg and Cfg.WIN_AMOUNTS) or {WinBlock1=1,WinBlock2=3,WinBlock3=10,WinBlock4=20,WinBlock5=50,WinBlock6=100,WinBlock7=150,WinBlock8=300,WinBlock9=500,WinBlock10=1000,WinBlock11=2500,WinBlock12=10000,WinBlock13=25000}
local Remotes = ReplicatedStorage:WaitForChild("Remotes")
local ClientState = nil
pcall(function() ClientState = require(ReplicatedStorage:WaitForChild("ClientState")) end)
local function Data() if ClientState and type(ClientState.Data)=="table" then return ClientState.Data end return nil end
local function GetWins()
local d=Data()
if d and d.Wins then return tonumber(d.Wins) or 0 end
local ls=LocalPlayer:FindFirstChild("leaderstats")
local w=ls and ls:FindFirstChild("Wins")
return (w and tonumber(w.Value)) or 0
end
local function GetLevel()
local d=Data()
if d and d.Level then return tonumber(d.Level) or 1 end
return 1
end
local function GetEquippedStep()
local d=Data()
if d and d.EquippedStepAward then return tostring(d.EquippedStepAward) end
return "Award1"
end
local function GetOwnedTrails()
local d=Data()
if d and type(d.OwnedTrails)=="table" then return d.OwnedTrails end
return {}
end
local function GetEquippedTrail()
local d=Data()
if d and d.EquippedTrail then return tostring(d.EquippedTrail) end
return "None"
end
local function GetSpeedTier()
local d=Data()
if d and d.CurrentSpeedTier then return tonumber(d.CurrentSpeedTier) or 0 end
return 0
end
local function HRP()
local c=LocalPlayer.Character
if c then return c:FindFirstChild("HumanoidRootPart") end
return nil
end
local function TeleportTo(pos)
local hrp=HRP()
if not hrp then return false end
pcall(function() hrp.CFrame = CFrame.new(pos + Vector3.new(0,4,0)) end)
return true
end
local function Notify(msg,title)
pcall(function() Library:Notify({Title=title or "@hidevin",Description=tostring(msg),Time=3}) end)
end
local function ScanTreadmills()
local out={}
for _,m in pairs(Workspace:GetChildren()) do
if m:IsA("Model") and string.find(m.Name,"Treadmill") then
local ok,cf=pcall(function() return m:GetPivot() end)
if ok and cf then table.insert(out,{Name=m.Name,Pos=cf.Position}) end
end
end
local names,seen,map={},{},{}
for _,t in pairs(out) do
local n=t.Name
local c=1
while seen[n] do c=c+1 n=t.Name.."-"..c end
seen[n]=true
table.insert(names,n)
map[n]=t.Pos
end
table.sort(names)
return names,map
end
-- Full map from fly-crawl (StreamingEnabled hides far plates until visited)
local WIN_POSITIONS={
["WinBlock1 (+1)"]=Vector3.new(-501.27,202.86,-1960.38),
["WinBlock2 (+3)"]=Vector3.new(-505.15,202.39,-1498.51),
["WinBlock3 (+10)"]=Vector3.new(-504.63,202.39,-1746.96),
["WinBlock4 (+20)"]=Vector3.new(-505.16,202.69,-1246.94),
["WinBlock5 (+50)"]=Vector3.new(-502.99,253.38,-763.21),
["WinBlock6 (+100)"]=Vector3.new(-500.15,247.38,-283.24),
["WinBlock7 (+150)"]=Vector3.new(-499.82,202.68,-966.49),
["WinBlock8 (+300)"]=Vector3.new(-498.87,247.34,638.20),
["WinBlock9 (+500)"]=Vector3.new(-501.72,222.33,2560.09),
["WinBlock10 (+1000)"]=Vector3.new(-504.03,222.32,1848.49),
["WinBlock11 (+2500)"]=Vector3.new(-500.53,612.33,2667.91),
["WinBlock12 (+10000)"]=Vector3.new(-501.38,612.33,3312.97),
["WinBlock13 (+25000)"]=Vector3.new(-498.89,612.33,4314.18),
}
local function ScanWinBlocks()
local names,map={},{}
for label,pos in pairs(WIN_POSITIONS) do table.insert(names,label) map[label]=pos end
for _,v in pairs(Workspace:GetDescendants()) do
if v:IsA("BasePart") and string.find(v.Name,"WinBlock") then
local amt=WIN_AMOUNTS[v.Name] or 0
local label=v.Name.." (+"..tostring(amt)..")"
if not map[label] then table.insert(names,label) map[label]=v.Position else map[label]=v.Position end
end
end
table.sort(names, function(a,b)
local na=tonumber(string.match(a,"%+(%d+)")) or 0
local nb=tonumber(string.match(b,"%+(%d+)")) or 0
return na<nb
end)
return names,map
end
local TreadNames,TreadMap=ScanTreadmills()
if #TreadNames==0 then TreadNames={"Treadmill"} TreadMap={} end
local WinNames,WinMap=ScanWinBlocks()
if #WinNames==0 then WinNames={"WinBlock1 (+1)"} end
local GameName="+1 Speed Squish keyboard Escape!"
pcall(function()
local info=game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId)
if info and info.Name then GameName=info.Name end
end)
local Window=Library:CreateWindow({
Title="@hidevin",
Footer={GameName.." | ",{Text="Leave a like on Rscripts if it works. @hidevin",Copyable=true}},
CopyableFooter=true,
DisableSearch=true,
ToggleKeybind=Enum.KeyCode.RightShift,
CornerRadius=10,
Minimizable=true,
ShowCustomCursor=true,
NotifySide="Right",
EnableSidebarResize=true,
})
local Tabs={
Main=Window:AddTab({Name="Main",Icon="user",Description="Dashboard",SingleColumn=true}),
Farming=Window:AddTab({Name="Farming",Icon="sprout",Description="Training + wins"}),
Inventory=Window:AddTab({Name="Inventory",Icon="backpack",Description="Steps + trails"}),
Rebirth=Window:AddTab({Name="Rebirth",Icon="refresh-ccw",Description="Rebirth loop"}),
Settings=Window:AddTab({Name="Settings",Icon="settings",Description="Config + AFK"}),
}
do
Tabs.Main:AddPlayerInfo("MainBanner",{Title="Welcome, <b>@hidevin</b>",Description={GameName.." — dashboard","Pick Farming / Inventory / Rebirth for features."},ThumbnailType="HeadShot",Height=84})
local Info=Tabs.Main:AddGroupbox({Name="Session",IconName="info"})
Info:AddLabel("GameLabel",{Text="Game: "..GameName,DoesWrap=true})
Info:AddLabel("StatusLabel",{Text="Status: loading...",DoesWrap=true})
Info:AddLabel("SessionLabel",{Text="Session: 0s",DoesWrap=true})
task.spawn(function()
local t0=os.clock()
while not Library.Unloaded do
task.wait(1)
pcall(function()
Options.StatusLabel:SetText(string.format("Wins: %d | Tier: %d | Step: %s | Trail: %s",GetWins(),GetSpeedTier(),GetEquippedStep(),GetEquippedTrail()))
Options.SessionLabel:SetText(string.format("Session: %ds | Level: %d",math.floor(os.clock()-t0),GetLevel()))
end)
end
end)
end
Tabs.Farming:SetSubTabAlignment("Center")
local FarmTrain=Tabs.Farming:AddSubTab({Name="Training",Icon="dumbbell"})
local FarmWins=Tabs.Farming:AddSubTab({Name="Wins",Icon="trophy"})
do
local G=FarmTrain:AddLeftGroupbox("Auto Train","dumbbell")
G:AddDropdown("TrainTreadmill",{Text="Treadmill",Values=TreadNames,Default=1,Searchable=true})
G:AddToggle("AutoTrain",{Text="Auto Train at Selected Treadmill",Default=false,Tooltip="Stand on conveyor (1s loop)"})
G:AddButton({Text="Teleport to Selected",Func=function()
local sel=Options.TrainTreadmill.Value
local pos=TreadMap[sel]
if pos then TeleportTo(pos) Notify("Teleported: "..tostring(sel)) else Notify("Not found — rescanning") end
end})
G:AddButton({Text="Rescan Treadmills",Func=function()
TreadNames,TreadMap=ScanTreadmills()
pcall(function() Options.TrainTreadmill:SetValues(TreadNames) end)
Notify("Found "..#TreadNames.." treadmills")
end})
Toggles.AutoTrain:OnChanged(function()
if not Toggles.AutoTrain.Value then return end
task.spawn(function()
while Toggles.AutoTrain.Value and not Library.Unloaded do
task.wait(1)
pcall(function()
local sel=Options.TrainTreadmill.Value
local pos=TreadMap[sel]
local hrp=HRP()
if pos and hrp and (hrp.Position-pos).Magnitude>15 then TeleportTo(pos) end
end)
end
end)
end)
local W=FarmWins:AddLeftGroupbox("Auto Win","trophy")
W:AddDropdown("WinTarget",{Text="Win plate",Values=WinNames,Default=#WinNames,Searchable=true})
W:AddToggle("AutoWin",{Text="Auto Win (selected plate)",Default=false,Tooltip="Re-teleports to the selected plate every 1.1s"})
W:AddButton({Text="Teleport to Selected Plate",Func=function()
local sel=Options.WinTarget.Value
local pos=WinMap[sel]
if pos then TeleportTo(pos) Notify("Teleported: "..tostring(sel)) else Notify("Plate not found") end
end})
W:AddButton({Text="Rescan Win Plates",Func=function()
WinNames,WinMap=ScanWinBlocks()
pcall(function() Options.WinTarget:SetValues(WinNames) end)
Notify("Found "..#WinNames.." win plates")
end})
local WR=FarmWins:AddRightGroupbox("Notes","info")
WR:AddLabel("All 13 plates mapped by fly-crawl (amounts +1 to +25K). List sorted by wins.",true)
Toggles.AutoWin:OnChanged(function()
if not Toggles.AutoWin.Value then return end
task.spawn(function()
while Toggles.AutoWin.Value and not Library.Unloaded do
pcall(function()
local sel=Options.WinTarget.Value or WinNames[#WinNames]
local pos=WinMap[sel]
if pos then TeleportTo(pos) end
end)
task.wait(1.1)
end
end)
end)
end
Tabs.Inventory:SetSubTabAlignment("Center")
local InvSteps=Tabs.Inventory:AddSubTab({Name="Steps",Icon="footprints"})
local InvTrails=Tabs.Inventory:AddSubTab({Name="Trails",Icon="wind"})
do
local S=InvSteps:AddLeftGroupbox("Steps","footprints")
S:AddToggle("AutoBuySteps",{Text="Auto Buy Steps",Default=false,Tooltip="Buys next tier when affordable (1s)"})
S:AddToggle("AutoBestStep",{Text="Auto Equip Best Step",Default=false,Tooltip="Equips highest Award unlocked (1s)"})
S:AddButton({Text="Equip Best Now",Func=function()
local wins=GetWins()
local best="Award1"
local bestReq=-1
for id,info in pairs(STEP_AWARDS) do
if wins>=(info.ReqWins or 0) and (info.ReqWins or 0)>=bestReq then best=id bestReq=info.ReqWins end
end
pcall(function() Remotes.EquipStepAward:FireServer(best) end)
Notify("Equipped "..best)
end})
Toggles.AutoBestStep:OnChanged(function()
if not Toggles.AutoBestStep.Value then return end
task.spawn(function()
while Toggles.AutoBestStep.Value and not Library.Unloaded do
task.wait(1)
pcall(function()
local wins=GetWins()
local cur=GetEquippedStep()
local curInfo=STEP_AWARDS[cur]
local curReq=curInfo and curInfo.ReqWins or -1
local best=cur
local bestReq=curReq
for id,info in pairs(STEP_AWARDS) do
if wins>=(info.ReqWins or 0) and (info.ReqWins or 0)>bestReq then best=id bestReq=info.ReqWins end
end
if best~=GetEquippedStep() then Remotes.EquipStepAward:FireServer(best) end
end)
end
end)
end)
Toggles.AutoBuySteps:OnChanged(function()
if not Toggles.AutoBuySteps.Value then return end
task.spawn(function()
while Toggles.AutoBuySteps.Value and not Library.Unloaded do
task.wait(1)
pcall(function()
local wins=GetWins()
local tier=GetSpeedTier()
local nextUp=nil
for _,u in pairs(SPEED_UPGRADES) do
if u.Tier==tier+1 then nextUp=u break end
end
if nextUp and wins>=(nextUp.Price or 0) then
pcall(function() Remotes.FunnelShop:FireServer(nextUp.Tier) end)
pcall(function() Remotes.FunnelShop:FireServer("Buy",nextUp.Tier) end)
end
end)
end
end)
end)
local T=InvTrails:AddLeftGroupbox("Trails","wind")
T:AddToggle("AutoBuyTrails",{Text="Auto Buy Trails",Default=false,Tooltip="Buys cheapest affordable (1s)"})
T:AddToggle("AutoBestTrail",{Text="Auto Equip Best Trail",Default=false,Tooltip="Equips best owned (1s)"})
T:AddButton({Text="Equip Best Owned Now",Func=function()
local owned=GetOwnedTrails()
local best=nil
local bestMult=-1
for k,_ in pairs(owned) do
local cfg=TRAILS_CFG[k]
local m=(type(cfg)=="table" and cfg.Multiplier) or 0
if m>bestMult then best=k bestMult=m end
end
if best then pcall(function() Remotes.EquipTrail:FireServer(best) end) Notify("Equipped "..best) else Notify("No trails owned yet") end
end})
Toggles.AutoBuyTrails:OnChanged(function()
if not Toggles.AutoBuyTrails.Value then return end
task.spawn(function()
while Toggles.AutoBuyTrails.Value and not Library.Unloaded do
task.wait(1)
pcall(function()
local wins=GetWins()
local owned=GetOwnedTrails()
local order={}
for k,cfg in pairs(TRAILS_CFG) do
local price=(type(cfg)=="table" and cfg.Price) or math.huge
if price>0 and not owned[k] and wins>=price then table.insert(order,{k=k,price=price}) end
end
table.sort(order,function(a,b) return a.price<b.price end)
if order[1] then Remotes.BuyTrail:InvokeServer(order[1].k) end
end)
end
end)
end)
Toggles.AutoBestTrail:OnChanged(function()
if not Toggles.AutoBestTrail.Value then return end
task.spawn(function()
while Toggles.AutoBestTrail.Value and not Library.Unloaded do
task.wait(1)
pcall(function()
local owned=GetOwnedTrails()
local cur=GetEquippedTrail()
local curCfg=TRAILS_CFG[cur]
local curMult=(type(curCfg)=="table" and curCfg.Multiplier) or -1
local best=cur
local bestMult=curMult
for k,_ in pairs(owned) do
local cfg=TRAILS_CFG[k]
local m=(type(cfg)=="table" and cfg.Multiplier) or 0
if m>bestMult then best=k bestMult=m end
end
if best~=GetEquippedTrail() then Remotes.EquipTrail:FireServer(best) end
end)
end
end)
end)
end
do
local R=Tabs.Rebirth:AddLeftGroupbox("Rebirth","refresh-ccw")
R:AddToggle("AutoRebirth",{Text="Auto Rebirth",Default=false,Tooltip="Fires when eligible (1s)"})
R:AddButton({Text="Rebirth Now",Func=function() pcall(function() Remotes.Rebirth:FireServer() end) end})
local N=Tabs.Rebirth:AddRightGroupbox("Tiers","list")
N:AddLabel("Lv15 x1.5, Lv25 x2, Lv40 x2.5, Lv60 x3, Lv100 x4, Lv200 x10. Endgame x100M+.",true)
Toggles.AutoRebirth:OnChanged(function()
if not Toggles.AutoRebirth.Value then return end
task.spawn(function()
while Toggles.AutoRebirth.Value and not Library.Unloaded do
task.wait(1)
pcall(function() Remotes.Rebirth:FireServer() end)
end
end)
end)
end
do
local M=Tabs.Settings:AddLeftGroupbox("Menu","wrench")
M:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind",{Default="RightShift",NoUI=true,Text="Menu keybind"})
M:AddToggle("ShowCustomCursor",{Text="Custom Cursor",Default=Library.ShowCustomCursor,Callback=function(v) Library.ShowCustomCursor=v end})
M:AddSlider("CornerRadius",{Text="Corner Radius",Default=10,Min=0,Max=20,Rounding=0,Callback=function(v) Window:SetCornerRadius(v) end})
M:AddButton("Unload",function() Library:Unload() end)
Library.ToggleKeybind=Options.MenuKeybind
local A=Tabs.Settings:AddRightGroupbox("Safety","shield")
A:AddToggle("AntiAFK",{Text="Anti-AFK",Default=true,Tooltip="Prevents idle kick"})
Toggles.AntiAFK:OnChanged(function() end)
pcall(function()
LocalPlayer.Idled:Connect(function()
if Toggles.AntiAFK and Toggles.AntiAFK.Value then VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end
end)
end)
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({"MenuKeybind"})
ThemeManager:SetFolder("@hidevin")
SaveManager:SetFolder("@hidevin/"..GameName)
SaveManager:BuildConfigSection(Tabs.Settings)
ThemeManager:ApplyToTab(Tabs.Settings)
SaveManager:LoadAutoloadConfig()
end
Library:OnUnload(function() print("[@hidevin] unloaded") end)
Notify("Loaded — Farming/Inventory use subtabs, Main is status only.")
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place