A server scripting API for Sub Rosa.
|
|
||
|---|---|---|
| .github | ||
| cpp-httplib@35ef1c7bae | ||
| miniz@ca1a779ee1 | ||
| moonjit@a2a39ea718 | ||
| RosaServer | ||
| RosaServerSatellite | ||
| shared | ||
| sol2@d0eba0a754 | ||
| stb@af1a5bc352 | ||
| subhook@284047b761 | ||
| test | ||
| .clang-format | ||
| .gitignore | ||
| .gitmodules | ||
| build.sh | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
A linux server scripting API for Sub Rosa.
⚠ Early in development, APIs can change at any time.
RosaServer uses LuaJIT/moonjit; this means there's no hit to performance while being able to create anything from moderation tools to complex custom games with easy-to-write version agnostic code.
Getting Started
Installing
- Build the library or download the latest Release.
- Your directory should contain
libluajit.so,librosaserver.so,subrosadedicated.x64, and thedatafolder (the last two can be found with your game install).- You will also need the
rosaserversatellitebinary if you plan to use the ChildProcess API. Make sure it has execute permissions.
- You will also need the
- There's a 99% chance you'll also want to use RosaServerCore.
Running
LD_PRELOAD="$(pwd)/libluajit.so $(pwd)/librosaserver.so" ./subrosadedicated.x64
The server will start as normal and main/init.lua will be executed.
Documentation
For complete reference on using the Lua API, go to the wiki.
Building
Make sure all submodules are cloned, and run ./build.sh
Required Packages
build-essentialon Debian/Ubuntucmakelibssl-devlibsqlite3-devlibopus-dev
Here's a basic script I use to copy the required files after they're compiled. For example, ./build.sh && ./postbuild.sh
#!/bin/bash
DEST=../RosaServerCore/
cp ./moonjit/src/libluajit.so "$DEST"
cp ./release/RosaServer/librosaserver.so "$DEST"
cp ./release/RosaServerSatellite/rosaserversatellite "$DEST"
Thanks to these open source libraries: