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.
- 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 the latest archive from the Releases page.
- Extract the release into your open.mp server root while keeping folder structure.
- Ensure at least these files are placed correctly:
components/ColAndreas.so(Linux shared package includes requiredlibBullet*.so/libLinearMath.sofiles)components/ColAndreas_static.so(Linux static package alternative)components/ColAndreas.dll(Windows)pawno/include/colandreas.inc
- Place the collision database file as
scriptfiles/ColAndreas/ColAndreas.cadb. - Make sure your server configuration loads the component.
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.sofiles next toColAndreas.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).
git clone https://github.com/Knogle/ColAndreas.git
cd ColAndreas
git submodule update --init --recursiveDependencies (Debian/Ubuntu):
sudo apt-get update
sudo apt-get install -y cmake ninja-build g++-multilib gitBuild:
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 --parallelOutput:
build/ColAndreas.so(orbuild/ColAndreas_static.soif linked against static Bullet libraries)
Workflow file: .github/workflows/ci.yml
Triggers:
pushpull_requestrelease(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.incmatch natives registered insrc/ColAndreas.cpp.
Release behavior:
- Build Linux (shared + static) and Windows artifacts.
- Package
ColAndreas-linux.tar.gz(shared build + bundled Bullet.sofiles),ColAndreas-linux-static.tar.gz, andColAndreas-windows.zip. - Upload release package asset automatically to the GitHub release.
- Runtime target: open.mp servers
- SDK: open.mp SDK (
libs/omp-sdksubmodule) - Physics engine: Bullet
Original project and foundation by [uL]Pottus, [uL]Chris42O and [uL]Slice.