Skip to content

open.mp Basics

Xyranaut edited this page Jun 1, 2026 · 2 revisions

open.mp basics (for total newcomers)

If you've never made a multiplayer GTA server, this page explains the words used everywhere else in this wiki. If you already run open.mp/SA-MP servers, skip to Quick Start.

What is open.mp?

open.mp (open multiplayer) is a free server for GTA: San Andreas multiplayer — the successor to SA-MP. You run a server, players connect with the GTA SA client, and your code controls the game (spawns, money, cars, admin commands, etc.).

What language do I write?

Pawn — a small, C-like scripting language. Your server logic lives in .pwn files that you compile into .amx files (the compiled form the server runs).

your_code.pwn  --(compile with pawncc)-->  your_code.amx  --(server runs this)

Gamemode vs. filterscript

  • Gamemode — the main script that defines your server (e.g. a roleplay or deathmatch mode). One runs at a time.
  • Filterscript — a small add-on script that runs alongside the gamemode (e.g. an admin system, a teleport menu). You can load several.

omp-MySQL works in both. The shipped mysql-admin is a filterscript so you can drop it onto any server.

What is a "component"? (and how is it different from a plugin?)

  • In SA-MP, native C/C++ add-ons were called plugins.
  • In open.mp, they're components and use a modern SDK. They go in the components/ folder.

omp-MySQL is a component. It adds the mysql_* functions your Pawn code calls.

What's a "native"?

A native is a function provided by a component/the server that your Pawn code can call — like mysql_connect(...) or SendClientMessage(...). The list of omp-MySQL's natives is the Native reference.

What's a "callback"?

A function the server/component calls for you when something happens, e.g. OnPlayerConnect(playerid) (a player joined) or your own OnLogin(playerid) (a query finished). You write the body; the engine calls it at the right time.

The folders you'll touch

your-server/
├─ omp-server(.exe)         the server program
├─ config.json             server settings (which scripts to load, etc.)
├─ components/             native components  <-- omp-mysql.dll/.so goes here
├─ gamemodes/             compiled gamemodes (.amx)
├─ filterscripts/         compiled filterscripts (.amx)  <-- mysql-admin.amx here
└─ qawno/include/         Pawn includes (.inc)  <-- omp-mysql.inc here

How scripts get loaded

In config.json:

"pawn": {
  "main_scripts": ["mygamemode 1"],
  "side_scripts": ["filterscripts/mysql-admin"]
}

Putting it together

[ GTA SA client ] --network--> [ open.mp server ]
                                   ├─ runs your gamemode/filterscripts (Pawn)
                                   └─ loads omp-MySQL component ──TLS──> [ MySQL ]

Now you know the vocabulary. Next: Quick Start or What is MySQL?.

Clone this wiki locally