0.2 Announcement

Public Beta

Now available!





Welcome to our biggest, baddest, most awesome update yet! We've toiled extensively to bring you fantastic new features and much-needed bug fixes. Check out the full list below!



As there's been an extensive number of changes, as well as a great many features, we're giving scripters, server hosters, and curious bystanders early access to the 0.2 client and server, so that your favourite servers can give you the best possible experience on release. For everyone else, don't fret; we'll have the final version out for your enjoyment once we've worked out all the kinks.



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.



Note that this will lock you out of all 0.1.4 servers; if you need to regain access, simply switch back to "NONE - Opt out of all beta programs."

Key Information

Scriptable Client Actors

Scripters can now create their own client-side NPCs!

Civilian Model Support

All civilian models can now be used!

Depth-Tested Rendering

Render inside of the game world!

Basic Unicode Support

Allowing use of more languages.

Main Menu Overhaul

Convenient access to your favorite servers.

Steam Achievements

Unlock them by completing tasks with players.

Other Major Features:

Major sync improvement to vehicles and on-foot weapons

Implementation of following classes, which greatly improve client/server communication:

SharedObject NetworkObject WorldNetworkObject

Extended ability to store values to all entities

Fixed major bug causing random models/effects to become invisible

Example Scripts

0.2 Changelog

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

a running changelog for each new version is maintained on the wiki, see here