Skip to content

Open Multiplayer (open.mp) server installation tutorial

License

Notifications You must be signed in to change notification settings

adib-yg/openmp-server-installation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

open.mp Server Installation

Open Multiplayer server installation tutorial!

This tutorial is for those who want to transfer their gamemode from SA:MP server to open.mp server.

Note

If you are using the FCNPC plugin, please stop for now because this plugin does not work for open.mp currently.

Contents

Step 1

Download the latest version of open.mp server files from https://github.com/openmultiplayer/open.mp/releases

  • open.mp-win-x86.zip Windows Server
  • open.mp-linux-x86.tar.gz Linux Server
  • open.mp-linux-x86-dynssl.tar.gz Linux Server (Dynamic SSL)

Step 2

Extract the .zip or .tar.gz archive contents on your disk

Note

components: open.mp components

filterscripts: Your server filter script files (side scripts)

gamemodes: Your server game mode files (main scripts)

models: Your server custom models (textures .txd .dff)

plugins: Your server plugin files (legacy plugins)

qawno: Pawn editor program and your server includes

scriptfiles: INI files or other stuff.

bans.json: Ban list file

config.json: Server configuration file

omp-server.exe: open.mp server program

omp-server.pdb: open.mp server debugging file

Step 3

Put your gamemode .pwn file in the gamemodes folder

Step 4

Put required includes (e.g. sscanf2.inc, streamer.inc) in the qawno/include folder

Note

If you are using the YSI-4 includes in your game mode, update to YSI-5.x

Step 5

Put required plugins (e.g. sscanf.dll, streamer.dll) in the plugins folder


Important

If you use the following plugins in table, you must put a version of the plugin that is compatible with omp!

Put the following plugins in the ../components folder, not in the ../plugins folder!

Plugin OMP
Pawn.CMD https://github.com/katursis/Pawn.CMD/releases/tag/3.4.0-omp
Pawn.RakNet https://github.com/katursis/Pawn.RakNet/releases/tag/1.6.0-omp
sampvoice https://github.com/AmyrAhmady/sampvoice/releases/tag/v3.1.5-omp
discord-connector https://github.com/maddinat0r/samp-discord-connector/releases/tag/v0.3.6-pre
SKY Use Pawn.RakNet instead
YSF You don't need YSF because open.mp already declared most of the same natives
FCNPC Currently not supported

Step 6

Open the qawno IDE program located at Server/qawno/qawno.exe

Step 7

Press CTRL + O then go to the ../gamemodes folder and open your gamemode .pwn file

Step 8

Find

#include <a_samp>

replace with

#include <open.mp>

then press F5 to compile.

Note

If you are get error or warning, see Compiler errors and warnings

Step 9

Open config.json file with Notepad or other IDEs

Step 10

Edit config.json

Find

"main_scripts": [
    "gungame 1"
],

replace with

"main_scripts": [
    "your_gamemode_amx_file_name 1"
],

Find

"legacy_plugins": [],

Specify required plugins

"legacy_plugins": [
    "crashdetect",
    "mysql",
    "sscanf",
    "streamer",
    "PawnPlus",
    "pawn-memory"
],

Find

"side_scripts": []

Specify your filterscripts

"side_scripts": [
    "filterscripts/file_name"
]

Find

"rcon": {
    "allow_teleport": false,
    "enable": false,
    "password": "changeme1"
},

Enter strong password for rcon password:

"rcon": {
    "allow_teleport": false,
    "enable": false,
    "password": "151sd80hgse32q1oi0v8dsge166"
},

Press CTRL + S to save changes.

Tip

There is a guide on how to convert server.cfg to config.json at https://www.open.mp/docs/server/config.json

Step 11

Run the server

  • Windows

Open the omp-server.exe program

  • Linux
./omp-server

Compiler errors and warnings

  • warning 213: tag mismatch: expected tag "?", but found none ("_"):

For example:

TogglePlayerControllable(playerid, 1);
// ->
TogglePlayerControllable(playerid, true);
TextDrawFont(textid, 1);
// ->
TextDrawFont(textid, TEXT_DRAW_FONT_1);
GivePlayerWeapon(playerid, 4, 1);
// ->
GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);

But you can ignore it for now:

#define NO_TAGS
#include <open.mp>

// If the warning still occurs
// Use #pragma warning disable 213

  • warning 234: function is deprecated (symbol "TextDrawColor") Use `TextDrawColour

Press CTRL + F in qawno and replace all TextDrawColor to TextDrawColour

Or if you prefer you can use the mixed spellings:

#define MIXED_SPELLINGS
#include <open.mp>

  • warning 234: function is deprecated (symbol "GetPlayerPoolSize") This function is fundamentally broken.
  • warning 234: function is deprecated (symbol "GetVehiclePoolSize") This function is fundamentally broken.
  • warning 234: function is deprecated (symbol "GetActorPoolSize") This function is fundamentally broken.

Replace GetPlayerPoolSize() with MAX_PLAYERS

Replace GetVehiclePoolSize() with MAX_VEHICLES

Replace GetActorPoolSize() with MAX_ACTORS


  • warning 234: function is deprecated (symbol "SHA256_PassHash") Use BCrypt for hashing passwords

Use the samp-bcrypt plugin for hashing passwords. SHA-256 is not secure.


  • warning 214: possibly a "const" array argument was intended: "?"
  • warning 239: literal array/string passed to a non-const parameter

For example:

public MyFunction(string[])
// ->
public MyFunction(const string[])

  • error 025: function heading differs from prototype

For example:

public OnPlayerDeath(playerid, killerid, reason)
// ->
public OnPlayerDeath(playerid, killerid, WEAPON:reason)
public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
// ->
public OnPlayerEditAttachedObject(playerid, EDIT_RESPONSE:response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)

Note

There is also an upgrade tool that attempts to find old untagged and const-incorrect code and upgrade it.

https://github.com/openmultiplayer/upgrade

Already included in /qawno/upgrader folder.

Runtime errors and warnings

[Info] Couldn't announce legacy network to open.mp list.
[Info] [Server Error] Status: 406
[Info] [Server Error] Message: {"error":"failed to query server: socket read timed out"}
[Info] This won't affect the server's behaviour.
  • Your server is not accessible from the open.mp website.
  • You are probably running the server locally.
  • The firewall has blocked the connection.

This warning will not affect the behavior of the server.


[Warning] Insufficient specifiers given to `format`: "?" < 1

The specifiers are less than the arguments you pass in the format. For example:

new string[32];
new mp[32] = ".MP";

format(string, sizeof(string), "OPEN", mp);
// [Warning] Insufficient specifiers given to `format`: "OPEN" < 1

// Should be:
format(string, sizeof(string), "OPEN%s", mp);
//                                  ^^

Useful documents

Check out the new scripting functions and callbacks: https://www.open.mp/docs/server/omp-functions

If you are completely new to Pawn programming: readme-beginner

If you are an intermediate at Pawn programming: readme-intermediate

If you are an expert at Pawn programming: readme-expert

Blog post: Porting to open.mp

Help

If you still have issues running the server, please join the official open.mp Discord server: https://discord.gg/samp

Ask in #openmp-support channel.

About

Open Multiplayer (open.mp) server installation tutorial

Topics

Resources

License

Stars

Watchers

Forks