open.mp
                                
                                 open.mp copied to clipboard
                                
                                    open.mp copied to clipboard
                            
                            
                            
                        Open Multiplayer, a multiplayer mod fully backwards compatible with SA-MP
open.mp
Structure
| Path | Content | 
|---|---|
| SDK/include | Core SDK headers (stable between versions) | 
| SDK/include/Server/Components/*/ | Components/plug-in SDK headers (stable between versions) | 
| Shared/NetCode/ | Netcode headers (RPC and packet read/write structures, NOT stable between versions) | 
| Shared/Network/ | Network utility headers (NOT stable between versions) | 
| lib/ | Various submodules and third-party libraries | 
| Server/Source/ | Core server implementation (NOT stable between versions, do NOT use headers outside the Source folder) | 
| Server/Components/*/ | Components/plug-in implementation (NOT stable between versions, do NOT use headers outside the component's folder) | 
Concepts
| Name | Description | 
|---|---|
| Entity | Something that can appear in the 3D world of the game | 
| Pool | Container of something with limited amount of IDs | 
| Component | Something that's conceptually different enough it can be separated into its own module | 
| Extensible | Something to which extensions can be added to preserve ABI compatibility | 
| Extension | Something which adds additional functionality to an extensible and preserves ABI compatibility | 
Tools
- CMake 3.19+
- Conan 1.57+ (You can't use conan v2.x, so may need to download directly from github releases or install it using pip3 install conan==1.57.0)
Tools on Windows
Visual Studio needs the Desktop development with C++ workload with the C++ Clang tools for Windows component.
Sources
# With HTTPS:
git clone --recursive https://github.com/openmultiplayer/open.mp
# With SSH:
git clone --recursive [email protected]:openmultiplayer/open.mp
Note the use of the --recursive argument, because this repository contains submodules.
Building on Windows
cd open.mp
mkdir build
cd build
cmake .. -A Win32 -T ClangCL
cmake --build . --config RelWithDebInfo
Building on Mac
If you install conan via brew you must ensure you get the correct version; however, the cmake-conan script will not detect it from the default install location. You must therefore also alias it elsewhere:
brew install conan@1
sudo ln -s /usr/local/opt/conan@1/bin/conan /usr/local/bin/conan
cd open.mp
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make