/basic-template

A simple example component with some small SDK usage.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

open.mp Basic Component Template

This is a simple component start point template. It demonstrates a few uses of the SDK such as listening to vehicle creation events and calling methods in other components (mainly the query component), and these abilities can be built upon almost infinitely. The default code counts the number of vehicles in the server and displays that in the server browser.

UID

Since this is a template, i.e. a start point for new components, it needs a Unique ID adding. Don't forget to get a new one from here:

https://open.mp/uid

Required Tools

Visual Studio needs the Desktop development with C++ workload with the MSVC v142, Windows 10 SDK, and C++ Clang tools for Windows components.

Sources

# With HTTPS:
git clone --recursive https://github.com/openmultiplayer/pawn-template
# With SSH:
git clone --recursive git@github.com:openmultiplayer/pawn-template

Note the use of the --recursive argument, because this repository contains submodules. A useful setting when cloning recursive repos is:

git config --global url."git@github.com:".insteadOf "https://github.com/"

Which allows you to push https:// repos you have permissions on.

Building on Windows

mkdir build
cd build
cmake .. -A Win32 -T ClangCL

Open Visual Studio and build the solution.

Building on Linux

mkdir build
cd build
# May need to configure this line.
export CC=/usr/lib/llvm/13/bin/clang CXX=/usr/lib/llvm/13/bin/clang++
cmake .. -G Ninja -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_BUILD_TYPE=Debug \
cmake --build . --config Debug

Change Debug to Release for final versions.

Building with Docker

cd docker
.\build.sh

You may need to set up some directories first:

mkdir build
mkdir conan
sudo chown 1000 build
sudo chown 1000 conan

Instead you run the script as root, and target a specific distro:

UBUNTU_VERSION=18.04 sudo .\build.sh

The output is in docker/build/