0.1.4a (Available on the publicbeta branch)
New features
Shared
Overhauled the logging system to support unicode (the first of many unicode additions to come)
Added console command for profiling Lua modules; usage: profiler_sample number_of_seconds
Bug fixes
Server
Reverted changes to SQL which were causing massive memory leaks
Note: This change was made before release to prevent server crashes related to SQL errors. If you encounter an SQL error which then crashes the server some time later, please report it.
Fixed Vector2() and Vector3() returning uninitialized data on linux
Client
Fixed StaticObject related crash
Fixed Vehicle:SetColors to properly support mounted guns and ailerons
Fixed Game:GetState returning 0 for menu and loading screen
Fixed ClientEntity:GetId not being exposed
GWEN: Fixed crash when unsubscribing from current event
GWEN: Removing the active TabButton will now select another available tab
GWEN: Fixed BaseWindow's Blur event not always being called
GWEN: Fixed crash when using GroupBox:RemoveAllChildren
GWEN: BaseWindow functions GetNumChildren, GetChildren, and RemoveAllChildren now only act on user-created controls
0.1.4 patch - 2014 March 14
Bug fixes
Client
Fixed a very prevalent crash caused by other players having DLC weapons which you don't own
Fixed Explosion deaths being incorrectly attributed to the player with the ID of 0
Fixed TabButton crash when using TabControl:RemovePage at certain times
0.1.4 - 2014 March 12
New features
Shared
Added the ability to set custom values on players, which are synchronized across modules and (optionally) server/client
Added events EntitySpawn and EntityDespawn
Added vehicle invulnerability
Added events:
Vastly improved Lua error messages and made them much more usable
Added a global Lua include directory, under lua/autorun/, that can be used to inject code into other modules under IKnowWhatImDoing
SteamId can now be passed in Events:Fire and Network:Send/Broadcast
Timer can now be passed in Events:Fire
Added an optional second argument to 'class' that lets you specify a parent table
Improved Timer accuracy, added GetMinutes and GetHours
Bug fixes
Shared
The hard limit of 65536 entities was increased to ~4 billion
Improved player color generation algorithm; the saturation range is now between 0.5 and 0.75
Removed Vector3 compression when using Network:Send due to horrible precision loss
Server
Fixed crash when a Lua event was broadcasted during unloadall
Client
Fixed crash when calling GetPosition/GetAngle on a partially-spawned StaticObject
Fixed StaticObject crash when updating position of a non-existent model
Fixed occasional crash when removing GWEN controls, such as removing a control and its parent at the same time
Fixed TabControl related crashes when removing a TabButton or its page, as well as pages sometimes staying around
Vehicle:SetColors will now update the vehicle's colors immediately
Fixed 'connect ip:port' console command not working when a port is provided
Added client-side protection against the edge case of spawning invalid weapon models
Fixed 'reconnect' not working if server is passworded
Aliased 'force_connect' to 'connect'
Fixed some GWEN events not working
Edited the GWEN skin to give a dark theme to Trees and PropertyTrees
Improved TextBox cursor behaviour
Fixed mouse cursor not being updated immediately after Mouse:SetVisible
Moved AssetLocation to shared
GroupBox:SetPadding no longer affects the title text
ListBox and SortedList are now affected by SetBackgroundVisible.
Fixed SortedList:Sort crash with bad column
0.1.3 - 2014 January 30
New features
Shared
Added a __type property to JC2-MP classes that returns the type of the value as a string
Bug fixes
Shared
Fixed IsValid (StaticObject) not working
Client
Fixed a major crash related to looking at StaticObjects
Fixed crash when removing a GWEN object in its own event.
Fixed crash when an invalid index was provided to PageControl functions ShowPage and GetPage
Fixed TextBox and chat window cursors being offset
Main menu buttons are now correctly sized
0.1.2 - 2014 January 23
New features
Server
Replaced OGP with GameSpy4 query protocol, making it possible to connect to a server when Announce = false, as well as improving server stability
Added Player:GetIP
Unhandled packet warnings now print the source IP address
Added Console:Run allowing scripts to run console commands (requires IKnowWhatImDoing config enabled)
Added the PlayerWorldChange Lua event
Removed CellSize in config.lua; merged PlayerStreamDistance, VehicleStreamDistance and CheckpointStreamDistance into one StreamDistance variable
Client
Added highlighted servers to server browser (request thread )
Added BaseWindow functions SetWidth, SetHeight, GetWidth, GetHeight, RelativeToAbsolute and AbsoluteToRelative
Added Label functions GetTextSize and SetTextSize
Added TableRow functions (Get/Set) BackgroundEvenColor, BackgroundOddColor, BackgroundHoverColor, BackgroundEvenSelectedColor, BackgroundOddSelectedColor
Added the LocalPlayerWorldChange Lua event
Added BaseWindow:Subscribe with the events HoverEnter, HoverLeave, Focus, Blur, PreRender, Render, and PostRender
Added Render:SetClip
Added the MouseUp Lua event
Added Game:GetTime to get the time of the current world
Bug fixes
Shared
Attempting to access invalid static Lua class variables now returns nil instead of erroring
Changed static gettable for Lua classes to also return instance methods; i.e. you can get Player.SendChatMessage without requiring an actual player
Fixed Vector2 and Vector3 default constructors having uninitialised components
Time is now properly synced across all worlds, not just DefaultWorld; clients also receive the time every 30 seconds to prevent drift
Fixed negative timestep from halting at midnight
Server
IKnowWhatImDoing now unlocks more, including os and io functions
Client
Fixed a very prevalent crash related to invalid data being passed into JC2's landscape code
Fixed crash when unloading a module with a modal window
More crash fixes
Player is now made vulnerable after disconnecting from a server
Fixed passing LocalPlayer through Events:Fire not working
Fixed (parent, name) GWEN constructors not applying the name
Changed default server browser sort to lowest ping
Fixed vehicles sometimes becoming invulnerable when being repaired
Fixed sometimes dying inside terrain after CalcView reenables the local player
Fixed Window:DisableResizing not working
Clamped font size from 0 to 512
Increased font size on main menu
Menu/console windows are now resized on resolution change
Changed GWEN Slider background line to white to improve visibility
Fixed ProgressBar:SetCycleSpeed not updating the auto label
Fixed BaseWindow:__eq being undefined
Fixed scrollbar being invisible in a GWEN Tree
Fixed infinite loop in GWEN when labels with word wrap are too small
Fixed labels with word wrap not being docked correctly
Fixed cursor not showing up for all corners of a window
0.1.1 - 2013 December 21
New features
Shared
Removed registration requirement from events firing; Events:FireRegisteredEvent is now Events:Fire and Events:Register/Unregister are deprecated
Added argument-less version of Events:Fire
Prevented 'load' Lua function from loading bytecode, increasing security
Server
Added support for loading C packages in Lua, allowing for the use of LuaSocket, LuaSQL, etc
Added IKnowWhatImDoing configuration variable to selectively enable the use of unsafe Lua functionality
Bug fixes
Client
Fixed client deadlocking on exit
Fixed evenness in GWEN ListBox backgrounds not being preserved in a sort
Fixed ListBox:Clear and SortedList:Clear not working
Fixed TableRow:SetTextColor not working
Fixed broken world on respawn; collisions with world objects should now work
Fixed non-ideal performance for GetTextWidth ; now optimized
Fixed server browser query continuing even after the server browser was closed
Fixed bug where the player would be entered into a vehicle before they finished teleporting
Fixed crash when attempting to get non-existent userdata on a GWEN object
Fixed crash when attempting to get/set non-existent cell contents on TableRow
Fixed DirectX Error Code 4 upon launching; unsupported code for certain graphics cards
Server
Fixed banned players being unable to reconnect upon being unbanned
Fixed UDPSocket crashing upon destruction
Shared
Fixed Player.Match only returning results where the query could be found at the start of the name
0.1.0 - 2013 December 16
JC2-MP released on Steam.