HappinessMP Update 3.0
Hey everyone!
We're back with another update, and it's one of our biggest so far. The server now manages game sessions on its own, vehicles of other players drive much more smoothly, server developers can run multiple clients on a single PC, and both the WebUI and the addon system got a major overhaul. Since this update changes how client and server talk to each other, players need client version 3.0 and server owners need to update their server to version 2.4.
Here is whatβs new:
π Server-Managed Sessionsβ
Until now, HappinessMP relied on GTA IV's own session system, where one player's game acts as the "host" everyone else depends on. If that player had a bad connection, alt-tabbed out of fullscreen or simply left, everyone felt it: joins could stall, and a host change could force players to rejoin or reload the world.
Now the server takes over that job. You join without waiting on another player's game, and players coming and going no longer affect anyone else. The result is a much more stable experience overall.
This is also the foundation for something bigger: with the server in full control of who plays with whom, going beyond the classic 32-player limit becomes possible in the future. That would make room for larger servers, for example for roleplay communities.
π Smoother Vehicle Syncβ
Vehicles driven by other players or by traffic on someone else's game never looked quite right before. Distant cars could freeze and then jump ahead, motorbikes leaned to one side and swerved around, and even nearby cars moved in a slightly stiff, stuttery way.
We reworked how these vehicles are displayed on your screen. Cars further away now drive smoothly instead of jumping, and motorbikes lean naturally into corners. Vehicles also show their real physics again: suspension over bumps, diving under braking and natural steering. In most cases you can barely tell whether a vehicle is handled by your own game or synced from another player.
See the difference for yourself in the before/after comparison below.
π§ͺ Multiple Clients for Server Developersβ
Tired of waiting for a friend to have time just to test your latest script? Now you can do it on your own. Start additional game clients right on your machine with a single Rockstar Games account: enable the new developer setting on your server, connect as usual and enter newinstance in the console (F1). A second client opens in its own window, joins the same server and plays alongside you, so you can try out vehicle systems, trading scripts or anything else that needs more than one player. This works with both the Rockstar Games Launcher and the Steam version. Developer mode is meant for development servers only and stays off by default. You can find all details in the documentation.

π₯οΈ WebUI Overhaulβ
The in-game browser got a major rework this update. WebUIs now recover on their own after a crash or freeze, render more smoothly with less CPU load, and handle mouse input properly in windowed mode and on multi-monitor setups, including double click, text selection and horizontal scrolling. Script developers get a set of new functions to show, hide, resize, layer and reload WebUIs, a new resource:// URL scheme that gives every resource its own storage and working fetch(), full support for the Chrome DevTools, and lossless 64-bit numbers in events and JSON. A few changes may affect existing resources, so please check the breaking changes in the changelog and the updated WebUI documentation before you update your server.
π¦ Addons and Streamingβ
Addons got a big overhaul in this update. They now load reliably in the order set in the server's settings, several bugs that could break addon files or crash the game are fixed, and server owners get clear error messages for faulty addons. Connecting and server starts are faster, downloads are verified, and the addon documentation has been rewritten from scratch. Your first connect after the update will download stream files once more.
π§ Smaller Changesβ
Besides the big topics, this update also brings a number of smaller improvements:
- FusionFix v5.1.1: HappinessMP now supports the latest FusionFix version. If you use FusionFix, please update to v5.1.1, older versions are no longer accepted.
- Episode audio: Sounds from The Lost and Damned and The Ballad of Gay Tony, like episode weapons, as well as addon sounds no longer go silent after a reconnect.
- Chat: Messages sent right when a script starts no longer get lost while the chat is still loading.
- Watermark: The watermark and FPS counter no longer mess up other in-game text, for example on the pause menu map.
- Netobjects viewer: The new
netobjectsconsole command shows labels above nearby synced vehicles, peds and objects, which is handy when debugging sync issues. - Server list: The launcher now tells you why the server list failed to load and lets you retry, instead of showing "Fetching server list..." forever.
- Stability: Fixed server crashes when using
Player.GetPing,Player.GetIPor therestartcommand, and a Lua crash with deeply nested tables.
β€οΈ Donationsβ
Lastly, we want to extend a heartfelt thank you to the following community members who supported this project financially this year: Dimmi, marjo, SlurTK, dkc, Sprinkles, S.M.R, Waluta, Soul, jack
π Full Changelogβ
- fusionfix: update to v5.1.1
- network: server-managed sessions
- game: improve vehicle sync
- game: add multi-instance for server development
- gui: add netobjects viewer
- gui: fix watermark font state
- chat: fix messages sent before the chat finished loading getting lost
- addon: fix files with the same name in different folders getting mixed up
- addon: fix files with uppercase letters in their name not being found in game
- addon: check meta.xml more strictly and explain problems in the server log
- addon: only allow files from inside the addon folder
- addon: load addons in the order of settings.xml, later addons override earlier ones
- addon: allow addons to replace stream files of earlier addons
- addon: ask players to reconnect through the launcher when the server's addons changed
- addon: show the name of the addon that failed to load
- streaming: fix episodic and addon audio missing after reconnect
- streaming: fix some stream files loading empty
- streaming: fix possible crashes caused by invalid stream files
- server: fix crash when using Player.GetPing or GetIP
- server: fix crash when using the restart command
- server: start faster when addons did not change
- server: no longer create empty stream folders for addons
- server: fix addon downloads failing after the restart command
- launcher: show why the server list failed to load
- launcher: check downloaded files and reject broken downloads
- launcher: fix downloads of files with special characters in their name
- launcher: connect faster by not checking unchanged files again
- launcher: keep stream files of different servers apart, so switching servers downloads less
- launcher: remove cached stream files that were not used for 30 days
- scripting: 64-bit integers and full-precision decimals in events, exports, JSON and database
- scripting: fix lua stack overflow with deeply nested tables
- resource: allow empty files
- webui: update cef to 154.0.32
- webui: recover automatically after a crash or freeze
- webui: smoother rendering with less CPU load
- webui: default chat adapts to resolution changes
- webui: 11 new script functions
- webui: fix double and triple click, horizontal scrolling and dragging
- webui: fix
<select>dropdowns - webui: fix windows cursor staying on screen after using a UI
- webui: fix game controls staying blocked after a focused UI was closed
- webui: errors in page event handlers are now reported
- webui: pages can no longer trigger engine events like scriptInit or chatCommand
- webui: webuis now belong to their resource and are destroyed when it stops
- webui: ids are no longer reused
- webui: new
resource://URLs with their own storage per resource,fetch()and media seeking - webui: pages are restricted to their resource folder and can no longer load
file://URLs - webui: sizes are validated (1 to 8192 pixels)
- webui: events sent before a page is ready are queued instead of lost
- webui: javascript arrays from pages arrive as arrays
- webui: devtools support via webuiDebugPort in the client settings.xml
- webui: many other code improvements
Have a nice day. See you next time!
