Go runtime and bindings for building open.mp components with CGO.
What this is
- Go runtime that loads open.mp C-API and dispatches events to your gamemode.
- Generated Go bindings for open.mp functions and events.
- A simple pattern for building a single Go shared library component.
Quick start
- Write a
mainpackage that registers a gamemode and exports the required component entry points. - Build with
-buildmode=c-shared. - Copy the .so into your server’s components folder.
Docs
Dependency workflow
- The upstream open.mp C API now lives in the git submodule at
third_party/openmp-capi. - The repo builds from committed snapshots in
tools/codegen/data/openmp-capiandpkg/runtime/include/ompcapi.h. - Use
task sync:openmp-capito copyapi.json,events.json, andompcapi.hfrom the submodule into those committed paths. - Use
task update:openmp-capito update the submodule and refresh the committed snapshots in one step.
Examples
- examples/README.md
- examples/basic/main.go
- examples/context/main.go
- examples/deathmatch/main.go
- examples/events/main.go
- examples/freeroam/main.go
- examples/grandlarc/main.go
Packages
- ompgo-streamer - Recreates the streamer plugin using ompgo
- ompgo-extras - A bunch of helper packages for common gamemode workflows. (command and dialog routers, and textdraw builder)