M
Description
A improved version of the script made by @chimera
GAME[UPDATE] Shigaku
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=6ac346bca677797e2821982b"))()
end)
end)
--[[rscripts:analytics:end]]
local Players=game:GetService"Players"
local RunService=game:GetService"RunService"
local UserInputService=game:GetService"UserInputService"
local TweenService=game:GetService"TweenService"
local CollectionService=game:GetService"CollectionService"
local VIM=game:GetService"VirtualInputManager"
local player=Players.LocalPlayer
local playerGui=player:WaitForChild"PlayerGui"
local GymCfg={
LiftingTag="Lifting",
WindedAttribute="GymWinded",
PromptName="GymPrompt"
}
pcall(function()
local GS=require(game:GetService"ReplicatedStorage".Shared.Modules.Global.Libraries.Game_Settings)
local G=GS.Gym
GymCfg.LiftingTag=G.LiftingTag or GymCfg.LiftingTag
GymCfg.WindedAttribute=G.WindedAttribute or GymCfg.WindedAttribute
GymCfg.PromptName=G.PromptName or GymCfg.PromptName
end)
local enabled=true
local targets={}
local lastKindTag=nil
local KINDS={}
local OPTIONS={}
local LABEL_BY_TAG={}
do
local ok=pcall(function()
local RS=game:GetService"ReplicatedStorage"
local GS=require(RS.Shared.Modules.Global.Libraries.Game_Settings)
local GW=require(RS.Shared.Modules.Shared.GymWeights)
for _,k in ipairs(GS.Gym.Kinds)do
table.insert(KINDS,k)
LABEL_BY_TAG[k.Tag]=k.Label
local opts={}
if k.WeightFolder then
for _,w in ipairs(GW.List(k.WeightFolder))do
table.insert(opts,{
id=w.Name,
text=("%d LB"):format(math.floor((w.Weight or 0)+0.5))
})
end
elseif k.Speeds then
for _,s in ipairs(k.Speeds)do
table.insert(opts,{
id=s.Id,
text=(s.Label or s.Id)..(s.Sub and(" \194\183 "..s.Sub)or"")
})
end
end
OPTIONS[k.Tag]=opts
end
end)
if not ok then
warn"[AutoGym] could not read weight lists"
end
end
local keys={
Q=Enum.KeyCode.Q,
E=Enum.KeyCode.E
}
local wasRed={
Q=false,
E=false
}
local lastPress={
Q=0,
E=0
}
local boxes={
Q=nil,
E=nil
}
local bar={
fill=nil,
zone=nil
}
local lastZone={
left=nil,
w=nil
}
local mode=nil
local lastC=0
local settleUntil=0
local lastSelect=0
local gymPrompts={}
local lastGymScan=0
local function isRed(c)
return c.R>0.6 and c.G<0.4 and c.B<0.4
end
local function isZoneColor(d)
local c=d.BackgroundColor3
local mx=math.max(c.R,c.G,c.B)
local mn=math.min(c.R,c.G,c.B)
local t=d.BackgroundTransparency
local eff=mx*(1-t)+0.06*t
return mx-mn<0.08 and eff>0.3 and eff<0.95
end
local function isLetter(d,letter)
if not d:IsA"GuiObject"then
return false
end
if(d:IsA"TextLabel"or d:IsA"TextButton")then
local t=d.Text:gsub("%s",""):upper()
if t==letter then
return true
end
end
return d.Name:upper()==letter
end
local function visibleChain(d)
local o=d
while o and o~=playerGui do
if o:IsA"GuiObject"and not o.Visible then
return false
end
if o:IsA"ScreenGui"and not o.Enabled then
return false
end
o=o.Parent
end
return o==playerGui
end
local function pickZone(anc,fill,q,qh,needVisible)
local fy=fill.AbsolutePosition.Y+fill.AbsoluteSize.Y/2
local best,bestDist
for _,d in ipairs(anc:GetDescendants())do
if d:IsA"GuiObject"and d~=fill and not d:IsAncestorOf(q)and d~=q and d.BackgroundTransparency<1 and isZoneColor(d)and d.AbsoluteSize.X>0 and d.AbsoluteSize.Y<=qh and(not needVisible or visibleChain(d))then
local dist=math.abs(d.AbsolutePosition.Y+d.AbsoluteSize.Y/2-fy)
if dist<=math.max(fill.AbsoluteSize.Y,6)and(not bestDist or dist<bestDist)then
best,bestDist=d,dist
end
end
end
return best
end
local function findBar(q)
local qBox=q
local p=q.Parent
if p and p:IsA"GuiObject"and p.BackgroundTransparency<1 and p.AbsoluteSize.X<=math.max(q.AbsoluteSize.X,1)*2.5 then
qBox=p
end
local qh=qBox.AbsoluteSize.Y
local cy=qBox.AbsolutePosition.Y+qh/2
local anc=q.Parent
for _=1,6 do
if not anc or anc==playerGui then
break
end
local fill,fillDist
for _,d in ipairs(anc:GetDescendants())do
if d:IsA"GuiObject"and d~=q and not d:IsAncestorOf(q)and not q:IsAncestorOf(d)and visibleChain(d)and d.BackgroundTransparency<1 and isRed(d.BackgroundColor3)and d.AbsoluteSize.Y>0 and d.AbsoluteSize.Y<qh*0.6 then
local dist=math.abs(d.AbsolutePosition.Y+d.AbsoluteSize.Y/2-cy)
if not fillDist or dist<fillDist then
fill,fillDist=d,dist
end
end
end
if fill then
local zone=pickZone(anc,fill,q,qh,true)or pickZone(anc,fill,q,qh,false)
if zone then
return fill,zone
end
end
anc=anc.Parent
end
end
local function locate()
mode,boxes.Q,boxes.E,bar.fill,bar.zone=nil,nil,nil,nil,nil
local firstQ
for _,q in ipairs(playerGui:GetDescendants())do
if isLetter(q,"Q")and visibleChain(q)then
firstQ=firstQ or q
local anc=q.Parent
for _=1,6 do
if not anc or anc==playerGui then
break
end
for _,d in ipairs(anc:GetDescendants())do
if d~=q and isLetter(d,"E")and visibleChain(d)then
mode,boxes.Q,boxes.E="alt",q,d
return
end
end
anc=anc.Parent
end
end
end
if firstQ then
local fill,zone=findBar(firstQ)
if fill and zone then
mode,boxes.Q,bar.fill,bar.zone="bar",firstQ,fill,zone
lastZone.left,lastZone.w=zone.AbsolutePosition.X,zone.AbsoluteSize.X
end
end
end
local function colorRed(o)
if o:IsA"GuiObject"and o.BackgroundTransparency<1 and isRed(o.BackgroundColor3)then
return true
end
if(o:IsA"ImageLabel"or o:IsA"ImageButton")and isRed(o.ImageColor3)then
return true
end
return false
end
local function boxIsRed(obj)
if not obj or not obj.Parent then
return false
end
if colorRed(obj)then
return true
end
local p=obj.Parent
for _=1,2 do
if p and p~=playerGui and colorRed(p)then
return true
end
p=p and p.Parent
end
for _,c in ipairs(obj:GetChildren())do
if colorRed(c)then
return true
end
end
return false
end
local function press(letter,obj)
lastPress[letter]=tick()
if obj and obj:IsA"GuiButton"and getconnections then
for _,c in ipairs(getconnections(obj.MouseButton1Click))do
pcall(c.Fire,c)
end
for _,c in ipairs(getconnections(obj.Activated))do
pcall(c.Fire,c)
end
end
VIM:SendKeyEvent(true,keys[letter],false,game)
task.wait(0.05)
VIM:SendKeyEvent(false,keys[letter],false,game)
end
local function refreshGymPrompts()
gymPrompts={}
local gym=workspace:FindFirstChild"Gym"
if not gym then
return
end
for _,d in ipairs(gym:GetDescendants())do
if d:IsA"ProximityPrompt"and d.Name==GymCfg.PromptName then
table.insert(gymPrompts,d)
end
end
end
local function promptPos(p)
local par=p.Parent
if not par then
return nil
end
if par:IsA"BasePart"then
return par.Position
end
if par:IsA"Model"then
local ok,cf=pcall(function()
return par:GetPivot()
end)
if ok and cf then
return cf.Position
end
end
local bp=par:FindFirstChildWhichIsA("BasePart",true)
return bp and bp.Position or nil
end
local function nearestGymPrompt(requireEnabled)
if#gymPrompts==0 then
return nil
end
local ch=player.Character
local hrp=ch and ch:FindFirstChild"HumanoidRootPart"
if not hrp then
return nil
end
local pp=hrp.Position
local best,bestD
for _,p in ipairs(gymPrompts)do
if p.Parent and(not requireEnabled or p.Enabled)then
local pos=promptPos(p)
if pos then
local d=(pos-pp).Magnitude
if d<=9 and(not bestD or d<bestD)then
best,bestD=p,d
end
end
end
end
return best
end
local function kindForPrompt(p)
if not p then
return nil
end
local node=p.Parent
while node and node~=workspace do
for _,k in ipairs(KINDS)do
if CollectionService:HasTag(node,k.Tag)then
return k
end
end
node=node.Parent
end
if p.ObjectText and p.ObjectText~=""then
for _,k in ipairs(KINDS)do
if p.ObjectText:upper()==k.Label then
return k
end
end
end
return nil
end
local function triggerPrompt(p)
if fireproximityprompt then
pcall(fireproximityprompt,p)
else
VIM:SendKeyEvent(true,Enum.KeyCode.C,false,game)
task.wait(0.05)
VIM:SendKeyEvent(false,Enum.KeyCode.C,false,game)
end
end
local function collectRows(sel)
local rows={}
for _,d in ipairs(sel:GetDescendants())do
if d:IsA"TextButton"and d.Name~="Backdrop"then
local h=d.AbsoluteSize.Y
if h>=40 and h<=120 then
table.insert(rows,d)
end
end
end
table.sort(rows,function(a,b)
return a.AbsolutePosition.Y<b.AbsolutePosition.Y
end)
return rows
end
local function rowUnlocked(row)
if getconnections then
local ok,conns=pcall(getconnections,row.Activated)
if ok and conns then
return#conns>0
end
end
return row.Selectable
end
local function rowVerdict(row)
for _,d in ipairs(row:GetDescendants())do
if d:IsA"TextLabel"then
local t=d.Text:upper():gsub("%s","")
if t:find"COMFORTABLE"then
return"ok"
end
if t:find"HEAVY"then
return"heavy"
end
end
end
return nil
end
local function clickRow(row)
local fired=false
if getconnections then
local ok,conns=pcall(getconnections,row.Activated)
if ok and conns then
for _,c in ipairs(conns)do
pcall(c.Fire,c)
fired=true
end
end
end
if not fired then
pcall(function()
local ap,sz=row.AbsolutePosition,row.AbsoluteSize
local x,y=ap.X+sz.X/2,ap.Y+sz.Y/2
VIM:SendMousePosition(x,y)
VIM:SendMouseButtonEvent(x,y,0,true,game,1)
task.wait(0.03)
VIM:SendMouseButtonEvent(x,y,0,false,game,1)
end)
end
end
local function chooseRow(rows,tag)
if#rows==0 then
return nil
end
local function find(name)
for _,r in ipairs(rows)do
if r.Name==name then
return r
end
end
end
local want=tag and targets[tag]
if want then
local r=find(want)
if r and rowUnlocked(r)then
return r
end
end
local lastUnlocked,lastComfortable
for _,r in ipairs(rows)do
if rowUnlocked(r)then
lastUnlocked=r
if rowVerdict(r)=="ok"then
lastComfortable=r
end
end
end
return lastComfortable or lastUnlocked
end
local function selectWeight(sel)
local rows=collectRows(sel)
if#rows==0 then
return false
end
local row=chooseRow(rows,lastKindTag)
if not row then
return false
end
clickRow(row)
return true
end
local function restartState()
if not(enabled and true)then
return"off"
end
local ch=player.Character
if playerGui:FindFirstChild"GymWeightSelect"then
return"picking weight"
end
if ch and ch:GetAttribute(GymCfg.LiftingTag)~=nil then
return"lifting"
end
if ch and ch:GetAttribute(GymCfg.WindedAttribute)~=nil then
return"winded"
end
if nearestGymPrompt(true)then
return"ready"
end
return"no machine"
end
local function doRestart()
if not(enabled and true)then
return
end
if tick()<settleUntil then
return
end
local ch=player.Character
local lifting=ch and ch:GetAttribute(GymCfg.LiftingTag)~=nil
local winded=ch and ch:GetAttribute(GymCfg.WindedAttribute)~=nil
local sel=playerGui:FindFirstChild"GymWeightSelect"
if sel then
if true and tick()-lastSelect>0.35 then
lastSelect=tick()
if selectWeight(sel)then
settleUntil=tick()+1.4
end
end
elseif not lifting and not winded then
local p=nearestGymPrompt(true)
if p and tick()-lastC>0.45 then
lastC=tick()
triggerPrompt(p)
end
end
end
local function make(cls,props,parent)
local o=Instance.new(cls)
for k,v in pairs(props)do
o[k]=v
end
if parent then
o.Parent=parent
end
return o
end
local palette={
panel=Color3.fromRGB(22,24,31),
row=Color3.fromRGB(31,34,43),
stroke=Color3.fromRGB(72,77,90),
text=Color3.fromRGB(236,239,246),
muted=Color3.fromRGB(150,155,168),
on=Color3.fromRGB(62,200,122),
off=Color3.fromRGB(214,74,74),
accent=Color3.fromRGB(92,162,255)
}
local gui=make("ScreenGui",{
Name="AutoGym",
ResetOnSpawn=false,
ZIndexBehavior=Enum.ZIndexBehavior.Sibling,
DisplayOrder=100
},(gethui and gethui())or game:GetService"CoreGui")
local root=make("Frame",{
Name="Root",
AnchorPoint=Vector2.new(0,0.5),
Position=UDim2.new(0,20,0.5,0),
Size=UDim2.fromOffset(232,150),
BackgroundColor3=palette.panel,
BackgroundTransparency=0.08,
BorderSizePixel=0
},gui)
make("UICorner",{
CornerRadius=UDim.new(0,14)
},root)
make("UIStroke",{
Color=palette.stroke,
Transparency=0.5,
Thickness=1
},root)
local header=make("Frame",{
Name="Header",
Size=UDim2.new(1,0,0,40),
BackgroundTransparency=1
},root)
make("UICorner",{
CornerRadius=UDim.new(0,14)
},header)
local dot=make("Frame",{
Size=UDim2.fromOffset(9,9),
Position=UDim2.fromOffset(15,16),
BackgroundColor3=palette.on,
BorderSizePixel=0
},header)
make("UICorner",{
CornerRadius=UDim.new(1,0)
},dot)
make("TextLabel",{
Position=UDim2.fromOffset(31,0),
Size=UDim2.new(1,-95,1,0),
BackgroundTransparency=1,
Font=Enum.Font.GothamBold,
TextSize=13,
TextColor3=palette.text,
TextXAlignment=Enum.TextXAlignment.Left,
Text="AUTO GYM"
},header)
local pill=make("TextButton",{
Name="Toggle",
AnchorPoint=Vector2.new(1,0.5),
Position=UDim2.new(1,-14,0.5,0),
Size=UDim2.fromOffset(42,22),
BackgroundColor3=palette.on,
BorderSizePixel=0,
Text="",
AutoButtonColor=false
},header)
make("UICorner",{
CornerRadius=UDim.new(1,0)
},pill)
local knob=make("Frame",{
Size=UDim2.fromOffset(16,16),
Position=UDim2.new(1,-19,0.5,-8),
BackgroundColor3=Color3.new(1,1,1),
BorderSizePixel=0
},pill)
make("UICorner",{
CornerRadius=UDim.new(1,0)
},knob)
make("Frame",{
Position=UDim2.fromOffset(0,40),
Size=UDim2.new(1,0,0,1),
BackgroundColor3=palette.stroke,
BackgroundTransparency=0.6,
BorderSizePixel=0
},root)
local body=make("Frame",{
Position=UDim2.fromOffset(0,40),
Size=UDim2.new(1,0,1,-40),
BackgroundTransparency=1
},root)
local function bodyLabel(y,size,color,bold)
return make("TextLabel",{
Position=UDim2.fromOffset(15,y),
Size=UDim2.new(1,-30,0,15),
BackgroundTransparency=1,
Font=bold and Enum.Font.GothamBold or Enum.Font.GothamMedium,
TextSize=size,
TextColor3=color,
TextXAlignment=Enum.TextXAlignment.Left,
Text=""
},body)
end
local picker=make("TextButton",{
Name="Picker",
Position=UDim2.fromOffset(15,8),
Size=UDim2.new(1,-30,0,28),
BackgroundColor3=palette.row,
BorderSizePixel=0,
Text="",
AutoButtonColor=false
},body)
make("UICorner",{
CornerRadius=UDim.new(0,8)
},picker)
make("UIStroke",{
Color=palette.stroke,
Transparency=0.6,
Thickness=1
},picker)
local pickerLabel=make("TextLabel",{
Position=UDim2.fromOffset(10,0),
Size=UDim2.new(1,-30,1,0),
BackgroundTransparency=1,
Font=Enum.Font.GothamMedium,
TextSize=11,
TextColor3=palette.text,
TextXAlignment=Enum.TextXAlignment.Left,
TextTruncate=Enum.TextTruncate.AtEnd,
Text="WEIGHT \194\183 AUTO"
},picker)
make("TextLabel",{
AnchorPoint=Vector2.new(1,0.5),
Position=UDim2.new(1,-10,0.5,0),
Size=UDim2.fromOffset(12,12),
BackgroundTransparency=1,
Font=Enum.Font.GothamBold,
TextSize=12,
TextColor3=palette.muted,
Text="\226\150\190"
},picker)
local dd=make("Frame",{
Name="Dropdown",
Position=UDim2.fromOffset(15,78),
Size=UDim2.fromOffset(202,0),
BackgroundColor3=Color3.fromRGB(26,28,36),
BackgroundTransparency=0.03,
BorderSizePixel=0,
ClipsDescendants=true,
Visible=false,
ZIndex=60
},root)
make("UICorner",{
CornerRadius=UDim.new(0,10)
},dd)
make("UIStroke",{
Color=palette.stroke,
Transparency=0.4,
Thickness=1
},dd)
local ddScroll=make("ScrollingFrame",{
Position=UDim2.fromOffset(0,0),
Size=UDim2.new(1,0,1,0),
BackgroundTransparency=1,
BorderSizePixel=0,
ScrollBarThickness=3,
ScrollBarImageColor3=palette.stroke,
CanvasSize=UDim2.new(0,0,0,0),
ZIndex=61
},dd)
local modeLabel=bodyLabel(41,13,palette.text,true)
local detailLabel=bodyLabel(58,11,palette.muted,false)
local restartLabel=bodyLabel(74,11,palette.muted,false)
local hintLabel=bodyLabel(90,10,palette.muted,false)
hintLabel.Text="Drag to move \194\183 tap the switch"
local function targetText(tag,id)
local opts=tag and OPTIONS[tag]
if opts then
for _,o in ipairs(opts)do
if o.id==id then
return o.text
end
end
end
return tostring(id)
end
local function refreshPicker()
local name=lastKindTag and LABEL_BY_TAG[lastKindTag]or"WEIGHT"
local val=(lastKindTag and targets[lastKindTag])and targetText(lastKindTag,targets[lastKindTag])or"AUTO"
pickerLabel.Text=("%s \194\183 %s"):format(name,val)
end
local function buildDropdown()
for _,c in ipairs(ddScroll:GetChildren())do
if c:IsA"TextButton"then
c:Destroy()
end
end
local tag=lastKindTag
local list={
{
id=nil,
text="AUTO \194\183 HEAVIEST COMFORTABLE"
}
}
if tag and OPTIONS[tag]then
for _,o in ipairs(OPTIONS[tag])do
table.insert(list,{
id=o.id,
text=o.text
})
end
end
local y=4
for i,opt in ipairs(list)do
local selected=(tag and targets[tag]or nil)==opt.id
local b=make("TextButton",{
Name="Opt"..i,
Position=UDim2.fromOffset(4,y),
Size=UDim2.new(1,-8,0,26),
BackgroundColor3=selected and palette.accent or palette.row,
BackgroundTransparency=selected and 0.25 or 0,
BorderSizePixel=0,
Text="",
AutoButtonColor=false,
ZIndex=62
},ddScroll)
make("UICorner",{
CornerRadius=UDim.new(0,6)
},b)
local tl=make("TextLabel",{
Position=UDim2.fromOffset(10,0),
Size=UDim2.new(1,-16,1,0),
BackgroundTransparency=1,
Font=Enum.Font.GothamMedium,
TextSize=11,
TextColor3=palette.text,
TextXAlignment=Enum.TextXAlignment.Left,
TextTruncate=Enum.TextTruncate.AtEnd,
Text=opt.text,
ZIndex=63
},b)
b.MouseEnter:Connect(function()
tl.TextColor3=Color3.new(1,1,1)
end)
b.MouseLeave:Connect(function()
tl.TextColor3=palette.text
end)
b.MouseButton1Click:Connect(function()
if tag then
targets[tag]=opt.id
end
refreshPicker()
dd.Visible=false
end)
y=y+28
end
ddScroll.CanvasSize=UDim2.new(0,0,0,y+4)
dd.Size=UDim2.fromOffset(202,math.min(y+8,190))
end
picker.MouseButton1Click:Connect(function()
if dd.Visible then
dd.Visible=false
else
buildDropdown()
refreshPicker()
dd.Visible=true
end
end)
local function refreshToggle(anim)
local color=enabled and palette.on or palette.off
pill.BackgroundColor3=color
dot.BackgroundColor3=color
local target=enabled and UDim2.new(1,-19,0.5,-8)or UDim2.new(0,3,0.5,-8)
if anim then
TweenService:Create(knob,TweenInfo.new(0.15,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
Position=target
}):Play()
else
knob.Position=target
end
end
pill.MouseButton1Click:Connect(function()
enabled=not enabled
refreshToggle(true)
end)
do
local dragging,dragStart,startPos
header.InputBegan:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then
dragging=true
dragStart=i.Position
startPos=root.Position
dd.Visible=false
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and(i.UserInputType==Enum.UserInputType.MouseMovement or i.UserInputType==Enum.UserInputType.Touch)then
local d=i.Position-dragStart
root.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y)
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then
dragging=false
end
end)
end
refreshToggle(false)
refreshPicker()
local lastScan=0
local lastUi=0
RunService.Heartbeat:Connect(function()
if not root.Parent then
return
end
if tick()-lastGymScan>2 then
lastGymScan=tick()
refreshGymPrompts()
end
local kind=kindForPrompt(nearestGymPrompt(false))
if kind then
lastKindTag=kind.Tag
end
local stale
if mode=="alt"then
stale=not boxes.Q.Parent or not boxes.E.Parent or not visibleChain(boxes.Q)or not visibleChain(boxes.E)
elseif mode=="bar"then
stale=not boxes.Q.Parent or not bar.fill.Parent or not visibleChain(boxes.Q)or not visibleChain(bar.fill)or tick()-lastScan>1
else
stale=true
end
if stale and tick()-lastScan>0.25 then
lastScan=tick()
locate()
wasRed.Q,wasRed.E=false,false
end
local modeText,detailText="Idle",""
if enabled and mode=="bar"then
local zoneLeft,zoneW=lastZone.left,lastZone.w
if bar.zone and bar.zone.Parent then
zoneLeft,zoneW=bar.zone.AbsolutePosition.X,bar.zone.AbsoluteSize.X
lastZone.left,lastZone.w=zoneLeft,zoneW
end
if zoneLeft then
local fillRight=bar.fill.AbsolutePosition.X+bar.fill.AbsoluteSize.X
local target=zoneLeft+zoneW*0.2
if fillRight<target and tick()-lastPress.Q>0.09 then
task.spawn(press,"Q",boxes.Q)
end
local state="pushing"
if fillRight>zoneLeft+zoneW then
state="over"
elseif fillRight>=zoneLeft then
state="in zone"
end
modeText="Dumbbell"
detailText="Tap timing \194\183 "..state
end
elseif enabled and mode=="alt"then
for letter in pairs(keys)do
local obj=boxes[letter]
local red=boxIsRed(obj)
if red and(not wasRed[letter]or tick()-lastPress[letter]>0.35)then
task.spawn(press,letter,obj)
end
wasRed[letter]=red
end
modeText="Machine"
detailText=("Q:%s E:%s"):format(boxIsRed(boxes.Q)and"RED"or"--",boxIsRed(boxes.E)and"RED"or"--")
end
if enabled then
doRestart()
end
if tick()-lastUi>0.1 then
lastUi=tick()
local st=restartState()
modeLabel.Text=enabled and modeText or"Disabled"
detailLabel.Text=detailText
restartLabel.Text=("Restart (C): %s"):format(st:sub(1,1):upper()..st:sub(2))
restartLabel.TextColor3=(st=="ready"and palette.on)or(st=="off"or st=="no machine")and palette.muted or palette.accent
refreshPicker()
end
end)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