Skip to content

Releases: oypi/prepubot

PrepuBot v1.2.0 — Auto Offset Recovery, Dynamic Update Detection & Kickoff Overhaul

Choose a tag to compare

@oypi oypi released this 11 Sep 23:16

PrepuBot v1.2.0 — Auto Offset Recovery, Dynamic Update Detection & Kickoff Overhaul

🚀 Highlights & Major Improvements

1. Zero-Latency Dynamic Auto Offset Recovery

  • Instantaneous Verification (<0.5ms): On startup, PrepuBot validates our verified static offsets (GNAMES_ADDR = 0x142418148, GOBJECTS_ADDR = 0x142418190) by testing GNames[1] for the UTF-16LE signature "ByteProperty" and confirming realistic GObjects array bounds.
  • Dynamic Fallback on Recompiles: If Rocket League updates or recompiles and verified offsets fail, PrepuBot initiates an automated memory scanner (~1.4s) across the game's .data segment, recovers GNames and GObjects, and writes them to ~/.cache/prepubot/offsets.json.
  • Zero Interruption: Users never get stuck with a broken bot when Psyonix updates the game.

2. In-App Outdated Version Detection & Recommendations

  • Non-Blocking Background Check: Runs asynchronously on launch with a 3.0s timeout without delaying gameplay loops.
  • Interactive GUI Update Banner: When a newer release is published, the Tactical GUI displays a notification banner with a 1-click hyperlink to download the latest release from GitHub.
  • Private Repo & Offline Tolerant: Silently ignores connection errors, timeouts, or 404/403 responses while the repository is private or offline.

3. Overhauled Kickoff Controller & Terminal 50/50 Slam

  • Mirrored Diagonal Speedflips: Symmetrical, physics-synchronized speedflip dispatch for both left and right diagonal kickoff spawns.
  • Target-Lock Homing (sprint phase): After completing the flip, the controller homing-locks onto the exact center equator of the ball, completely ignoring opponent positioning to prevent premature dodges or swerves.
  • Terminal 50/50 Impact Dodge (impact phase): Executes an explosive forward dodge into the ball 50–80ms before contact, killing the 50/50 or winning possession.
  • Seamless AI Handover: Hands control over to Nexto only after the kickoff is resolved and the ball is in active play.

4. Air Recovery & Powerslide Landing Cushioning

  • Balanced 6DOF Air Recovery: Implemented PWM time-sharing between yaw alignment and roll leveling, eliminating flight-path rotation starvation.
  • Pre-Landing Powerslide: Pre-engages BTN_X while descending near the ground (car_z < 120.0), preserving 100% forward momentum when touching down sideways.

5. Multi-Agent 2v2/3v3 Attention Stability

  • Enhanced tactical depth matching for teammates and opponents in multi-agent lobbies, eliminating rapid steering twitches and rotational oscillations.

6. Public Release Hygiene & Standalone Packaging

  • Directly vendored RLMarlbot (Nexto, Seer, Element, Necto, Immortal).
  • Replaced all hardcoded paths with dynamic relative executable discovery.
  • Self-contained portable binary (dist/prepubot) bundling all dependencies (rlgym_compat, rlbot, PyTorch).

📦 Quick Start (Standalone Single Binary)

No Python, PyTorch, pip, git, or Rust required!

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

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

# 3. Launch the Tactical GUI:
./prepubot

Press F6 at any time while playing Rocket League to toggle autonomous driving on/off in real time!

PrepuBot v1.1.0 - PhysX Direct Memory & Dribbling Accuracy

Choose a tag to compare

@oypi oypi released this 04 Sep 13:56

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!

PrepuBot v1.0.0 - Standalone Single Binary

Choose a tag to compare

@oypi oypi released this 04 Sep 02:35

PrepuBot v1.0.0 - Standalone Single-Binary Release

Features

  • All-in-One Standalone Linux Executable: Embedded Python 3.14, PyTorch CPU, NumPy, evdev, Nexto model weights (nexto-model.pt), and the Rust Tactical GUI in a single portable 388MB binary.
  • Zero Dependencies: Friends do not need Python, PyTorch, pip, git, or Rust installed.
  • Easy Anti-Cheat (EAC) Compatibility: Automatic process disambiguation isolating RocketLeague.exe from RocketLeague_EAC.exe. Works out-of-process in normal EAC mode and offline (-noeac) mode.
  • In-GUI Permission Guidance: Helpful setup alerts in case /dev/uinput or ptrace_scope need configuration.
  • Cyberpunk Tactical HUD: Real-time 120Hz telemetry overlay with car speed, boost %, ball distance, and active decision state.
  • Global Hotkey Toggle: Instant engagement via F6 anywhere in-game.

Quick Start for Friends

  1. Download prepubot from this release.
  2. Run permission setup (one-time):
    sudo chmod 666 /dev/uinput
    echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  3. Make executable and run:
    chmod +x prepubot
    ./prepubot