Skip to content

PrepuBot v1.1.0 - PhysX Direct Memory & Dribbling Accuracy

Choose a tag to compare

@oypi oypi released this 04 Sep 13:56
· 26 commits to main since this release

PrepuBot v1.1.0 — PhysX Direct Memory, Dribbling Precision & Stealth Memory Reading

🚀 Highlights & Major Improvements

1. PhysX Rigid-Body Simulation State (RBState at 0x5D0)

  • 100% Atomic Synchronous State: Shifted from reading graphic render-thread properties (AActor::Location, AActor::Velocity) to reading the contiguous 52-byte PhysX simulation struct (RBActor_TA::RBState at offset 0x5D0).
  • Zero Render Interpolation Lag: Eliminates the 3 to 9 Unreal Unit position jitter and lag introduced by the game's render thread interpolation between 120Hz physics ticks.
  • Instantaneous 1-Op Read: Position, Linear Velocity, Angular Velocity, and Orientation Quaternion are now retrieved simultaneously in a single kernel read for both the player's car and the ball.

2. Sub-Millimeter Ball Dribbling & Roof Balancing

  • Eliminated Velocity-Proportional Position Drift: Removed artificial latency extrapolation (latency_comp = 0.0) that was causing the ball to appear 2.8 to 3.5 units behind the car in Nexto's self-relative frame during ground carries.
  • Stable Inverted-Pendulum Equilibrium: Closed-loop balance controller now matches the exact physical distribution Nexto was trained on in RLBot / BakkesMod, enabling rock-solid ball carrying and dribble mechanics without the ball falling off the bumper.

3. Zero-Footprint Stealth Memory Reading & Process Cloaking

  • Direct process_vm_readv Kernel Syscall: Upgraded memory backend from /proc/<pid>/mem file handles to direct Linux memory reading via libc.process_vm_readv.
  • Zero Open File Descriptors: Leaves 0 open file handles or descriptors pointing to the Rocket League process in /proc/self/fd/ or /proc/<pid>/fd/.
  • Process Cloaking: Both the Rust tactical GUI and the isolated Python bot worker dynamically disguise their /proc/<pid>/comm identity via prctl(PR_SET_NAME) to legitimate system processes (portal-helper), evading anti-cheat process scans.
  • Extreme Memory Performance: Read latency dropped from ~94 µs down to 2.44 µs per frame.

4. Menu & Transition Resiliency

  • Arm From Anywhere: You can now enable PrepuBot while in the main menu or paused. PrepuBot seamlessly waits and automatically engages the moment you enter Freeplay, an exhibition, or an online match.
  • Match Lifecycle Auto-Recovery: Fully handles match endings, goal replays, map reloads, and returning to the main menu without crashes or stale pointer exceptions.

5. Official Kickoff Synchronization

  • 120Hz Micro-Clock Kickoff Dispatch: Diagonal kickoff speedflip sequence synchronized with elapsed physics time.
  • Stochastic Kickoffs: Integrated Nexto's stochastic kickoff policy ($\beta = 0.5$) for non-diagonal spawns.

6. Universal Linux Focus Guard

  • Multi-desktop window detection protecting against background controller input dispatch across Niri, Hyprland, Sway, KDE Plasma, GNOME, and X11/Xwayland.

📦 Quick Start (Standalone Single-Binary)

No Python, PyTorch, Rust, or dependencies required!

# 1. Download 'prepubot' from this release
chmod +x prepubot

# 2. Grant controller and memory permissions:
sudo chmod 666 /dev/uinput
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

# 3. Launch the Tactical GUI:
./prepubot

Press F6 anywhere to toggle PrepuBot on/off in real time!