M
ScriptKeyless
First Person Boxing | Cinder HUB {source} leaked
First Person BoxingDesktop compatiblePotassium
Description
JOIN THE DISCROD WYD BRO https://discord.gg/82bPCKnCfY https://discord.gg/82bPCKnCfY https://discord.gg/82bPCKnCfY https://discord.gg/82bPCKnCfY https://discord.gg/82bPCKnCfY
GAMEFirst Person Boxing
UPDATEDOct 19, 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 ]]
if type(setthreadidentity)=="function"then setthreadidentity(8)end
assert(game.GameId==10768418427,"First Person Boxing only")
local Players=game:GetService("Players")
local Input=game:GetService("UserInputService")
local Run=game:GetService("RunService")
local Http=game:GetService("HttpService")
local guardsConfig=require(game:GetService("ReplicatedStorage"):WaitForChild("VRBoxingGuards"))
local player=Players.LocalPlayer
local gui=player:WaitForChild("PlayerGui")
local previous=gui:FindFirstChild("CinderBoxingCleanup")
if previous then previous:Fire();task.wait();if previous.Parent then previous:Destroy()end end
if type(filtergc)=="function"then
local ok,windows=pcall(filtergc,"table",{Keys={"name","main","screenGui","controls"}},false)
if ok then for _,old in ipairs(windows or {})do
if old.name=="First Person Boxing | Cinder HUB"and old.screenGui and old.screenGui.Parent then
pcall(function()old:Unload()end)
for _,c in pairs(old.connections or {})do pcall(function()c:Disconnect()end)end
old.unloaded=true
if type(setthreadidentity)=="function"then setthreadidentity(8)end
old.screenGui:Destroy()
end
end end
end
local guiRoot=type(gethui)=="function"and gethui()or game:GetService("CoreGui")
for _,old in ipairs(guiRoot:GetChildren())do
if old:IsA("ScreenGui")and old:GetAttribute("CinderOwnerHub")=="FirstPersonBoxing"then old:Destroy()end
end
local sentinel=Instance.new("BindableEvent")
sentinel.Name="CinderBoxingCleanup";sentinel.Parent=gui
local settings={Enabled=false,AutoPunch=true,AutoGuard=true,AutoCounter=true,AutoDodge=false,AutoGetUp=false,AutoFace=false,StaminaSaver=true,PlayerESP=false,CPU_ESP=false,ShowHP=true,SpeedBoost=false,WalkSpeed=12,Teleport="Off",Target="Head",Combo="Balanced",Interval=0.55,Range=5.5,FatigueLimit=0.7,PendingScript=""}
local alive,connections,owned=true,{},{}
local state,window,card,master
local controls={}
local cursorCleanup,validationTask
local esp={}
local menuOpen
local movementOwned,lockOwned,getUpOwned={},nil,false
local nativeConfig,lastDodge,lastTeleport,lastCounter,getUpPos,getUpAt=nil,-math.huge,-math.huge,0,nil,0
local count,nextPunch,lastScan,lastUI,guardUntil=0,0,-math.huge,0,0
local resting=false
local guardHoldUntil=0
local lastEnemyHealth={entity=nil,head=nil,body=nil,at=0}
local tactics={entity=nil,attacks=0,lastThreat=false,lastAttack=0,rate=0,lastIncoming=nil,lastDecision="Idle",samples=0,damageDealt=0,damageTaken=0,lastOwnHead=nil,lastOwnBody=nil,lastEnemyHead=nil,lastEnemyBody=nil}
local angleState={entity=nil,side=1,untilAt=0,cooldown=0,openingUntil=0,reason="Waiting",lastPunchAt=0,lastEvadeAt=0,evadeCounterUntil=0,closeAngleUntil=0,hookUntil=0,overcommit=false}
local gloveSample
settings.AutoPlay=false
settings.Tracking="Snap"
settings.Playstyle="Balanced"
settings.Stance="Orthodox"
local trackingOwned={}
local targetMotion
local trackingMessage="Native"
local function restoreTracking()
for key,v in pairs(trackingOwned)do if v.t[key]==v.value then v.t[key]=v.original end;trackingOwned[key]=nil end
trackingMessage="Native"
end
local function ownTracking(t,key,value)
local v=trackingOwned[key]
if v and v.t~=t then restoreTracking();v=nil end
if not v then v={t=t,original=t[key]};trackingOwned[key]=v end
t[key]=value;v.value=value
end
local footworkHumanoid
local footworkMove=Vector3.zero
local footworkBound=false
local comboIndex,comboTarget,comboStyle,lastComboAt=0,nil,nil,0
local function stopFootwork()
footworkMove=Vector3.zero
targetMotion=nil
if footworkHumanoid then pcall(function()footworkHumanoid:Move(Vector3.zero,false)end);footworkHumanoid=nil end
end
local message="Paused — lock on with Q, then enable assistance"
local function attach(signal,fn)
local c=signal:Connect(function(...)
if not alive then return end
if type(setthreadidentity)=="function"then setthreadidentity(8)end
fn(...)
end)
table.insert(connections,c);return c
end
local function writeOwned(t,k,value)
for _,v in ipairs(owned)do
if v.t==t and v.k==k then t[k]=value;v.value=value;return end
end
table.insert(owned,{t=t,k=k,original=t[k],value=value});t[k]=value
end
local function release()
for i=#owned,1,-1 do
local v=owned[i]
if v.t[v.k]==v.value then v.t[v.k]=v.original end
owned[i]=nil
end
end
local function restoreMovement()
for k,v in pairs(movementOwned)do if v.t[k]==v.value then v.t[k]=v.original end;movementOwned[k]=nil end
end
local function restoreExtras()
stopFootwork()
restoreTracking()
restoreMovement()
if state and getUpOwned then pcall(state.GetUp.setInput,0)end
getUpOwned=false;getUpPos=nil
if lockOwned then
local s=lockOwned
if type(debug.getupvalue)=="function"and debug.getupvalue(s.act.toggle,1)==true then pcall(s.act.toggle,"lock")end
lockOwned=nil
end
end
local function enabled(value)
settings.Enabled=value==true
if not settings.Enabled then release();restoreExtras();resting=false;guardUntil=0;guardHoldUntil=0;angleState.untilAt=0;angleState.openingUntil=0;comboIndex=0;comboTarget=nil;message="Paused"end
end
local function syncMaster()
if type(setthreadidentity)=="function"then setthreadidentity(8)end
if master then master:Set(settings.Enabled,true)end
end
local function cleanup()
if not alive then return end
if type(setthreadidentity)=="function"then setthreadidentity(8)end
alive=false;settings.Enabled=false
if footworkBound then Run:UnbindFromRenderStep("CinderBoxingFootwork");Run:UnbindFromRenderStep("CinderBoxingTracking");footworkBound=false end
pcall(release);pcall(restoreExtras)
for _,c in ipairs(connections)do pcall(function()c:Disconnect()end)end
for _,label in pairs(esp)do pcall(function()label:Destroy()end)end;table.clear(esp)
if cursorCleanup then pcall(cursorCleanup);cursorCleanup=nil end
if validationTask then pcall(task.cancel,validationTask);validationTask=nil end
if window and not window.unloaded then pcall(function()window:Unload()end)end
if window then
for _,c in pairs(window.connections or {})do pcall(function()c:Disconnect()end)end
window.unloaded=true
pcall(function()
if type(setthreadidentity)=="function"then setthreadidentity(8)end
window.screenGui:Destroy()
end)
end
pcall(function()sentinel:Destroy()end)
end
attach(sentinel.Event,cleanup)
if STATE and STATE.onCleanup then STATE.onCleanup(cleanup)end
local function findState()
if type(filtergc)~="function"then return nil,"Executor needs filtergc"end
local ok,s=pcall(filtergc,"table",{Keys={"act","holds","P"}},true)
if not ok or type(s)~="table"or type(s.act)~="table"or type(s.act.punch)~="function"then
return nil,"Waiting for native boxing controller"
end
local source=debug.info(s.act.punch,"s")
if not tostring(source):find("PlayerScripts.VRBoxing",1,true)then return nil,"Controller identity mismatch"end
return s
end
local function styleParameters(name)
if name=="Angle Fighter"then return {distance=4.35,retreat=5.85,orbit=0.65,lead=0.08,switch=2.8,rest=0.38,resume=0.72,combo="Smart",stance="Orthodox",interval=0.58,range=5.2,fatigue=0.7}end
if name=="Adaptive Defense"then return {distance=4.65,retreat=6.4,orbit=0.55,lead=0.1,switch=2.8,rest=0.43,resume=0.78,combo="Smart",stance="Orthodox",interval=0.55}end
if name=="Pressure (CPU)"then return {distance=2.65,retreat=4.4,orbit=0.28,lead=0.24,switch=0.9,rest=0.22,resume=0.5,combo="Body-Head",stance="Southpaw",interval=0.35}end
if name=="Pacquiao-inspired"then return {distance=2.9,retreat=4.8,orbit=0.7,lead=0.16,switch=1.4,rest=0.25,resume=0.55,combo="Body-Head",stance="Southpaw",interval=0.35}end
if name=="Mayweather-inspired"then return {distance=4.1,retreat=6.0,orbit=0.5,lead=0.1,switch=3.5,rest=0.4,resume=0.75,combo="Jab-Cross",stance="Orthodox",interval=0.6}end
return {distance=3.5,retreat=5.5,orbit=0.45,lead=0.12,switch=2.5,rest=0.3,resume=0.65,combo="Boxing mix",stance="Orthodox",interval=0.45}
end
local function observeTactics(view,now)
if tactics.entity~=view.entity then
tactics={entity=view.entity,attacks=0,lastThreat=false,lastAttack=0,rate=0,lastIncoming=nil,lastDecision="Observe",samples=0,damageDealt=0,damageTaken=0,lastOwnHead=nil,lastOwnBody=nil,lastEnemyHead=nil,lastEnemyBody=nil}
end
if view.threat and not tactics.lastThreat then
local dt=now-tactics.lastAttack
if tactics.lastAttack>0 and dt>0.15 and dt<5 then tactics.rate=tactics.rate==0 and 1/dt or tactics.rate*0.75+(1/dt)*0.25 end
tactics.lastAttack=now;tactics.attacks+=1
end
tactics.lastThreat=view.threat
if view.incoming then tactics.lastIncoming=view.incoming.kind end
local e=view.entity
if typeof(e)=="Instance"then
local h,b=tonumber(e:GetAttribute("HeadHP")),tonumber(e:GetAttribute("BodyHP"))
if h and b and tactics.lastEnemyHead and tactics.lastEnemyBody then tactics.damageDealt+=math.max(0,tactics.lastEnemyHead-h)+math.max(0,tactics.lastEnemyBody-b)end
tactics.lastEnemyHead=h;tactics.lastEnemyBody=b
end
local h,b=tonumber(player:GetAttribute("HeadHP")),tonumber(player:GetAttribute("BodyHP"))
if h and b and tactics.lastOwnHead and tactics.lastOwnBody then tactics.damageTaken+=math.max(0,tactics.lastOwnHead-h)+math.max(0,tactics.lastOwnBody-b)end
tactics.lastOwnHead=h;tactics.lastOwnBody=b
tactics.samples+=1
end
local function plan(snapshot,config,wasResting)
if not config.Enabled or snapshot.blocked then return "wait",false end
if not snapshot.target then return "target",false end
local tired
local style=styleParameters(config.Playstyle)
if type(snapshot.stamina)=="number"then
tired=snapshot.stamina<style.rest or wasResting and snapshot.stamina<style.resume
else tired=snapshot.fatigue>=config.FatigueLimit or wasResting and snapshot.fatigue>math.max(0,config.FatigueLimit-0.25)end
tired=config.StaminaSaver~=false and tired
local reach=config.Combo=="Smart"and math.min(config.Range,5.2)or config.Range
local inRange=snapshot.distance<=reach and snapshot.facing>=0.4
if config.AutoCounter and snapshot.counter and inRange and not tired and not snapshot.incoming and not snapshot.threat and not snapshot.guardPending and not (config.Playstyle=="Angle Fighter" and snapshot.hookOpening) then return "counter",false end
if (snapshot.threat or snapshot.incoming or snapshot.guardPending or snapshot.predictedDanger) and snapshot.distance<=math.max(config.Range,8.2)then
if config.AutoDodge and snapshot.incoming and snapshot.incoming.time>0.055 and snapshot.incoming.time<0.36 and not tired then return "dodge",false end
if config.AutoGuard then return "guard",tired end
end
if not inRange then return "target",tired end
if config.Playstyle=="Angle Fighter"then
if snapshot.threat or snapshot.incoming or snapshot.predictedDanger then return config.AutoGuard and "guard"or "watch",tired end
if tired then return "recover",true end
if snapshot.hookOpening and snapshot.distance<=4.4 and snapshot.facing>=0.35 and not snapshot.guardPending then return config.AutoPunch and "angleHook"or "watch",false end
if (snapshot.angleOpening or snapshot.evadeOpening) and inRange and snapshot.distance<=5.0 and not snapshot.guardPending then return config.AutoPunch and "punch"or "watch",false end
if inRange and snapshot.distance<=4.7 and snapshot.facing>=0.55 and snapshot.safeProbe and not snapshot.guardPending then return config.AutoPunch and "punch"or "watch",false end
return "watch",false
end
if config.Playstyle=="Adaptive Defense"then
if snapshot.predictedDanger then return config.AutoGuard and "guard"or "watch",tired end
if snapshot.recentAttack and not snapshot.counter then return "watch",tired end
if snapshot.threat or snapshot.guardPending then return "guard",tired end
if snapshot.stamina and snapshot.stamina<0.58 then return "recover",true end
if not snapshot.counter and snapshot.distance>4.4 then return "watch",false end
end
if tired then return "recover",true end
if config.AutoPunch then return "punch",false end
return "watch",false
end
local function incomingPunch(position,velocity)
local distance=position.Magnitude
if distance<0.05 or distance>7.2 then return end
local closing=-velocity:Dot(position.Unit)
if closing<1.5 then return end
local impactTime=distance/closing
if impactTime>0.38 then return end
local predicted=position+velocity*math.min(impactTime,0.3)
if math.abs(predicted.X)>2.3 or math.abs(predicted.Y)>3.2 then return end
local forward=math.max(velocity.Z,0.1)
local kind=position.Y < -1.05 and "body"or
(velocity.Y>forward*0.8 and math.abs(velocity.X)<velocity.Y and "upper"or
(velocity.Y < -forward*0.6 and "over"or(math.abs(velocity.X)>forward*0.55 and "hook"or "straight")))
local mode=(kind=="hook"or kind=="over")and "weave"or(kind=="body"or kind=="upper")and "pull"or "slip"
local direction=position.X>0 and -1 or 1
if mode=="weave"and math.abs(velocity.X)>0.5 then direction=velocity.X>0 and 1 or -1 end
return {kind=kind,mode=mode,direction=direction,time=impactTime,headThreat=kind~="body"}
end
local function leadOffset(velocity,seconds)
local flat=Vector3.new(velocity.X,0,velocity.Z)
local lead=flat*seconds
return lead.Magnitude>2 and lead.Unit*2 or lead
end
local function angleMovement(root,enemyRoot,center,now)
if settings.Playstyle~="Angle Fighter"or not enemyRoot or not root then return nil end
if angleState.entity~=enemyRoot then angleState={entity=enemyRoot,side=1,untilAt=0,cooldown=0,openingUntil=0,reason="Observing",lastPunchAt=0,lastEvadeAt=0,evadeCounterUntil=0,closeAngleUntil=0,hookUntil=0,overcommit=false}end
local delta=enemyRoot.Position-root.Position
local flat=Vector3.new(delta.X,0,delta.Z)
if flat.Magnitude<0.1 then return nil end
local enemyFacing=enemyRoot.CFrame.LookVector
local facing=Vector3.new(enemyFacing.X,0,enemyFacing.Z)
if facing.Magnitude<0.1 then return nil end
local toUs=-flat.Unit
local frontal=facing.Unit:Dot(toUs)>0.3
local attackAge=now-tactics.lastAttack
local attacking=tactics.entity and tactics.lastAttack>0 and attackAge>=0.18 and attackAge<0.55 and not tactics.lastThreat
local closing=enemyRoot.AssemblyLinearVelocity:Dot(toUs)
local overcommit=flat.Magnitude<3.7 and frontal and closing>3 and (tactics.lastThreat or attackAge<0.5) and tactics.attacks>=2
local closePressure=flat.Magnitude<2.7 and frontal and (tactics.lastThreat or attackAge<0.42)
if (overcommit or closePressure or attacking) and frontal and now>=angleState.cooldown and now>=angleState.untilAt and flat.Magnitude<7 then
local left=Vector3.new(-flat.Unit.Z,0,flat.Unit.X)
local test=left*3.2
local leftPos=center.CFrame:PointToObjectSpace(root.Position+test)
local rightPos=center.CFrame:PointToObjectSpace(root.Position-test)
local leftSpace=math.max(math.abs(leftPos.X),math.abs(leftPos.Z))
local rightSpace=math.max(math.abs(rightPos.X),math.abs(rightPos.Z))
angleState.side=leftSpace<=rightSpace and 1 or -1
local punish=overcommit or closePressure
angleState.untilAt=now+(punish and 0.3 or 0.28)
angleState.openingUntil=now+(punish and 1.12 or 1.05)
angleState.closeAngleUntil=punish and angleState.untilAt or 0
angleState.hookUntil=punish and now+1.65 or 0
angleState.overcommit=overcommit
angleState.cooldown=now+(punish and 1.1 or 0.9)
angleState.reason=punish and "Escaping close pressure"or "Weave and circle after punch"
end
if tactics.lastThreat and now>=angleState.closeAngleUntil then angleState.untilAt=0;angleState.openingUntil=0 end
if now<angleState.untilAt then
local tangent=Vector3.new(-flat.Unit.Z,0,flat.Unit.X)*angleState.side
local radial=flat.Unit*math.clamp((flat.Magnitude-4.1)*0.4,-0.35,0.35)
local offset=center.CFrame:PointToObjectSpace(root.Position)
if math.max(math.abs(offset.X),math.abs(offset.Z))>8 then angleState.untilAt=0;return nil end
local move=tangent*0.9+radial
return move.Magnitude>1 and move.Unit or move
end
return nil
end
local function footworkVector(delta,offset,retreat,orbit,style)
style=style or styleParameters("Balanced")
local flat=Vector3.new(delta.X,0,delta.Z)
if flat.Magnitude<0.05 then return Vector3.zero end
if offset and math.max(math.abs(offset.X),math.abs(offset.Z))>8.5 then
local inward=Vector3.new(-offset.X,0,-offset.Z)
if inward.Magnitude>0 then return inward.Unit end
end
local distance=flat.Magnitude
local radial=flat.Unit
local desired=retreat and style.retreat or style.distance
local advance=math.clamp((distance-desired)*2.2,-1,1)
local tangent=Vector3.new(-radial.Z,0,radial.X)*(math.abs(distance-desired)<1.6 and orbit*style.orbit or 0)
local move=radial*advance+tangent
return move.Magnitude>1 and move.Unit or move
end
local function ringOpponent(ownRing,otherRing,isSelf,knockedOut)
return type(ownRing)=="string"and ownRing~=""and ownRing==otherRing and not isSelf and not knockedOut
end
local function stanceSide(side,stance)
return stance=="Southpaw"and(side=="L"and "R"or "L")or side
end
local function boxingPunch(style,index,distance)
local sequences={
["Jab-Cross"]={{"L","straight","head"},{"R","straight","head"}},
["1-2-3"]={{"L","straight","head"},{"R","straight","head"},{"L","hook","head"}},
["Body-Head"]={{"L","straight","body"},{"R","straight","head"},{"L","hook","head"}},
["Uppercut-Hook"]={{"R","upper","body"},{"L","hook","head"}},
}
if style=="Boxing mix"then style=({"1-2-3","Body-Head","Uppercut-Hook"})[math.floor(index/6)%3+1]end
local sequence=sequences[style]
if not sequence then return end
local position=index%#sequence+1
local punch=sequence[position]
if distance>(punch[2]=="straight"and 5.2 or 4.2)then return "range"end
return punch[2],punch[3],punch[1],position==#sequence
end
local function nativeStamina(s)
if type(debug.getupvalue)~="function"or type(s.doThrow)~="function"then return nil end
local ok,current,capacity=pcall(function()
local fire=debug.getupvalue(s.doThrow,12)
if type(fire)~="function"or debug.info(fire,"n")~="firePunch"then return end
return debug.getupvalue(fire,3),debug.getupvalue(fire,11)
end)
if ok and type(current)=="number"and type(capacity)=="number"and capacity>0 and capacity<=100.1 and current>=0 and current<=capacity+1 then
return math.clamp(current/capacity,0,1),current,capacity
end
return nil
end
local function smartPunch(entity,distance,fatigue,index)
local zone=settings.Target=="Alternate"and(index%4<2 and "head"or "body")or settings.Target:lower()
local kind=settings.Combo=="Hooks"and "hook"or(settings.Combo=="Balanced"and index%4==3 and "hook"or "straight")
if settings.Combo=="Smart"then
local head=tonumber(entity:GetAttribute("HeadHP"))
local body=tonumber(entity:GetAttribute("BodyHP"))
local headCap=tonumber(entity:GetAttribute("HeadCap"))
local bodyCap=tonumber(entity:GetAttribute("BodyCap"))
if head and body and headCap and headCap>0 and bodyCap and bodyCap>0 then zone=head/headCap<=body/bodyCap and "head"or "body"end
local guard=entity:GetAttribute("AIGuard")or guardsConfig.KEYS[tonumber(entity:GetAttribute("GuardStyle"))or 0]
local rules=guard and guardsConfig.AUTO[guard]
if rules and(not head or not headCap or head/headCap>0.15)then
local headDefense=((rules.evade or {}).straight or 0)+((rules.roll or {}).jab or 0)+((rules.block or {}).jab or 0)
local bodyDefense=((rules.evade or {}).body or 0)+((rules.roll or {}).body or 0)+((rules.block or {}).body or 0)
if headDefense>bodyDefense+0.15 then zone="body"end
end
kind=distance<4 and fatigue<0.5 and(index%3==2 and "upper"or "hook")or "straight"
end
return kind,zone
end
local function getUpControl(sample,previous,dt)
local target=(sample.zoneMin+sample.zoneMax)*0.5
local velocity=previous and(sample.pos-previous)/math.max(dt,0.01)or 0
return math.clamp((target-sample.pos)*9-velocity*2.5,-1,1)
end
local function extras(s,now)
if settings.AutoFace and type(debug.getupvalue)=="function"then
local lock=debug.getupvalue(s.act.toggle,1)
if lock==false then s.act.toggle("lock");lockOwned=s end
elseif lockOwned then
if debug.getupvalue(lockOwned.act.toggle,1)==true then lockOwned.act.toggle("lock")end;lockOwned=nil
end
if settings.AutoGetUp and s.GetUp.isActive()then
local v=s.GetUp.state()
if v and type(v.pos)=="number"and type(v.zoneMin)=="number"and type(v.zoneMax)=="number"then
s.GetUp.setInput(getUpControl(v,getUpPos,now-getUpAt));getUpPos=v.pos;getUpAt=now;getUpOwned=true
end
elseif getUpOwned then s.GetUp.setInput(0);getUpOwned=false;getUpPos=nil end
if settings.SpeedBoost and not s.locked()and player:GetAttribute("BoxKO")~=true and not menuOpen(s)then
if not nativeConfig then nativeConfig=filtergc("table",{Keys={"PunchExt","WalkSpeed","HeadR","BodyR"}},true)end
if nativeConfig then
if not movementOwned.WalkSpeed then movementOwned.WalkSpeed={t=nativeConfig,original=nativeConfig.WalkSpeed}end
nativeConfig.WalkSpeed=settings.WalkSpeed;movementOwned.WalkSpeed.value=settings.WalkSpeed
end
else restoreMovement()end
end
local function updateESP()
local keep={}
local camera=workspace.CurrentCamera
local function add(entity,character,cpu)
local show=cpu and settings.CPU_ESP or not cpu and settings.PlayerESP
local head=character and character:FindFirstChild("Head")
if not show or not head or not camera or entity:GetAttribute("BoxKO")==true or(head.Position-camera.CFrame.Position).Magnitude>175 then return end
keep[entity]=true
local tag=esp[entity]
if not tag then
tag=Instance.new("BillboardGui");tag.Name="CinderBoxingESP";tag.Size=UDim2.fromOffset(200,52);tag.StudsOffset=Vector3.new(0,2,0);tag.AlwaysOnTop=true;tag.MaxDistance=175
local text=Instance.new("TextLabel");text.Name="Info";text.Size=UDim2.fromScale(1,1);text.BackgroundTransparency=1;text.TextSize=13;text.Font=Enum.Font.GothamSemibold;text.TextStrokeTransparency=0.2;text.RichText=false;text.Parent=tag
tag.Parent=gui;esp[entity]=tag
end
tag.Adornee=head
tag.Info.TextColor3=cpu and Color3.fromRGB(255,196,99)or Color3.fromRGB(102,211,255)
local name=cpu and(entity:GetAttribute("DisplayName")or entity.Name)or entity.DisplayName
local hp=""
if settings.ShowHP then
local h,b=entity:GetAttribute("HeadHP"),entity:GetAttribute("BodyHP")
hp="\nHead "..(type(h)=="number"and tostring(math.ceil(h))or "?").." • Body "..(type(b)=="number"and tostring(math.ceil(b))or "?")
end
tag.Info.Text=(cpu and "CPU • "or "")..name..hp
end
for _,p in ipairs(Players:GetPlayers())do if p~=player then add(p,p.Character,false)end end
for _,model in ipairs(workspace:GetChildren())do if model:IsA("Model")and model:GetAttribute("VRB_AI")==true then add(model,model,true)end end
for entity,label in pairs(esp)do if not keep[entity]then label:Destroy();esp[entity]=nil end end
end
menuOpen=function(s)
for _,name in ipairs({"ShopOpen","StylesOpen","DailyOpen","CustomizeOpen","ServerBrowserOpen"})do
if player:GetAttribute(name)==true then return true end
end
if Input:GetFocusedTextBox()then return true end
return s.UI and s.UI.isSettingsOpen and s.UI.isSettingsOpen()
end
local function snapshot(s,now)
local target=s.lockTgt
local camera=workspace.CurrentCamera
local entity=target and target.player
local head=target and target.headWorld
local valid=entity and typeof(entity)=="Instance"and entity.Parent~=nil and head and typeof(head)=="Vector3"
if valid and (entity==player or entity:GetAttribute("BoxKO")==true)then valid=false end
if valid and settings.AutoPlay and not ringOpponent(player:GetAttribute("InRing"),entity:GetAttribute("InRing"),entity==player,false)then valid=false end
local delta=valid and camera and head-camera.CFrame.Position
local distance=delta and delta.Magnitude or math.huge
local facing=delta and distance>0.01 and camera.CFrame.LookVector:Dot(delta.Unit)or 0
local threat=target and type(target.punching)=="table"and(target.punching[1]==true or target.punching[2]==true)
local incoming
local root=player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if valid and camera and root and type(target.glove)=="table"then
local frame=CFrame.new(camera.CFrame.Position)*root.CFrame.Rotation
local dt=gloveSample and now-gloveSample.at or 0
if gloveSample and gloveSample.target==target and dt>=0.008 and dt<=0.15 then
for i=1,2 do
local point,previous=target.glove[i],gloveSample[i]
if target.punching and target.punching[i]and typeof(point)=="Vector3"and typeof(previous)=="Vector3"then
local candidate=incomingPunch(frame:PointToObjectSpace(point),frame:VectorToObjectSpace((point-previous)/dt))
if candidate and(not incoming or candidate.time<incoming.time)then incoming=candidate end
end
end
end
gloveSample={target=target,at=now,target.glove[1],target.glove[2]}
else gloveSample=nil end
local attackAge=now-tactics.lastAttack
local predictedDanger=valid and tactics.entity==entity and tactics.rate>0.9 and attackAge>0.12 and attackAge<math.min(0.7,0.8/math.max(tactics.rate,0.1)) and distance<7.4
return {target=valid==true,distance=distance,facing=facing,fatigue=tonumber(s.fat)or 0,stamina=nativeStamina(s),guardPending=now<guardHoldUntil,predictedDanger=predictedDanger==true,recentAttack=attackAge<0.42,angleOpening=now<angleState.openingUntil and now>=angleState.untilAt,evadeOpening=now<(angleState.evadeCounterUntil or 0),hookOpening=now<(angleState.hookUntil or 0) and now>=(angleState.closeAngleUntil or 0) and angleState.closeAngleUntil>0,safeProbe=tactics.entity==entity and not threat and not incoming and now-tactics.lastAttack>0.7 and now-(angleState.lastPunchAt or 0)>1.15,
threat=threat==true,incoming=incoming,entity=entity,
counter=(tonumber(s.counterOpenAt)or 0)>lastCounter and os.clock()-(tonumber(s.counterOpenAt)or 0)<0.65,
blocked=player:GetAttribute("BoxKO")==true or not player.Character or s.locked()or menuOpen(s)}
end
local function autoFootwork(view,action,now)
local entity=view.entity
local ringName=player:GetAttribute("InRing")
if type(ringName)~="string"or ringName==""then stopFootwork();return end
if not settings.AutoPlay or view.blocked or not view.target or typeof(entity)~="Instance"or
not ringOpponent(ringName,entity:GetAttribute("InRing"),entity==player,entity:GetAttribute("BoxKO")==true)then stopFootwork();return end
for _,key in ipairs({Enum.KeyCode.W,Enum.KeyCode.A,Enum.KeyCode.S,Enum.KeyCode.D})do
if Input:IsKeyDown(key)then stopFootwork();return end
end
local character=player.Character
local root=character and character:FindFirstChild("HumanoidRootPart")
local humanoid=character and character:FindFirstChildOfClass("Humanoid")
local targetCharacter=entity:IsA("Player")and entity.Character or entity
local targetRoot=targetCharacter and targetCharacter:FindFirstChild("HumanoidRootPart")
local gym=workspace:FindFirstChild("BoxingGym")
local rings=gym and gym:FindFirstChild("Rings")
local ring=rings and rings:FindFirstChild(ringName)
local center=ring and ring:FindFirstChild("Center")
if not root or not humanoid or not targetRoot or not center then stopFootwork();return end
local retreat=resting or action=="recover"or action=="guard"or action=="dodge"or view.incoming~=nil or (settings.Playstyle=="Angle Fighter"and (view.threat or view.recentAttack))
local style=styleParameters(settings.Playstyle)
local velocity=targetRoot.AssemblyLinearVelocity
if targetMotion and targetMotion.entity==entity then
local dt=now-targetMotion.at
if dt>=0.008 and dt<0.15 then
local sampled=(targetRoot.Position-targetMotion.position)/dt
if sampled.Magnitude<45 then velocity=sampled*0.45+targetMotion.velocity*0.55 end
end
end
targetMotion={entity=entity,at=now,position=targetRoot.Position,velocity=velocity}
local offset=center.CFrame:PointToObjectSpace(root.Position)
local predicted=targetRoot.Position+leadOffset(velocity,style.lead)
local delta=center.CFrame:VectorToObjectSpace(predicted-root.Position)
local move=angleMovement(root,targetRoot,center,now) or footworkVector(delta,offset,retreat,math.floor(now/style.switch)%2==0 and 1 or -1,style)
footworkMove=center.CFrame:VectorToWorldSpace(move);footworkHumanoid=humanoid
humanoid:Move(footworkMove,false)
end
local function refreshFootwork()
if not settings.Enabled or not settings.AutoPlay or not state or state.locked()or menuOpen(state)then stopFootwork();return end
local ringName=player:GetAttribute("InRing")
if type(ringName)~="string"or ringName==""then stopFootwork();return end
local target=state.lockTgt
local entity=target and target.player
if typeof(entity)~="Instance"or not ringOpponent(ringName,entity:GetAttribute("InRing"),entity==player,entity:GetAttribute("BoxKO")==true)then stopFootwork();return end
local character=player.Character
local root=character and character:FindFirstChild("HumanoidRootPart")
local humanoid=character and character:FindFirstChildOfClass("Humanoid")
local enemy=entity:IsA("Player")and entity.Character or entity
local enemyRoot=enemy and enemy:FindFirstChild("HumanoidRootPart")
local gym=workspace:FindFirstChild("BoxingGym")
local rings=gym and gym:FindFirstChild("Rings")
local ring=rings and rings:FindFirstChild(ringName)
local center=ring and ring:FindFirstChild("Center")
if not root or not humanoid or not enemyRoot or not center then stopFootwork();return end
local style=styleParameters(settings.Playstyle)
local velocity=enemyRoot.AssemblyLinearVelocity
local predicted=enemyRoot.Position+leadOffset(velocity,style.lead)
local delta=center.CFrame:VectorToObjectSpace(predicted-root.Position)
local offset=center.CFrame:PointToObjectSpace(root.Position)
local retreat=resting or os.clock()<guardHoldUntil or ((settings.Playstyle=="Adaptive Defense"or settings.Playstyle=="Angle Fighter")and tactics.lastAttack>0 and os.clock()-tactics.lastAttack<0.55)
local move=angleMovement(root,enemyRoot,center,os.clock()) or footworkVector(delta,offset,retreat,math.floor(os.clock()/style.switch)%2==0 and 1 or -1,style)
footworkMove=center.CFrame:VectorToWorldSpace(move)
footworkHumanoid=humanoid
end
local function trackOpponent()
if not settings.Enabled or not settings.AutoPlay or not settings.AutoFace or settings.Tracking=="Native"or not state or state.locked()or menuOpen(state)or player:GetAttribute("BoxKO")==true then restoreTracking();return end
local target=state.lockTgt
local entity=target and target.player
if typeof(entity)~="Instance"or not ringOpponent(player:GetAttribute("InRing"),entity:GetAttribute("InRing"),entity==player,entity:GetAttribute("BoxKO")==true)or typeof(target.headWorld)~="Vector3"then restoreTracking();return end
ownTracking(state.prefs,"lockSpeed",4)
ownTracking(state,"lockRaw",true)
trackingMessage="Fast native"
if settings.Tracking~="Snap"or type(debug.setupvalue)~="function"or type(debug.getupvalue)~="function"then return end
local root=player.Character and player.Character:FindFirstChild("HumanoidRootPart")
local hum=player.Character and player.Character:FindFirstChildOfClass("Humanoid")
if not root or not hum then return end
local ok=pcall(function()
if type(state.doThrow)~="function"or debug.info(state.doThrow,"n")~="doThrow"or debug.getupvalue(state.doThrow,3)~=state or debug.getupvalue(state.doThrow,4)~=hum or type(debug.getupvalue(state.doThrow,5))~="number"then return end
local delta=target.headWorld-root.Position
if Vector3.new(delta.X,0,delta.Z).Magnitude<0.1 then return end
debug.setupvalue(state.doThrow,5,math.atan2(-delta.X,-delta.Z));trackingMessage="Snap"
end)
if not ok then trackingMessage="Fast native (snap unavailable)"end
end
local function applyPlaystyle(name)
local style=styleParameters(name)
settings.Playstyle=name;settings.Combo=style.combo;settings.Stance=style.stance;settings.Interval=style.interval
settings.Range=style.range or math.clamp(style.distance+0.85,3,6)
settings.FatigueLimit=style.fatigue or 0.7
settings.AutoPunch=true;settings.AutoCounter=true;settings.AutoGuard=true;settings.AutoDodge=true;settings.AutoFace=true;settings.AutoGetUp=true;settings.StaminaSaver=true
comboIndex=0;comboTarget=nil
for _,key in ipairs({"Playstyle","Combo","Stance","Interval","Range","FatigueLimit","AutoPunch","AutoCounter","AutoGuard","AutoDodge","AutoFace","AutoGetUp","StaminaSaver"})do
if controls[key]then if type(setthreadidentity)=="function"then setthreadidentity(8)end;controls[key]:Set(settings[key],true)end
end
message=name.." preset applied"
end
local function tick(now)
if window and window.unloaded then cleanup();return end
if not state or now-lastScan>2 then
lastScan=now
local current,why=findState()
if current~=state then release();restoreExtras();state=current;resting=false end
if not state then message=why;return end
end
if not settings.Enabled then release();return end
extras(state,now)
local view=snapshot(state,now)
if settings.AutoPlay and view.target then observeTactics(view,now)end
if not view.blocked and settings.Teleport~="Off"and state.lockTgt and view.entity and now-lastTeleport>0.7 then
local character=view.entity:IsA("Player")and view.entity.Character or view.entity
local targetRoot=character and character:FindFirstChild("HumanoidRootPart")
local root=player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if root and targetRoot and(targetRoot.Position-root.Position).Magnitude<25 and view.entity:GetAttribute("BoxKO")~=true then
local desired=(targetRoot.CFrame*CFrame.new(0,0,3.2)).Position
if settings.Teleport=="TP behind target"or(targetRoot.Position-root.Position).Magnitude>4.5 then
root.CFrame=CFrame.lookAt(desired,Vector3.new(targetRoot.Position.X,desired.Y,targetRoot.Position.Z))
lastTeleport=now;message="Position step requested";return
end
end
end
if view.threat or view.incoming then
local hold=settings.Playstyle=="Angle Fighter"and 0.4 or 0.32
guardUntil=now+hold;guardHoldUntil=now+hold
end
view.threat=view.threat or now<guardUntil
local action;action,resting=plan(view,settings,resting)
tactics.lastDecision=action
if settings.Playstyle=="Angle Fighter"and action=="watch"then tactics.lastDecision=angleState.reason end
autoFootwork(view,action,now)
if action~="punch"and action~="counter"and action~="angleHook"then comboIndex=0;comboTarget=nil end
if action=="dodge"then
if now-lastDodge>0.2 and view.incoming then
local evadeMode=view.incoming.mode
if settings.Playstyle=="Angle Fighter"and view.incoming.headThreat and (view.incoming.kind=="hook"or view.incoming.kind=="over")then evadeMode="weave"end
state.startEvade(evadeMode,view.incoming.direction);lastDodge=now
if settings.Playstyle=="Angle Fighter"then angleState.lastEvadeAt=now;angleState.evadeCounterUntil=now+0.65 end
if settings.AutoGuard then writeOwned(state.holds,"guard",true)end
message="Evading "..view.incoming.kind.." • "..evadeMode;return
end
if settings.AutoGuard then writeOwned(state.holds,"guard",true)end
message="Guarding while dodge recovers";return
end
if action=="guard"then
writeOwned(state.holds,"guard",true);message="Guarding incoming punch";return
end
release()
if action=="recover"then message=view.stamina and "Recovering — stamina "..math.floor(view.stamina*100).."% of current capacity"or "Recovering — fatigue "..math.floor(view.fatigue*100).."%";return end
if action=="target"then message="Lock on with Q and face a standing opponent within range";return end
if action=="wait"then message="Waiting — menu, replay, knockout or round pause";return end
if action=="watch"then message="Watching opponent";return end
local kind,zone=smartPunch(view.entity,view.distance,view.stamina and 1-view.stamina or view.fatigue,count)
if settings.Playstyle=="Adaptive Defense"or settings.Playstyle=="Angle Fighter"or settings.Combo=="Smart"then
local e=view.entity
local h,b=tonumber(e:GetAttribute("HeadHP")),tonumber(e:GetAttribute("BodyHP"))
local hc,bc=tonumber(e:GetAttribute("HeadCap")),tonumber(e:GetAttribute("BodyCap"))
if h and b and hc and bc and hc>0 and bc>0 then
local hr,br=h/hc,b/bc
zone=hr<=br and "head"or "body"
if lastEnemyHealth.entity==e and lastEnemyHealth.head and lastEnemyHealth.body then
local dh=lastEnemyHealth.head-hr
local db=lastEnemyHealth.body-br
if math.max(dh,db)>0.025 then zone=dh>=db and "head"or "body"end
end
lastEnemyHealth={entity=e,head=hr,body=br,at=now}
end
end
local side=count%2==0 and "L"or "R"
local comboEnd
if comboTarget~=view.entity or comboStyle~=settings.Combo or now-lastComboAt>1.5 then comboIndex=0 end
if action~="counter"and action~="angleHook"then
local comboKind,comboZone,comboSide,finished=boxingPunch(settings.Combo,comboIndex,view.distance)
if comboKind=="range"then message="Closing distance for combination";return end
if comboKind then kind,side,comboEnd=comboKind,comboSide,finished;if settings.Combo~="Smart"and settings.Playstyle~="Adaptive Defense"and settings.Playstyle~="Angle Fighter"then zone=comboZone end end
end
writeOwned(state.holds,"body",zone=="body")
writeOwned(state,"spaceTarget",zone)
if now<nextPunch then return end
if action=="counter"then kind="straight" end
if action=="angleHook"then kind="hook";zone="head";writeOwned(state.holds,"body",false);writeOwned(state,"spaceTarget","head")end
side=stanceSide(side,settings.Stance)
state.act.punch(side,kind,"down")
state.act.punch(side,kind,"up")
if action=="counter"then lastCounter=tonumber(state.counterOpenAt)or now end
nextPunch=now+settings.Interval+(comboEnd and 0.25 or 0);count+=1
if settings.Playstyle=="Angle Fighter"then angleState.lastPunchAt=now;angleState.openingUntil=0;angleState.evadeCounterUntil=0;angleState.hookUntil=0 end
comboIndex=action=="counter"and 0 or comboIndex+1;comboTarget=view.entity;comboStyle=settings.Combo;lastComboAt=now
message=(action=="counter"and "Counter • "or "")..side.." "..kind.." → "..zone.." (native request)"
end
local ok,err=pcall(function()
local Rayfield=loadstring(game:HttpGet("https://sirius.menu/gen2"))()
window=Rayfield:CreateWindow({name="First Person Boxing | Cinder HUB leaked by real",showName="Cinder HUB",theme="cobalt",sidebarLayout=false,subtitle="F8 Pause • End Unload"})
window.screenGui:SetAttribute("CinderHub","FirstPersonBoxing")
sentinel:SetAttribute("CinderWindow",window.screenGui.Name)
if Input.TouchEnabled then
window.settings.mouseOverride=false
window._applyWindowSize=function(self)
if self.unloaded then return end
local v=self.screenGui.AbsoluteSize
if v.X<200 or v.Y<200 then return end
local size=UDim2.fromOffset(math.floor(math.min(520,math.max(300,v.X*0.82),v.X-24)),math.floor(math.min(380,v.Y*0.72)))
local changed=self.size~=size;self.size=size
if self.hidden or self.minimised or self.animating or self._revealing then self._pendingResize=self._pendingResize or changed;return end
if changed or self._pendingResize then self._pendingResize=false;self.main.Size=size;self:_clampToScreen();self:_syncDragBar()end
end
window:_applyWindowSize()
end
local tab=window:CreateTab({name="Boxing"})
card=tab:CreateText({name="Fight assistant",text=message});card.body.RichText=false
local tacticalCard=tab:CreateText({name="Adaptive AI telemetry",text="Waiting for opponent"});tacticalCard.body.RichText=false
controls.TacticalCard=tacticalCard
master=tab:CreateToggle({name="Enable assistance",value=false,forgetState=true,callback=enabled})
controls.AutoPlay=tab:CreateToggle({name="Autoplay ring match",description="Approach, circle and retreat against your same-ring opponent, CPU or player. Requires assistance. WASD overrides movement.",value=false,forgetState=true,callback=function(v)
settings.AutoPlay=v
if not v then stopFootwork();return end
for _,k in ipairs({"AutoPunch","AutoGuard","AutoCounter","AutoDodge","AutoGetUp","AutoFace","StaminaSaver"})do settings[k]=true;if controls[k]then controls[k]:Set(true,true)end end
end})
for _,item in ipairs({{"Auto Punch / Auto Attack","AutoPunch"},{"Auto Block","AutoGuard"},{"Auto Counter","AutoCounter"},{"Auto Dodge","AutoDodge"},{"Auto Get Up","AutoGetUp"},{"Auto Face Enemy","AutoFace"},{"Stamina Saver","StaminaSaver"}})do
local k=item[2]
controls[k]=tab:CreateToggle({name=item[1],value=settings[k],forgetState=true,callback=function(v)settings[k]=v;if not v then release();restoreExtras()end end})
end
local configTab=window:CreateTab({name="Config"})
controls.Combo=configTab:CreateDropdown({name="Combo",options={"Boxing mix","Jab-Cross","1-2-3","Body-Head","Uppercut-Hook","Smart","Balanced","Straights","Hooks"},value=settings.Combo,forgetState=true,callback=function(v)settings.Combo=v;comboIndex=0 end})
controls.Playstyle=tab:CreateDropdown({name="Playstyle",description="Each preset automatically configures punch timing, range, fatigue threshold, combo and stance. Advanced overrides are in Config.",options={"Balanced","Adaptive Defense","Angle Fighter","Pacquiao-inspired","Mayweather-inspired","Pressure (CPU)"},value=settings.Playstyle,forgetState=true,callback=applyPlaystyle})
controls.Stance=configTab:CreateDropdown({name="Punch stance",options={"Orthodox","Southpaw"},value=settings.Stance,forgetState=true,callback=function(v)settings.Stance=v;comboIndex=0 end})
controls.Target=configTab:CreateDropdown({name="Target zone",options={"Head","Body","Alternate"},value=settings.Target,forgetState=true,callback=function(v)settings.Target=v end})
controls.Interval=configTab:CreateSlider({name="Punch interval",range={0.35,1.2},increment=0.05,value=settings.Interval,suffix="s",forgetState=true,callback=function(v)settings.Interval=v end})
controls.Range=configTab:CreateSlider({name="Maximum range",range={3,6},increment=0.25,value=settings.Range,forgetState=true,callback=function(v)settings.Range=v end})
controls.FatigueLimit=configTab:CreateSlider({name="Rest at fatigue",range={0.4,0.95},increment=0.05,value=settings.FatigueLimit,forgetState=true,callback=function(v)settings.FatigueLimit=v end})
tab:CreateButton({name="Toggle native lock-on",callback=function()local s=findState();if s then s.act.toggle("lock")end end})
configTab:CreateButton({name="Counter-focused AI preset",description="Smart body targeting, faster requests, native counters and defense. Preserves your chosen guard style.",callback=function()
local preset={Combo="Smart",AutoCounter=true,AutoDodge=true,AutoGuard=true,AutoFace=true,AutoGetUp=true,StaminaSaver=true,Interval=0.4,SpeedBoost=false}
for k,v in pairs(preset)do settings[k]=v;if controls[k]then controls[k]:Set(v,true)end end
restoreMovement();message="Counter-focused preset applied"
end})
tab:CreateButton({name="Start available CPU spar",callback=function()
enabled(false);syncMaster()
local s=findState()
if s and s.playAI and s.aiBtn and s.aiBtn.Visible and not player:GetAttribute("InRing")then
s.playAI();message="Native CPU spar requested — enable assistance when ready"
else message="Use the native ring queue first; CPU spar is not available here"end
end})
tab:CreateButton({name="Unload hub",callback=cleanup})
local injectorTab = window:CreateTab({name="Injector"})
local scriptBox
local statusLabel
scriptBox = injectorTab:CreateInput({
name = "Script Source",
placeholder = "Paste Lua code here, then press Execute",
currentValue = "",
removeTextAfterFocusLost = false,
callback = function(text)
settings.PendingScript = text
end
})
injectorTab:CreateButton({
name = "Execute Script",
callback = function()
local src = settings.PendingScript or ""
if src == "" then
if statusLabel then statusLabel:Set("No script to execute") end
return
end
local fn, err = loadstring(src)
if not fn then
if statusLabel then statusLabel:Set("Compile error: " .. tostring(err)) end
return
end
local ok2, runErr = pcall(fn)
if ok2 then
if statusLabel then statusLabel:Set("Executed successfully ("..#src.." bytes)") end
else
if statusLabel then statusLabel:Set("Runtime error: " .. tostring(runErr)) end
end
end
})
injectorTab:CreateButton({
name = "Execute from Clipboard",
callback = function()
local src = tostring(getclipboard())
if src == "" then
if statusLabel then statusLabel:Set("Clipboard is empty") end
return
end
local fn, err = loadstring(src)
if not fn then
if statusLabel then statusLabel:Set("Compile error: " .. tostring(err)) end
return
end
local ok2, runErr = pcall(fn)
if ok2 then
if statusLabel then statusLabel:Set("Executed clipboard ("..#src.." bytes)") end
else
if statusLabel then statusLabel:Set("Runtime error: " .. tostring(runErr)) end
end
end
})
injectorTab:CreateButton({
name = "Execute from URL",
callback = function()
local src = settings.PendingScript or ""
local url = src:match("^%s*(https?://%S+)%s*$")
if not url then
if statusLabel then statusLabel:Set("Paste a URL into the input box first") end
return
end
local okFetch, body = pcall(game.HttpGet, game, url)
if not okFetch or type(body) ~= "string" then
if statusLabel then statusLabel:Set("Fetch failed: " .. tostring(body)) end
return
end
local fn, err = loadstring(body)
if not fn then
if statusLabel then statusLabel:Set("Compile error: " .. tostring(err)) end
return
end
local ok2, runErr = pcall(fn)
if ok2 then
if statusLabel then statusLabel:Set("Executed URL ("..#body.." bytes)") end
else
if statusLabel then statusLabel:Set("Runtime error: " .. tostring(runErr)) end
end
end
})
injectorTab:CreateButton({
name = "Clear Input",
callback = function()
settings.PendingScript = ""
if scriptBox and scriptBox.Set then scriptBox:Set("") end
if statusLabel then statusLabel:Set("Cleared") end
end
})
statusLabel = injectorTab:CreateText({
name = "Status",
text = "Ready"
})
local visuals=window:CreateTab({name="ESP"})
for _,item in ipairs({{"Player ESP","PlayerESP"},{"CPU ESP","CPU_ESP"},{"Show Head + Body HP","ShowHP"}})do
local key=item[2];controls[key]=visuals:CreateToggle({name=item[1],value=settings[key],forgetState=true,callback=function(v)
if type(setthreadidentity)=="function"then setthreadidentity(8)end
settings[key]=v;updateESP()
end})
end
local movement=window:CreateTab({name="Movement"})
controls.Tracking=movement:CreateDropdown({name="Autoplay tracking",description="Snap aims at the current target each render frame; Fast uses native raw lock-on. Requires Autoplay and Auto Face.",options={"Snap","Fast","Native"},value=settings.Tracking,forgetState=true,callback=function(v)settings.Tracking=v;if v=="Native"then restoreTracking()end end})
controls.SpeedBoost=movement:CreateToggle({name="Speed Boost",value=false,forgetState=true,callback=function(v)settings.SpeedBoost=v;if not v then restoreMovement()end end})
controls.WalkSpeed=movement:CreateSlider({name="Walk Speed",range={8.5,20},increment=0.5,value=settings.WalkSpeed,forgetState=true,callback=function(v)settings.WalkSpeed=v end})
controls.Teleport=movement:CreateDropdown({name="Positioning (experimental)",description="Opt-in local movement; the server may correct it. Requires assistance on.",options={"Off","TP Aura","TP behind target"},value="Off",forgetState=true,callback=function(v)settings.Teleport=v end})
end)
if not ok then cleanup();error(err)end
local bridge=Instance.new("BindableFunction");bridge.Name="CinderBoxingControl";bridge.Parent=sentinel
bridge.OnInvoke=function(action,value)
if type(setthreadidentity)=="function"then setthreadidentity(8)end
if action=="state"then return {enabled=settings.Enabled,requests=count,message=message,tracking=trackingMessage,adapter=state~=nil,settings=table.clone(settings)}end
if action=="restore"and type(value)=="table"then
for k,v in pairs(value)do if settings[k]~=nil and type(settings[k])==type(v)then settings[k]=v;if controls[k]then controls[k]:Set(v,true)end end end
enabled(settings.Enabled);syncMaster();updateESP();return true
end
if action=="enable"then enabled(value);syncMaster();return true end
if action=="preset"and(value=="Balanced"or value=="Pacquiao-inspired"or value=="Mayweather-inspired"or value=="Pressure (CPU)"or value=="Adaptive Defense"or value=="Angle Fighter")then applyPlaystyle(value);return true end
if action=="unload"then cleanup();return true end
end
attach(Input.InputBegan,function(key,processed)
if processed or Input:GetFocusedTextBox()then return end
if key.KeyCode==Enum.KeyCode.End then cleanup()
elseif key.KeyCode==Enum.KeyCode.F8 then enabled(not settings.Enabled);syncMaster()end
end)
attach(player.CharacterAdded,function()enabled(false);syncMaster();state=nil end)
Run:BindToRenderStep("CinderBoxingTracking",Enum.RenderPriority.Camera.Value,function()
local trackOK=pcall(trackOpponent)
if not trackOK then restoreTracking()end
end)
footworkBound=true
local footworkElapsed=0
Run:BindToRenderStep("CinderBoxingFootwork",Enum.RenderPriority.Character.Value+1,function()
if trackingMessage=="Snap"and settings.Enabled and settings.AutoPlay and settings.AutoFace and state and not state.locked()and not menuOpen(state)and player:GetAttribute("BoxKO")~=true then
local camera=workspace.CurrentCamera
local target=state.lockTgt
local entity=target and target.player
if camera and typeof(entity)=="Instance"and ringOpponent(player:GetAttribute("InRing"),entity:GetAttribute("InRing"),entity==player,entity:GetAttribute("BoxKO")==true)and typeof(target.headWorld)=="Vector3"and(target.headWorld-camera.CFrame.Position).Magnitude>0.1 then
camera.CFrame=CFrame.lookAt(camera.CFrame.Position,target.headWorld)
end
end
if not alive or not settings.Enabled or not settings.AutoPlay then return end
local now=os.clock()
if now-footworkElapsed<1/30 then
if footworkHumanoid and footworkHumanoid.Parent then footworkHumanoid:Move(footworkMove,false)end
return
end
footworkElapsed=now
if player:GetAttribute("BoxKO")==true or not state or state.locked()or menuOpen(state)then stopFootwork();return end
for _,key in ipairs({Enum.KeyCode.W,Enum.KeyCode.A,Enum.KeyCode.S,Enum.KeyCode.D})do if Input:IsKeyDown(key)then return end end
local ok2,err2=pcall(refreshFootwork)
if not ok2 then stopFootwork();message="Footwork error: "..tostring(err2);return end
if footworkHumanoid and footworkHumanoid.Parent then footworkHumanoid:Move(footworkMove,false)end
end)
footworkBound=true
local elapsed=0
local uiElapsed=0
local consecutiveTickErrors=0
attach(Run.Heartbeat,function(dt)
elapsed+=dt
local interval=Input.TouchEnabled and 1/30 or 1/45
if elapsed<interval then return end
elapsed=0
local now=os.clock()
local success,failure=xpcall(function()tick(now)end,function(err)
return tostring(err)..(debug.traceback and "\n"..debug.traceback("",2)or "")
end)
if success then
consecutiveTickErrors=0
else
consecutiveTickErrors+=1
local detail=tostring(failure)
warn("[Cinder Boxing] Tick error ("..consecutiveTickErrors.."/5): "..detail)
stopFootwork()
if consecutiveTickErrors>=5 then
enabled(false);syncMaster();message="Paused after repeated errors: "..detail
else
message="Recovering from tick error ("..consecutiveTickErrors.."/5): "..detail
end
end
if alive and card and now-lastUI>1 then
lastUI=now
if type(setthreadidentity)=="function"then setthreadidentity(8)end
local displayOK,displayError=pcall(function()
if settings.PlayerESP or settings.CPU_ESP or next(esp) then updateESP()end
card.body.Text=(settings.Enabled and "ON"or "PAUSED").." • Requests "..count.."\n"..message
if controls.TacticalCard then controls.TacticalCard.body.Text=string.format("Mode: %s | Opponent: %s\nAttacks: %d | Pace: %.1f/s | Last: %s\nDamage dealt: %.0f | Taken: %.0f",tactics.lastDecision,tactics.entity and tactics.entity.Name or "none",tactics.attacks,tactics.rate,tactics.lastIncoming or "unknown",tactics.damageDealt,tactics.damageTaken)end
end)
if not displayOK then message="Display error: "..tostring(displayError)end
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