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/
This release sets the direction for the remainder of this year and lays the foundation for a new chapter in 2026. We are entering a phase focused on deeper tooling, stronger native integrations, and more ambitious releases. Ee’re excited to build what comes next together with the community.
Change log by merged pull requests:
- Fix for non-bullet guns returned as 0 in weapon data by @NexiusTailer in #1046
- Update gitignore for CLion && macOS by @povargek in #1049
- fix ci by @AmyrAhmady in #1054
- Fix apple silicon build by @AmyrAhmady in #1062
- Fixes for a couple of issues by @NexiusTailer in #999
- Fixed: legacy config variable 'chatlogging' does not control death logging by @uifdev in #1057
- Pack Vehicle and StreamInVehicle more tightly by @PTemuri in #1091
- Fixed: train passenger sync by @uifdev in #1100
- Fixed
logging.log_connection_messagesoption check by @Northn in #1094 - Fixed "reverse search for NPC id in player pool" by @NoPressF in #1088
- Return string length for some natives by @NexiusTailer in #1098
- Check provided mtu value against max allowed per client version by @ksenonadv in #1111
- Reverse search for NPC id in player pool by @ksenonadv in #1075
- add NPC_HasPathPointInRadius by @NoPressF in #1115
- One big beautiful pull request by @NexiusTailer in #1113
- Create FUNDING.yml by @AmyrAhmady in #1121
- Store natives globally & ability to call them from using SDK by @AmyrAhmady in #1128
- fix sdtin lock from getline when shutting down by @AmyrAhmady in #1131
- NPC Component by @AmyrAhmady in #916
- Update FCNPC deprecation message by @NexiusTailer in #1132
- add capi component and submodule by @AmyrAhmady in #1125
- Some fixes and changes by @AmyrAhmady in #1133
- upgrade openssl version from 1.1.1 to 3.0.13 by @AmyrAhmady in #1096
- Some NPC fixes and changes by @AmyrAhmady in #1135
- Add trams where they are missed by @NexiusTailer in #1140
- Force train to be 4 consecutive ids by @AmyrAhmady in #1139
- Fix event handling by @0x617374726F in #1144
- Use entry create for dialog data creation by @AmyrAhmady in #1145
- Add environment variable support in config.json by @itsneufox in #1142
- network, npcs, and docker script changes by @AmyrAhmady in #1148
- fix TextDraw_SetProportional by @AmyrAhmady in #1149
- fix slot reserving for players outside of raknet by @AmyrAhmady in #1150
- Fix Kick Issue by @Tiaansu in #1151
- fix: clear checkingList when component is reseted by @nidi21 in #1152
- bump version by @AmyrAhmady in #1153
- update sdk module to the right ref by @AmyrAhmady in #1154
- Couple of fixes for NPC component by @NexiusTailer in #1156
- Fix for random occurrence of player state none by @NexiusTailer in #1146
New Contributors
- @povargek made their first contribution in #1049
- @PTemuri made their first contribution in #1091
- @Northn made their first contribution in #1094
- @NoPressF made their first contribution in #1088
- @0x617374726F made their first contribution in #1144
- @itsneufox made their first contribution in #1142
- @Tiaansu made their first contribution in #1151
- @nidi21 made their first contribution in #1152
Full Changelog: v1.4.0.2779...v1.5.8.3077