open.mp Server
Host your own GTA San Andreas multiplayer server.
v1.5.8.3079LATEST
Released December 17, 2025
Highlights
- Built-in server side fully controllable NPC
- New C API / C API SDK and improved Pawn-to-SDK interoperability
- Major network performance improvements with stronger sync validation checks
- OpenSSL 3.0.13 upgrade
View full changelog
What's changed
Major Features
- Introdued fully controllable NPCs as a built-in server feature, removing the need for external NPC plugins and enabling deeper server-side AI and automation.
- Added a C API and C API SDK, allowing developers to integrate open.mp directly with native code and external tooling.
- Added the ability to call Pawn natives from the open.mp C++ SDK, significantly improving interoperability between scripting and native modules.
Networking & Performance
- Significant network performance improvements, resulting in faster synchronization and more responsive gameplay.
- Added multiple sync validation checks to prevent invalid data, spoofed states, and malformed packets.
- MTU values are now validated against the maximum allowed per client version, preventing misconfiguration and instability.
Platform & Compatibility
- Upgraded OpenSSL from 1.1.1 to 3.0.13, officially deprecating legacy Linux distributions and ensuring proper support for modern systems.
- Added environment variable support for
config.json, making containerized, CI/CD, and production deployments easier and more flexible.
NPC & Gameplay Improvements
- NPC IDs now allocate from highest to lowest, preventing conflicts and improving predictability.
- Deprecated
ConnectNPCin favor of the new built-in NPC system. - Forced train creation to always use 4 consecutive IDs, fixing long-standing inconsistencies.
- Fixed train passenger synchronization issues.
Stability & Bug Fixes
- Fixed an infamous issue with spawn data
- Fixed kick delay issues.
- Fixed crashes related to gangzones in the checking list during server restarts.
- Fixed random occurrences of player state being set to
Noneafter spectating. - Fixed stdin lock on Linux during server shutdown.
- Fixed
chatloggingnot affecting death messages. - Removed the legacy Fixes component due to instability, redundancy, and its functionality being superseded by newer systems.
- Numerous small Pawn native fixes for improved correctness and usability.
Documentation & Community
- New and updated NPC scripting API (Pawn natives) are available in the official documentation: https://open.mp/docs
- Join the community and get support on Discord: https://discord.gg/samp
- Support development via OpenCollective: https://opencollective.com/openmultiplayer
- Main website: https://open.mp/
Change log by merged pull requests:
- Fix for non-bullet guns returned as 0 in weapon data by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1046
- Update gitignore for CLion && macOS by @povargek in https://github.com/openmultiplayer/open.mp/pull/1049
- fix ci by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1054
- Fix apple silicon build by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1062
- Fixes for a couple of issues by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/999
- Fixed: legacy config variable 'chatlogging' does not control death logging by @uifdev in https://github.com/openmultiplayer/open.mp/pull/1057
- Pack Vehicle and StreamInVehicle more tightly by @PTemuri in https://github.com/openmultiplayer/open.mp/pull/1091
- Fixed: train passenger sync by @uifdev in https://github.com/openmultiplayer/open.mp/pull/1100
- Fixed
logging.log_connection_messagesoption check by @Northn in https://github.com/openmultiplayer/open.mp/pull/1094 - Fixed "reverse search for NPC id in player pool" by @NoPressF in https://github.com/openmultiplayer/open.mp/pull/1088
- Return string length for some natives by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1098
- Check provided mtu value against max allowed per client version by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1111
- Reverse search for NPC id in player pool by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1075
- add NPC_HasPathPointInRadius by @NoPressF in https://github.com/openmultiplayer/open.mp/pull/1115
- One big beautiful pull request by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1113
- Create FUNDING.yml by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1121
- Store natives globally & ability to call them from using SDK by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1128
- fix sdtin lock from getline when shutting down by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1131
- NPC Component by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/916
- Update FCNPC deprecation message by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1132
- add capi component and submodule by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1125
- Some fixes and changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1133
- upgrade openssl version from 1.1.1 to 3.0.13 by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1096
- Some NPC fixes and changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1135
- Add trams where they are missed by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1140
- Force train to be 4 consecutive ids by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1139
- Fix event handling by @0x617374726F in https://github.com/openmultiplayer/open.mp/pull/1144
- Use entry create for dialog data creation by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1145
- Add environment variable support in config.json by @itsneufox in https://github.com/openmultiplayer/open.mp/pull/1142
- network, npcs, and docker script changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1148
- fix TextDraw_SetProportional by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1149
- fix slot reserving for players outside of raknet by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1150
- Fix Kick Issue by @Tiaansu in https://github.com/openmultiplayer/open.mp/pull/1151
- fix: clear checkingList when component is reseted by @nidi21 in https://github.com/openmultiplayer/open.mp/pull/1152
- bump version by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1153
- update sdk module to the right ref by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1154
- Couple of fixes for NPC component by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1156
- Fix for random occurrence of player state none by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1146
New Contributors
- @povargek made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1049
- @PTemuri made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1091
- @Northn made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1094
- @NoPressF made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1088
- @0x617374726F made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1144
- @itsneufox made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1142
- @Tiaansu made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1151
- @nidi21 made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1152
Full Changelog: https://github.com/openmultiplayer/open.mp/compare/v1.4.0.2779...v1.5.8.3077
* The DynSSL version requires libssl to be installed on your Linux distribution.
v1.4.0.2779
Released January 12, 2025
Highlights
- Optional open.mp protocol encryption for supported clients
- Recursive component loading with improved Linux linker behavior
- Multiple crash and sync fixes across vehicles and objects
- New `IsPlayerUsingOmp` native for open.mp client detection
View full changelog
What's Changed
- Implement open.mp encryption to be used with open.mp launcher. Must be enabled in config.json first (
network.use_omp_encryption) - Fix a small issue for SetPlayerSkin in mobile clients
- Camera mode validity check
- Fix GetTickCount return value for windows
- Fix crash when destroying a vehicle in some events and pawn callbacks
- Disable dynamic DLL Loading for AMX runtime, specially when user has default pawn installed from compuphase website
- Fix inverted return value in GetVehicleLandingGearState
- Fix players randomly staying in player list in launchers even if they leave the server
- More validity checks for trailers and trailer sync
- Recursively load components in folders
- Load components starting with $ sooner than others and load them with
RTLD_GLOBALon Linux - Fix crash related to moving objects
- Fix player vehicle data resetting before OnPlayerDeath is called
- open.mp player detection using
IsPlayerUsingOmpnative
Change log by merged pull requests
- Fix SetPlayerSkin (add custom skin without DL client) for mobile clients by @f0Re3t in https://github.com/openmultiplayer/open.mp/pull/978
- Validate camera modes better by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/975
- fix vehicle release in events called in driver sync by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/983
- GetTickCount on Windows to return tick count of server instead of system by @Hual in https://github.com/openmultiplayer/open.mp/pull/987
- Disable dynamic DLL loading for AMX runtime by @Hual in https://github.com/openmultiplayer/open.mp/pull/988
- Main script config fixes by @Hual in https://github.com/openmultiplayer/open.mp/pull/989
- Fix inverted GetVehicleLandingGearState value by @Hual in https://github.com/openmultiplayer/open.mp/pull/990
- Fix issues with reallocating bitstreams in sendRPC/sendPacket by @Hual in https://github.com/openmultiplayer/open.mp/pull/997
- More validity checks for vehicles (mainly trailers) by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/985
- Fix player teleport natives and query player list by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1003
- Recursively load components by @myudev in https://github.com/openmultiplayer/open.mp/pull/920
- Fix moving player objects crash due to out-of-order destruction by @Hual in https://github.com/openmultiplayer/open.mp/pull/1016
- load comps starting with
$sooner and with RTLD_GLOBAL on linux by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1020 - call state change event after death event, to prevent unwanted cleanups by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1035
- omp user detection & server to client encryption for omp users by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1026
- remove rivershell from main repository and move it to a separate one by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1038
- revert state change, dont handle in vehicle's event, use death event ... by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1037
- all my homies hate linux (not the kernel btw, the ecosystem btw) (btw) by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1040
- bump version by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1041
New Contributors
- @f0Re3t made their first contribution in https://github.com/openmultiplayer/open.mp/pull/978
Full Changelog: https://github.com/openmultiplayer/open.mp/compare/v1.3.1.2744...v1.4.0.2779
* The DynSSL version requires libssl to be installed on your Linux distribution.