• Stars
    star
    200
  • Rank 195,325 (Top 4 %)
  • Language
    C++
  • License
    Other
  • Created about 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Speedrun and TAS tool for Half-Life & friends.

Bunnymod XT

VAC BAN WARNING: Do NOT connect to servers with this injected, or you might get VAC banned!

Bunnymod XT (BXT for short) is a cross-platform tool that provides speedrunning and TAS-related features for GoldSource games such as Half-Life and its modifications.

Used by hundreds if not thousands of speedrunners worldwide.

Bunnymod XT provides state-of-the-art speedrunning and TASing features and utilities, ranging from detailed HUDs to advanced autostrafing. It is a successor to the obsoleted hlspbunny and Bunnymod Pro.

Why?

Despite the "mod" in Bunnymod XT, this is not a mod in the usual sense. Most Half-Life modifications work by modifying the Half-Life SDK and distributing the resulting DLLs. This includes the deprecated Bunnymod Pro. The downside is that while you can "mod" Half-Life itself, you cannot "mod" another Half-Life mod. This is a serious limitation for speedrunners intending to speedrun Half-Life mods and expansions.

To rectify this, Bunnymod XT injects into the Half-Life process while leaving every file on the disk intact. This means all modifications are done on-the-fly in RAM. This also means Bunnymod XT supports a wider range of Half-Life engines, from WON to the latest Steam.

Installation

Windows

The instructions are described here.

Linux

Use the Bunnymod XT Launcher.

Documentation

On the Wiki pages.

Environment variables

  • BXT_SCRIPT - if set to a filename of a hltas script, loads the non-shared RNG from that script on load.
  • BXT_LOGFILE - if set, logs all Bunnymod XT messages into a file with that filename.
  • SPTLIB_DEBUG - if set to 1, logs all dlopen, dlclose and dlsym calls.
  • BXT_DISABLE_DEBUG_CONSOLE - if set, disables the Bunnymod XT debug console.
  • BXT_DISABLE_DISCORD_RPC - if set, disables the Discord RPC module.
  • BXT_DISABLE_VSYNC - if set, disables the V-Sync on initialization (Windows-only).

Building

Windows

Building on Windows requires

  • Visual Studio 2019 or 2022
  • Boost
  • Rust
    • The i686-pc-windows-msvc target must be installed. You can do that using rustup target add i686-pc-windows-msvc.

Run the following commands, replacing path\to\boost\base\dir with path to the Boost base directory:

git clone https://github.com/YaLTeR/BunnymodXT
cd BunnymodXT
git submodule update --init --recursive
mkdir build
cd build
cmake -A Win32 -DBOOST_ROOT=path\to\boost\base\dir -Wno-dev ..

Then compile the ALL_BUILD project from the generated VS solution.

If you want to make a release build, you need to specify -DCMAKE_BUILD_TYPE=Release in the cmake command line arguments. This is needed because the Rust CMake module uses that variable to determine whether to build the crate in release or debug mode.

Linux

GNOME Builder

  1. Set up Flathub by following the guide for your distribution.

  2. Install GNOME Builder.

  3. Open GNOME Builder.

  4. Press the Clone Repository button, enter https://github.com/YaLTeR/BunnymodXT.git and press Clone Project. Wait until it finishes.

    The cloning window should close, and a new window with the BunnymodXT project should open.

  5. If Builder prompts you to install missing SDKs, press Install and wait for the process to finish. It will take a while. You can monitor the progress by pressing the circle in the top-right.

  6. Click on the bar at the top-center which says BunnymodXT, and click the Build button.

  7. Once the build finishes, in the same bar menu click the Export Bundle button. The file manager will open in a path that looks like gnome-builder/projects/BunnymodXT/flatpak/staging/x86_64-master. Navigate up to the BunnymodXT folder, then down to builds/rs.bxt.BunnymodXT.json-... where you will find the built libBunnymodXT.so.

  8. Now you can make some changes to the code and press Build, then grab libBunnymodXT.so from the same folder.

Manually

