Skip to content

Knogle/ColAndreas

 
 

Repository files navigation

ColAndreas Component for open.mp

Build and Release Latest Release Total Downloads Latest Release Downloads

ColAndreas is an open.mp component that provides server-side collision and world queries for San Andreas using the Bullet Physics library.

Current version: v1.6.0

Current maintainer: Knogle

Versioning note: v1.6.0 is the first mainline release on master for the open.mp component line. The old SA-MP plugin remains part of the project's legacy history.

Highlights

  • open.mp component builds for Linux (shared + static) and Windows (ColAndreas.so, ColAndreas_static.so, ColAndreas.dll).
  • Native API for ray casts, contact tests, object collision management and utility conversions.
  • Include file and component shipped together for straightforward deployment.
  • CI with 32-bit Linux (shared + static) and Windows builds plus native API exposure verification.

Download and Installation

  1. Download the latest archive from the Releases page.
  2. Extract the release into your open.mp server root while keeping folder structure.
  3. Ensure at least these files are placed correctly:
    • components/ColAndreas.so (Linux shared package includes required libBullet*.so / libLinearMath.so files)
    • components/ColAndreas_static.so (Linux static package alternative)
    • components/ColAndreas.dll (Windows)
    • pawno/include/colandreas.inc
  4. Place the collision database file as scriptfiles/ColAndreas/ColAndreas.cadb.
  5. Make sure your server configuration loads the component.

Linux Runtime Note

If you get a missing Bullet shared library error at runtime, use one of these options:

You can either:

  • Use the shared Linux release package (ColAndreas-linux.tar.gz), which now includes the required Bullet .so files next to ColAndreas.so.
  • Use the static Linux release package (ColAndreas-linux-static.tar.gz) / ColAndreas_static.so.
  • Install Bullet runtime packages from your distribution (mainly needed for custom/manual deployments).

Build from Source

Repository Setup

git clone https://github.com/Knogle/ColAndreas.git
cd ColAndreas
git submodule update --init --recursive

Linux x86 (CMake)

Dependencies (Debian/Ubuntu):

sudo apt-get update
sudo apt-get install -y cmake ninja-build g++-multilib git

Build:

git clone --depth 1 https://github.com/bulletphysics/bullet3 deps/bullet3
cmake -S deps/bullet3 -B deps/bullet3-build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="$PWD/deps/bullet3-install" \
  -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" -DCMAKE_SHARED_LINKER_FLAGS="-m32" \
  -DBUILD_SHARED_LIBS=ON -DINSTALL_LIBS=ON -DBUILD_BULLET2_DEMOS=OFF -DBUILD_CPU_DEMOS=OFF -DBUILD_EXTRAS=OFF -DBUILD_OPENGL3_DEMOS=OFF -DBUILD_UNIT_TESTS=OFF
cmake --build deps/bullet3-build --target install --parallel

cmake -S . -B build -G Ninja -DFORCE_32_BIT=ON -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_PREFIX_PATH="$PWD/deps/bullet3-install"
cmake --build build --parallel

Output:

  • build/ColAndreas.so (or build/ColAndreas_static.so if linked against static Bullet libraries)

CI/CD

Workflow file: .github/workflows/ci.yml

Triggers:

  • push
  • pull_request
  • release (published)
  • workflow_dispatch

CI checks:

  • Configure and build ColAndreas as 32-bit on Linux (shared and static variants) and Windows (Win32).
  • Validate that natives declared in Server/include/colandreas.inc match natives registered in src/ColAndreas.cpp.

Release behavior:

  • Build Linux (shared + static) and Windows artifacts.
  • Package ColAndreas-linux.tar.gz (shared build + bundled Bullet .so files), ColAndreas-linux-static.tar.gz, and ColAndreas-windows.zip.
  • Upload release package asset automatically to the GitHub release.

Compatibility

  • Runtime target: open.mp servers
  • SDK: open.mp SDK (libs/omp-sdk submodule)
  • Physics engine: Bullet

Credits

Original project and foundation by [uL]Pottus, [uL]Chris42O and [uL]Slice.

About

Collision Plugin For San Andreas Multiplayer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 43.0%
  • C++ 34.9%
  • Pawn 12.5%
  • HTML 8.1%
  • Other 1.5%