Releases: openmultiplayer/open.mp
v1.5.8.3079
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
v1.4.0.2783
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 #978
- Validate camera modes better by @NexiusTailer in #975
- fix vehicle release in events called in driver sync by @AmyrAhmady in #983
- GetTickCount on Windows to return tick count of server instead of system by @Hual in #987
- Disable dynamic DLL loading for AMX runtime by @Hual in #988
- Main script config fixes by @Hual in #989
- Fix inverted GetVehicleLandingGearState value by @Hual in #990
- Fix issues with reallocating bitstreams in sendRPC/sendPacket by @Hual in #997
- More validity checks for vehicles (mainly trailers) by @NexiusTailer in #985
- Fix player teleport natives and query player list by @AmyrAhmady in #1003
- Recursively load components by @myudev in #920
- Fix moving player objects crash due to out-of-order destruction by @Hual in #1016
- load comps starting with
$sooner and with RTLD_GLOBAL on linux by @AmyrAhmady in #1020 - call state change event after death event, to prevent unwanted cleanups by @AmyrAhmady in #1035
- omp user detection & server to client encryption for omp users by @AmyrAhmady in #1026
- remove rivershell from main repository and move it to a separate one by @AmyrAhmady in #1038
- revert state change, dont handle in vehicle's event, use death event … by @AmyrAhmady in #1037
- all my homies hate linux (not the kernel btw, the ecosystem btw) (btw) by @AmyrAhmady in #1040
- bump version by @AmyrAhmady in #1041
New Contributors
Full Changelog: v1.3.1.2744...v1.4.0.2779
v1.3.1.2748
What's Changed
- Fix string not shown in rare cases of using format
- Remove unnecessary
OnPlayerConnectandOnPlayerDisconnectwhen a side script (filterscript) is (un)loaded. Instead introduced OnScript(Un)LoadPlayer callbacks. - Fix the problem with crashdetect not being able to find file name and line number when more than one script was loaded
- Fix a lot of RPC ordering channels and reliablities
- Improve network thread (RakNet) performance
- Fix a lot of RakNet crashes and safer internal memory management
- Fix several connection issues and proper internal player pool cleanups
- Fix
GetGameText - Check CDN URL validity
- New
InternalPacketPoolimplementation in RakNet - Add more data validity checks for dialog responses
- Add validity checks for menu rows
- Human readable HTTP errors
- Stop spectator sync being broadcasted
- Fix open.mp windows version not loading when user's windows is set to a language with non-ascii names
- Remove bunch of pawn native deprecation from runtime warnings
- Default values for health and armor
- Improve performance for responding to ScoresAndPings RPC (scoreboard)
- Add server logo to be used in launcher and discord status
- Fix the infamous RakNet crash we have had since beginning
Change log by merged pull requests
- fix atcprintf failure message not showing fmt string by @AmyrAhmady in #860
- change invalid weapon slot to -1 by @AmyrAhmady in #862
- Call OnScript(Un)LoadForPlayer on script (un)load by @andosius in #878
- Revert "Revert
OnPlayerConnectvandalism." by @Hual in #887 - Handle queries when logging is enabled by @ksenonadv in #889
- Revert "Support LFS" by @AmyrAhmady in #890
- Fix OnPlayerConnect regression after gmx. by @ksenonadv in #891
- RakNet crash fixes, performance improvements, fix ordering channels for some RPCs by @AmyrAhmady in #883
- Fixed: several connection logic issues by @uifdev in #906
- Fix GetGameText native giving incorrect/corrupt values by @Sreyas-Sreelal in #915
- Fix test component by @AmyrAhmady in #913
- sync raknet, fix InternalPacketPool::ClearPool crash by @AmyrAhmady in #911
- Validate CDN URL by @myudev in #919
- improved dialog response checking by @atomlin-git in #902
- added check for possible menu row values by @atomlin-git in #922
- Add server logo feature, human readable httplib errors, and bunch of fixes by @AmyrAhmady in #928
- Remove conan from SDK, Disable unicode component by default, Bump version by @AmyrAhmady in #933
- SDK and Network as submodules by @AmyrAhmady in #937
- Stop broadcasting spectators sync data. by @ksenonadv in #939
- Fix locale switch for names with non-ascii characters by @AmyrAhmady in #945
- Remove runtime pawn native deprecations for mixed spellings by @NexiusTailer in #952
- Tiny correction in TestComponent by @NexiusTailer in #956
- Network fixes by @AmyrAhmady in #957
- Update broken plugins list by @NexiusTailer in #961
- default values for hp and armor in Player::reset and constructor by @AmyrAhmady in #960
- cache generated BS for a short period of time for scoreboard rpc by @AmyrAhmady in #962
New Contributors
- @andosius made their first contribution in #878
- @uifdev made their first contribution in #906
- @Sreyas-Sreelal made their first contribution in #915
- @myudev made their first contribution in #919
- @atomlin-git made their first contribution in #902
Full Changelog: v1.2.0.2670...v1.3.1.2744
v1.2.0.2670
Information
PLEASE READ: We encourage every open.mp server to update to this version. There has been not only noticeable performance improvements, but also critical security fixes
Changes:
- A few security fixes
- Noticeable performance improvements, specially regarding how pawn natives work now.
- Add new config variables to set banners and discord invite link to be shown in new open.mp launcher
- Announcer system now uses IPv4 by default, instead of using IPv6 when it's available.
- Fix
Get(Player)ObjectMaterial(Text)returning colors in the wrong format and modelid. - Fix server crash when you are allocating memory more than reserved space, by giving a warning about details.
- Fix random RakNet crashes on packet deallocation
- Validate damage reasons (weapons) in various places
- Fix
Get(Player)Gravity - New config variables for join messages and animation validation
- Synchronize bans so multiple players are banned at once if needed
- Fix WSL issues.
Follow changes through pull requests:
- Synchronize bans so multiple players are banned at once by @Hual in #776
- Support LFS by @Hual in #777
- Add core->requestHTTP4. Force IPV4 requests for announce. Use bind address if provided by @ksenonadv in #786
- Add config options to disable animation validation and join messages by @Hual in #792
- Retrieve player objects material colors in a ARGB format by @mrreus in #795
- Add a static openssl warning by @Hual in #793
- New way of handling ParamCast errors instead of throwing exceptions. by @AmyrAhmady in #798
- return modelid in GetPlayerObjectMaterial by @adib-yg in #805
- Return 0.0 if floatstr fails and throws an exception by @AmyrAhmady in #812
- Weapon validity check in foot, passenger, and vehicle sync, and Give/TakeDamage events by @AmyrAhmady in #804
- Fix amx_Allot trying to access invalid memory when data size is higher than amx STK size by @AmyrAhmady in #819
- Remove preconnect packet handler by @AmyrAhmady in #820
- 52 IS a valid damage reason. by @Y-Less in #825
- Change gravity type to float by @vedran77 in #832
- Add a note about mac compilation with brew. by @Y-Less in #828
- Add banners & discord configs and send through query by @AmyrAhmady in #831
New Contributors
Full Changelog: v1.1.0.2612...v1.2.0.2670
v1.1.0.2612
Out of RC
open.mp is now out of RC phase, and we are happy to announce we are finally stable enough to go down the consistent development road. with v1.1.0.2612, we fixed a lot of bugs and issues, and resolved so many behavior differences. so make sure you update to latest builds and run your server smoothly.
Launcher, first step towards client.
open.mp launcher is finally out, you can now reliably browse servers, select a server you want to play on, and join it!
Bringing a lot of new features into it, you're going to have a much better experience compared to old experience you always had to have with samp launcher.
It can be found at https://github.com/openmultiplayer/launcher
There are so many fixes and additions, for those who don't know, they can read below and go to each PR for more details.
What's Changed
- Memory reduction. by @Y-Less in #550
- Use
Span<>, don't exposevector<>. by @Y-Less in #548 - Fix
funcidxin the streamer plugin. by @Y-Less in #552 - In memory db by @Y-Less in #553
- Component load pr by @Y-Less in #554
- Append
.soto plugin names. by @Y-Less in #555 - CMake changes and m1/macos support by @AmyrAhmady in #551
- Use the correct string search function. by @Y-Less in #557
- command text sanity check by checking cmd length by @AmyrAhmady in #556
- Actually ignore missing
main, like the comment says. by @Y-Less in #560 - Deprecate
str_buf_addrfrom PawnPlus. by @Y-Less in #558 - Special-case NPCs (and localhost in general) in connection code. by @Y-Less in #559
- Log SQLite queries. by @Y-Less in #561
- Keep a local copy of the loaded defaults and revert to them on GMX. by @Y-Less in #562
- TD crash fix. by @Y-Less in #563
- Configurable http threads count. by @ksenonadv in #564
- Fix GDK hooks by @Cheaterman in #566
- Player attached objects. by @ksenonadv in #565
- Check supported major version when loading components. by @Y-Less in #568
- Add checks to
amx_GetAddrall over. by @Y-Less in #570 - Reloadfs pr by @Y-Less in #569
- Implement GetPlayerMarkerForPlayer by @AGraber in #571
- Fix
.sobeing appended, again. by @Y-Less in #572 - Fix attached objects by @ksenonadv in #573
- Attempt to fix CI. by @ksenonadv in #596
- Fix animation library name by @dimmyi in #594
- Fix abi-check CI by @Hual in #605
- Fix typos in Get(Player)NetworkStats. by @mrreus in #606
- Fix
GetVehicleLastDriverreturning 0 when invalidvehicleidis passed by @xunder-matth in #615 - Fix submodules URLs by @r4nx in #604
- Tiny message corrections by @NexiusTailer in #603
- Validate
rollin unoccupied sync by @xunder-matth in #624 - x64 by @Y-Less in #499
- Use per-player color on player stream in by @AGraber in #629
- Add natives for calling public functions by index by @AGraber in #630
- Constant instead of magic numbers by @ALF-ONE in #633
- Amir/changes by @AmyrAhmady in #648
- Add more relevant items to BrokenPlugins list by @NexiusTailer in #644
- Fixed incorrect locale saving in Core::vlogLnInternal(). by @dev-karpov0 in #656
- Fix MoveObject & MovePlayerObject return type. Fix ping packet spam. by @ksenonadv in #659
- Ported several functions missed out from fixes.inc. by @Y-Less in #663
- Max seats correction and more comments by @NexiusTailer in #668
- Fix HTTP calls and AnnounceHTTPResponseHandler by @AmyrAhmady in #676
- Bunch of improvements, bug fixes and additions by @AmyrAhmady in #671
- Fixed possibility to load the same script more than once. by @dev-karpov0 in #660
- Two minor fixes by @Y-Less in #680
- Trailer improvements by @Y-Less in #681
- Various ports to open.mp by @Hual in #683
- Some proper pawn native param casts by @AmyrAhmady in #684
- Better legacy announce message by @Hual in #686
- Some build documentation clarifications. by @Y-Less in #662
- Update pawn. by @Y-Less in #711
- add checks in multiple places for queryExtension results by @AmyrAhmady in #719
- more queryExtension return value checks, update cmake-conan by @AmyrAhmady in #725
- Clear components in a separate pass to avoid cross-component invalid access by @Hual in #724
- Fix object data initialization and event priority conflict with pawn by @AmyrAhmady in #731
- fix obj crash, deleted objects being delayed processed by @AmyrAhmady in #734
- Add boundary to TD font setter, fix spectating when spectated disconnects, add webserver binding by @AmyrAhmady in #737
- Properly handle spectating when a player disconnects by @AmyrAhmady in #740
- Fix issue with atcprintf not incrementing output length when adding - in trailing zero mode by @Hual in #744
- remove extra sanity check in setSpectating by @AmyrAhmady in #745
- Correctly retrieve
modelidand material colors inGetObjectMaterial(Text)by @xunder-matth in #747 - add a note about downgrading conan using pip by @Zorono in #752
- Fix move object rotation when optional args are not set by @ksenonadv in #753
- Update actors_main.cpp by @ReshiramZekrom1 in #762
- Some small changes before new release by @AmyrAhmady in #763
New Contributors
- @dimmyi made their first contribution in #594
- @mrreus made their first contribution in #606
- @xunder-matth made their first contribution in #615
- @r4nx made their first contribution in #604
- @NexiusTailer made their first contribution in #603
- @ALF-ONE made their first contribution in #633
- @dev-karpov0 made their first contribution in #656
- @Zorono made their first contribution in #752
- @ReshiramZekrom1 made their first contribution in #762
Full Changelog: v0.0.11.2331...v1.1.0
RC2
What's Changed
- Server: Fix
.sobeing required on Linux legacy plugins. - Server:
reloadfsreuses its slot to preserve filterscript order. - Server: Attached objects are correctly shown to other players.
- Server: Fix a crash when loading invalid pawn memory.
- Pawn: Added
GetPlayerMarkerForPlayer. - Pawn: Added
a_???file wrappers. - Upgrader: Supports multiple codepages.
- Upgrader: Exclude files.
- Upgrader: Full replacements report.
Full Changelog: v1-RC1...v1-RC2
RC1
What's Changed
- Memory reduction. by @Y-Less in #550
- Use
Span<>, don't exposevector<>. by @Y-Less in #548 - Fix
funcidxin the streamer plugin. by @Y-Less in #552 - In memory db by @Y-Less in #553
- Component load pr by @Y-Less in #554
- Append
.soto plugin names. by @Y-Less in #555 - CMake changes and m1/macos support by @AmyrAhmady in #551
- Use the correct string search function. by @Y-Less in #557
- command text sanity check by checking cmd length by @AmyrAhmady in #556
- Actually ignore missing
main, like the comment says. by @Y-Less in #560 - Deprecate
str_buf_addrfrom PawnPlus. by @Y-Less in #558 - Special-case NPCs (and localhost in general) in connection code. by @Y-Less in #559
- Log SQLite queries. by @Y-Less in #561
- Keep a local copy of the loaded defaults and revert to them on GMX. by @Y-Less in #562
- TD crash fix. by @Y-Less in #563
- Configurable http threads count. by @ksenonadv in #564
- Fix GDK hooks by @Cheaterman in #566
- Player attached objects. by @ksenonadv in #565
- Check supported major version when loading components. by @Y-Less in #568
Beta v0.0.11.2331
Details will be available in https://github.com/openmultiplayer/server-beta/releases
