Just Cause 2 – Multiplayer 0.2 Beta Announced & Detailed, Available For Testing


The team behind the amazing Multiplayer mod for Just Cause 2 announced that a new beta version is currently available for testing. Not only that, but the team also detailed the new features that are coming with it, and we have to say that some of them sound awesome.

As the team noted:

“You can opt-in to the publicbeta branch in the Betas tab. Do not switch to this branch unless you are willing to actively help find issues and prepare your scripts for the release. If you don’t know how to switch to the branch, we advise you wait for the official release.”

Just Cause 2’s Multiplayer 0.2 Beta will feature Scriptable Client Actors (meaning that scripters can now create their own client-side NPCs), Civilian Model Support, Depth-Tested Rendering, Basic Unicode Support (in order to support more languages), as well as Steam Achievements and Major sync improvement to vehicles and on-foot weapons.

 

Here is the changelog for Just Cause 2’s Multiplayer 0.2 Beta:

New Features

Shared

  • Added support for all of the previously unsupported civilian models
  • Added Steam achievements
  • Added SharedObject class
  • Added NetworkObject class
  • Added WorldNetworkObject class
  • Added basic UTF-8 support to Lua strings
  • Added SetUnicode(boolean) global function
  • Added storage to all entities, not just Players
  • Deprecated PlayerValueChange and PlayerNetworkValueChange events
  • Refactored Chat class functions to support multiple colours in a single message
  • Added Vehicle.GetClassByModelId
  • Added Vehicle:GetClass
  • Added VehicleClass enum
  • Improved Lua errors with event argument printout
  • Added delta argument to PreTick/PostTick and Render/PostRender
  • Added Angle.Delta
  • Added Vector2.Reflect and Vector3.Reflect

Server

  • Added module metadata
  • Added Player:Damage
  • Added Vehicle:SetStreamPosition and Vehicle:SetStreamAngle
  • Added Vehicle:Get/SetSpawnPosition and Vehicle:Get/SetSpawnAngle
  • Can now disable collisions between two different types with Player/Server functions EnableCollision/DisableCollision
  • Added ClientModulesLoad event
  • Added Player:RequestGroupMembership(groupId, callback)
  • Added StreamableObject:GetStreamedPlayers
  • Added SLED debugger support
  • Added suppressible PlayerAchievementUnlock event
  • Added Server:GetFrameTime
  • Added SendAutorunWhenEmpty config variable, default as false, to control whether autorun scripts are sent for empty modules
  • Added netstat command

Client

  • Added ClientActor class which provides a basic client-side NPC interface
  • Added GameRender event for depth-tested rendering in the game world
  • Main menu overhaul
  • Added support for streaming image resources with AssetLocation.Resource
  • Added support for Unicode characters in CharPress
  • Added LocalPlayer:SetLinearVelocity
  • Added Character class, common to Player and ClientActor
  • Added Character:Get/SetLeftArmState
  • Added Character:GetSeat
  • Added Vehicle:Set(Linear/Angular)Velocity
  • Added GetClimateZone method to streamed and client entities
  • Added ClimateZone enum
  • Added Player:GetAvatar
  • Added AvatarSize enum
  • Added Featured tab to the server browser
  • Added description field to the server browser
  • Server browser filters are now consistent between restarts
  • Added Camera functions SetFOV and GetFOV
  • Added LocalPlayerEjectVehicle event
  • Added ‘entity’ and ‘impulse’ arguments to VehicleCollide event
  • Added LocalPlayer functions SetOxygen and GetOxygen
  • Added LocalPlayer:IsFriend(steamid/player)
  • Added Client:GetFrameTime
  • Added Game:GetWeatherSeverity
  • Added ClientStreamableObject as a base class to Vehicle/Player
  • Added an optional boolean parameter to Physics:Raycast to disable the raycast filter
  • LocalPlayerBulletHit event now contains a bone argument
  • Added a setting to toggle vehicle camera snap and adjust timeout
  • Added a setting to toggle vehicle stunt camera
  • Removed apostrophe keybind opening console, added a setting to configure console keybind
  • Added support for correctly rendering the tab character in text
  • Added CursorType enum
  • Added Mouse:SetCursor
  • Added FontAwesome and League Gothic fonts to resources
  • Added ability to navigate through TextBox history using Up and Down arrow keys
  • Added Ctrl-Left/Ctrl-Right hotkeys to TextBox to facilitate moving the cursor word by word
  • Added Label:SetLineSpacing
  • Added TextBoxNumeric:Get/SetNegativeAllowed
  • Added gui_show_netstat console command
  • Added window position and size launch parameters

Bug Fixes

Shared

  • General sync improvement
  • Luabind now checks parent classes when looking up class members (class(“MyDerived”)(MyBase) in _init.lua works now)
  • Scripts are now loaded in alphabetical order on all platforms
  • Fixed script profiler not counting network events
  • The marshaller now accepts table keys of any type
  • Angles sent over the network no longer lose precision from compression
  • Vector2/Vector3/Color statics can no longer be edited
  • Comparing any API class with ‘==’ should now work
  • Fixed random number generator not being seeded at startup
  • Improved Timer precision

Server

  • Fixed issue with server memory not being freed on entity removal
  • Fixed issue with world iterators not working correctly
  • Fixed a bug where scripts would still be run even if the server failed to start
  • Fixed SteamId outputting the community id when printed on Windows

Client

  • Fixed bones returning the wrong position for smaller models (Breaking change)
  • Fixed very long-standing issue with on-foot weapons often not firing for other clients
  • Vastly improved vehicle sync, also allows players to stand on vehicles as in singleplayer
  • Hopefully fixed archive bug that caused models/effects to fail to load
  • Fixed static objects not responding to the biome (snow / dust)
  • Fixed an extremely prevalent crash during entity collision listener removal
  • General renderer improvements
  • Refactored Mounted Gun sync, resulting in better aim accuracy
  • Reduced memory usage by preventing entire archives from being loaded at once
  • Fixed issue where requested models could sometimes be wiped out by the loading screen process
  • Fixed a bug where vehicle colors were darker than the requested colors
  • Fixed issue with vehicle colors not being applied to some turret parts
  • Fixed input sometimes going crazy when in a menu
  • Fixed settings window not preserving game resolution upon resize
  • Improved precision of Input:GetValue return value
  • Fixed being stuck in the air when EnterVehicle is called while grappling
  • Things drawn in 3D (and Render:WorldToScreen) no longer appear to be ahead by one frame
  • Fixed character model not changing if gui hidden or in a menu
  • Removed highlighted servers from the server browser
  • Character models are now reset on disconnect
  • Fixed PlayerEnterVehicle missing old_driver arg
  • Fixed issue with default player state being PlayerState.None instead of PlayerState.OnFoot
  • Some client entities now inherit from ClientStreamableObject to mirror the server classes
  • Added parameters argument to ClientSound.Create
  • ImagePanel:SetImage now takes an Image instead of a path
  • Fixed HSVColorPicker issues
  • Fixed SortedList header being offset when it has a scrollbar
  • Fixed crash with SortedList:Clear
  • Fixed issue with SortedList sizing