Git Product home page Git Product logo

bunnymodxt's Introduction

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.

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.

bunnymodxt's People

Contributors

yalter avatar smileyag avatar matherunner avatar hobokenn avatar chinese-soup avatar khanghugo avatar eddio0141 avatar marckvdv avatar mxpph avatar philippthecat avatar quantumdude836 avatar godlikehobbit avatar margen67 avatar arianon avatar fireblizzard avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.