0.2 Released

Just Cause 2: Multiplayer Mod

JC2-MP is a project to bring multiplayer to Just Cause 2 in all of its magnificent glory. Imagine the chaos of normal Just Cause 2, then extending it out to dozens, hundreds, and even thousands of players.

[h1]Key Information[/h1] [list] [*][h1]Scriptable Client Actors[/h1] Scripters can now create their own client-side NPC's! [img]http://static.jc-mp.com/images/02_announce/clientactors.png[/img] [*][h1]Civilian Model Support[/h1] All civilian models are now available to use! [img]http://static.jc-mp.com/images/02_announce/civilians.png[/img] [*][h1]Depth-Tested Rendering[/h1] Render inside of the game world! [img]http://static.jc-mp.com/images/02_announce/depthtesting.png[/img] [*][h1]Basic Unicode Support[/h1] Allowing use of more languages. [img]http://static.jc-mp.com/images/02_announce/unicode.png[/img] [*][h1]Main Menu Overhaul[/h1] Convenient access to your favorite servers. [img]http://static.jc-mp.com/images/02_announce/mainmenu.png[/img] [*][h1]Steam Achievements[/h1] Unlock them by completing tasks with players. [img]http://static.jc-mp.com/images/02_announce/achievements.png[/img] [/list] [h1]Other Major Features:[/h1] [list] [*]Major sync improvement to vehicles and on-foot weapons [*]Implementation of following classes, which greatly improve client/server communication: [list] [*]SharedObject [*]NetworkObject [*]WorldNetworkObject [/list] [*]Extended ability to store values from player-only to all entities [*]Fixed major bug causing random models/effects to become invisible [/list] [h1]0.2 Changelog[/h1] [h1][b]New Features[/b][/h1] [h1]Shared[/h1] [list] [*]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 [*]Added ComponentMultiply method to Vector2 and Vector3 [*]Added Weapon equality operator [/list] [h1]Server[/h1] [list] [*]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 [/list] [h1]Client[/h1] [*]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 [*]Vastly improved the chat window with word wrap and chat history [*]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 VehicleTransmission, with methods Get/SetGear, Get/SetClutchDelayTime and more [*]Added VehicleSuspension, with methods Get/SetChassisDirection, Get/SetStrength and more [*]Added VehicleAerodynamics for land vehicles, with methods Get/SetAirDensity, Get/SetDragCoefficient and more [*]Added Vehicle:GetTransmission, Vehicle:GetSuspension and Vehicle:GetAerodynamics [*]Added Vehicle:GetTorque, Vehicle:GetWheelCount, Vehicle:GetRPM, Vehicle:GetMaxRPM and Vehicle:GetTopSpeed [*]Added GetClimateZone method to streamed and client entities [*]Added ClimateZone enum [*]Added ShapeTrigger with events ShapeTriggerEnter and ShapeTriggerExit [*]Added TriggerType enum [*]Added VehicleTriggerType 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 [*]Added chat key and chat toggle key settings [*]Removed apostrophe keybind opening console, added a setting to configure console keybind [*]Added support for correctly rendering the tab character in text [*]Added Render:GetDepthEnabled [*]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 [/list] [h1][b]Bug Fixes[/b][/h1] [h1]Shared[/h1] [list] [*]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 [*]Fixed issue where IsValid would raise an exception for non-table/userdata types [/list] [h1]Server[/h1] [list] [*]Fixed issue with server memory not being freed on entity removal [*]Cleaned up streamer code, hopefully reducing amount of server crashes [*]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 [/list] The client bug fixes exceed Steam's news post limitations, so for further information on the patch, check out our announcement post [url=https://www.jc-mp.com/forums/index.php/topic,5532.0.html]here[/url].