Building on Linux requires

  • A recent GCC or Clang toolchain
  • Boost
  • Rust: either from your distribution's packages, or from rustup.
    • The i686-unknown-linux-gnu target must be installed. You can do that using rustup target add i686-unknown-linux-gnu.

Many of these dependencies can be installed from a package manager.

git clone https://github.com/YaLTeR/BunnymodXT
cd BunnymodXT
git submodule update --init --recursive
mkdir build
cd build
cmake -Wno-dev ..
make

Note that -DBOOST_ROOT is not required as CMake should be able to find its location in your system. In case it couldn't, you need to specify it manually like the case on Windows.

More Repositories

1

niri

A scrollable-tiling Wayland compositor.
Rust
1,414
star
2

wl-clipboard-rs

A safe Rust crate for working with the Wayland clipboard.
Rust
232
star
3

OpenAG

An open-source reimplementation of Adrenaline Gamer's client library.
C++
125
star
4

MouseTweaks

A Minecraft mod that enhances inventory management.
Java
94
star
5

SourcePauseTool

This was once just a plugin to prevent game unpausing.
C++
86
star
6

bxt-rs

Fastest video recording and TAS tools for Half-Life & mods.
Rust
36
star
7

circular-queue

A circular buffer-like queue container.
Rust
33
star
8

hl-capture

A tool for capturing Half-Life videos on Linux.
Rust
33
star
9

vapoursynth-rs

A safe Rust wrapper for VapourSynth.
Rust
27
star
10

hldemo-rs

Half-Life demo format parser using nom.
Rust
21
star
11

plitki

An experimental vertical scrolling rhythm game engine.
Rust
20
star
12

hlkreedz

Pawn
18
star
13

BunnymodXT-Injector

A small simple injector for Bunnymod XT.
C++
13
star
14

bxt-launcher

GUI launcher for Bunnymod XT on Linux
Vala
12
star
15

yalter-bot

A simple Discord bot written in Rust.
Rust
10
star
16

minhook-sys

Rust bindings to MinHook.
C
10
star
17

osu-auto-plus

osu! cursor dancing with highest possible scores on 2B maps.
C++
10
star
18

DemTools

A collection of tools operating GoldSource demo files.
C++
9
star
19

HLDemo

A library for parsing GoldSource demo files.
C++
8
star
20

LiveSplit.BunnySplit

An AutoSplit component which works with Bunnymod XT.
C#
7
star
21

dotfiles

Lua
6
star
22

HLSDemo

A library for parsing Half-Life: Source old old engine demo files.
C++
5
star
23

BunnymodXT-Demoplayer

Old version of Bunnymod for Half-Life mods.
C++
5
star
24

SPTLib

A hooking library used by SPT and Bunnymod XT.
C
4
star
25

hls-autopause

Experimenting with hooking in Rust. HLS: OOE autopause as an example.
Rust
4
star
26

compress

An implementation of a simple arithmetic coding data compression algorithm.
C++
4
star
27

blog

https://bxt.rs/
HTML
4
star
28

network-relay

Rust
3
star
29

SteamChatPainter

A C# tool to create smile patterns to be used in Steam chat conversations!
C#
3
star
30

talos-tools

Rust
3
star
31

bunnymod-pro

C++
3
star
32

hlfixperf

A small library to improve Half-Life's load times on Linux.
Rust
3
star
33

DemPack

GoldSource demo steganography.
C++
2
star
34

aoc2017

Advent of Code 2017 solutions
Rust
2
star
35

TASView

A repository of me having fun with C++, with showing stuff from Bunnymod XT as a side goal.
C++
2
star
36

UnexpectedFishing

A Bukkit plugin, that makes fishing slightly more... unexpected.
Java
1
star
37

ForestryFix

A mod that disables Forestry's mod protection on the client.
Scala
1
star
38

demo-reader

Shows information about a GoldSrc demo.
Rust
1
star
39

tas-log-reader

View TAS log files produced by Bunnymod XT. Proof-of-concept GTK 4 version of qconread2.
Rust
1
star
40

quaver-editor-plugin

Random utilities I needed.
Lua
1
star