https://github.com/adib-yg/openmp-server-installation
Open Multiplayer (open.mp) server installation tutorial
https://github.com/adib-yg/openmp-server-installation
installation open-mp server tutorial
Last synced: 7 days ago
JSON representation
Open Multiplayer (open.mp) server installation tutorial
- Host: GitHub
- URL: https://github.com/adib-yg/openmp-server-installation
- Owner: adib-yg
- License: mpl-2.0
- Created: 2023-10-14T08:40:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-18T13:02:39.000Z (over 1 year ago)
- Last Synced: 2024-08-18T14:22:54.755Z (over 1 year ago)
- Topics: installation, open-mp, server, tutorial
- Homepage:
- Size: 470 KB
- Stars: 17
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](#step-1)
- [Step 2](#step-2)
- [Step 3](#step-3)
- [Step 4](#step-4)
- [Step 5](#step-5)
- [Step 6](#step-6)
- [Step 7](#step-7)
- [Step 8](#step-8)
- [Step 9](#step-9)
- [Step 10](#step-10)
- [Step 11](#step-11)
- [Compiler errors and warnings](#compiler-errors-and-warnings)
- [Runtime errors and warnings](#runtime-errors-and-warnings)
- [Useful documents](#useful-documents)
- [Help](#help)
## Step 1
Download the latest version of open.mp server files from [https://github.com/openmultiplayer/open.mp/releases](https://github.com/openmultiplayer/open.mp/releases/latest)
.png)
- `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
.png)
> [!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](https://github.com/pawn-lang/YSI-Includes/releases)
## 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**
.png)
## Step 7
Press **CTRL + O** then go to the **../gamemodes** folder and open your gamemode `.pwn` file
## Step 8
Find
```pawn
#include
```
replace with
```pawn
#include
```
then press **F5** to compile.
> [!NOTE]
> If you are get error or warning, see [Compiler errors and warnings](#compiler-errors-and-warnings)
## Step 9
Open **[config.json](https://www.open.mp/docs/server/config.json)** file with Notepad or other IDEs
.png)
## Step 10
Edit **config.json**
.png)
Find
```json
"main_scripts": [
"gungame 1"
],
```
replace with
```json
"main_scripts": [
"your_gamemode_amx_file_name 1"
],
```
Find
```json
"legacy_plugins": [],
```
Specify required plugins
```json
"legacy_plugins": [
"crashdetect",
"mysql",
"sscanf",
"streamer",
"PawnPlus",
"pawn-memory"
],
```
Find
```json
"side_scripts": []
```
Specify your filterscripts
```json
"side_scripts": [
"filterscripts/file_name"
]
```
Find
```json
"rcon": {
"allow_teleport": false,
"enable": false,
"password": "changeme1"
},
```
Enter strong password for rcon password:
```json
"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
.png)
- **Linux**
```bash
./omp-server
```
## Compiler errors and warnings
- **warning 213: tag mismatch: expected tag "?", but found none ("_")**:
For example:
```pawn
TogglePlayerControllable(playerid, 1);
// ->
TogglePlayerControllable(playerid, true);
```
```pawn
TextDrawFont(textid, 1);
// ->
TextDrawFont(textid, TEXT_DRAW_FONT_1);
```
```pawn
GivePlayerWeapon(playerid, 4, 1);
// ->
GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);
```
But you can ignore it for now:
```pawn
#define NO_TAGS
#include
// 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`
.png)
Or if you prefer you can use the mixed spellings:
```pawn
#define MIXED_SPELLINGS
#include
```
- **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](https://github.com/Sreyas-Sreelal/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:
```pawn
public MyFunction(string[])
// ->
public MyFunction(const string[])
```
- **error 025: function heading differs from prototype**
For example:
```pawn
public OnPlayerDeath(playerid, killerid, reason)
// ->
public OnPlayerDeath(playerid, killerid, WEAPON:reason)
```
```pawn
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
```log
[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.**
```log
[Warning] Insufficient specifiers given to `format`: "?" < 1
```
The specifiers are less than the arguments you pass in the format. For example:
```pawn
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](https://github.com/openmultiplayer/omp-stdlib/blob/master/documentation/readme-beginner.md)
If you are an intermediate at Pawn programming: [readme-intermediate](https://github.com/openmultiplayer/omp-stdlib/blob/master/documentation/readme-intermediate.md)
If you are an expert at Pawn programming: [readme-expert](https://github.com/openmultiplayer/omp-stdlib/blob/master/documentation/readme-expert.md)
Blog post: [Porting to open.mp](https://www.open.mp/blog/porting)
## 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](https://discord.com/channels/231799104731217931/966398440051445790) channel.
