Release notes

SmartFoxServer 2X
Unity / .Net / Mono / Windows Universal C# API

Version 1.8.3 [Jul 26th, 2023]
[FIX] Deprecated function in SFSWebSockets.jslib file required by Unity WebGL projects.

Version 1.8.2 [Jul 20th, 2023]
[FIX] Under certain circumstances, cached User Variables are not synchronized correctly when a user that was already "seen" before, is met again in a different Room.

Version 1.8.1 [Apr 17th, 2023]
[NEW] WebSocket-Sharp library updated to latest available version.
[CHG] Updated internal url for WebSocket calls.

Version 1.8.0 [Mar 30th, 2023]
[NEW] Added support for SmartFoxServer Cluster in Overcast (see

Version 1.7.19 [Dec 22nd, 2022]
[FIX] Corner-case issue when setting RoomVariables in an MMORoom with multiple joined Rooms.

Version 1.7.18 [Dec 6th, 2022]
[FIX] Conflict with Unity Multiplay and other plugins using WebSocket-Sharp library.

Version 1.7.17 [Mar 25th, 2022]
[NEW] Added support for new QuickJoinOrCreateRoomRequest.

Version 1.7.16 [Oct 6th, 2021]
[FIX] Crash in Unity's Android build with il2cpp caused, under certain circumstances, by a Console.WriteLine instruction in the API internal logger. Instruction substituted with Debug.Log in the Unity-specific DLL.

Version 1.7.15 [Jun 15th, 2021]
[NEW] Added support to [NonSerialized()] attribute in class serialization (Unity and .Net DLLs only).

Version 1.7.14 [Apr 21st, 2021]
[FIX] Incompatibility issue with Unity's Nintendo Switch build, due to unsupported System.Net.Http namespace. A Unity-specific DLL is now provided.
[FIX] Encryption initialization fails if SmartFox.Connect(host, port) method is used instead of SmartFox.Connect(config) method.
[CHG] Modified internal behavior of methods accessing list items (i.e. SFSRoomManager.GetRoomById) as a workaround to a Unity's ILL2CPP bug.

Version 1.7.13 [Feb 5th, 2020]
[FIX] MMORoom not receiving an update when a player disconnects, if the player is simultaneously joined one or more regular Room(s).

Version 1.7.12 [May 8th, 2019]
[FIX] Possible concurrency issue in Room, User and Buddy Variables collections.

Version 1.7.11a [Jan 22nd, 2019]
[NEW] SmartFox.xml added to the distribution, to show the API documentation in Visual Studio during code autocompletion.

Version 1.7.11 [Nov 22nd, 2018]
[FIX] SmartFox.UdpAvailable flag inconsistency.

Version 1.7.10 [Nov 12th, 2018]
[FIX] Room state inconsistency in case of Group subscribe/unsubscribe under a specific condition.

Version 1.7.9 [Oct 8th, 2018]
[NEW] Rewritten BlueBox client, using .Net 4.5.x classes.
[NEW] Added support for BlueBox over HTTPS.
[NEW] Added support for proxy settings for the BlueBox connection (not available under Universal Windows Platform).
[NEW] Rewritten SmartFox.InitCrypto() method; now it doesn't require to be run as a coroutine in Unity.
[NEW] Unified .DLLs for Unity and .Net; now both environments can reference the same library.
[NEW] Updated WebSocket-Sharp library for Unity WebGL builds.
[FIX] WSS connection issues.

Version 1.7.8 [Jul 25th, 2018]
[FIX] Minor issue in Unity's WebGL builds, causing a specific disconnection circumstance not to fire the CONNECTION_LOST event.

Version 1.7.7 [Jul 20th, 2018]
[FIX] Minor issue causing some garbage to be generated by ProcessEvents method when the events queue was empty.

Version 1.7.6 [Mar 31st, 2018]
[FIX] Issue with HRC+ system on an encrypted connection.

Version 1.7.5 [Aug 31st, 2017]
[FIX] List of updated variables names returned by ROOM_VARIABLES_UPDATE and USER_VARIABLES_UPDATE events changed from ArrayList to List<string>.

Version 1.7.4 [Jun 12th, 2017]
[FIX] Memory leak due to threads not being halted in Windows Universal DLL.

Version 1.7.3 [Jun 5th, 2017]
[NEW] Added support for SmartFoxServer 2X default binary protocol over websocket transport for WebGL builds.
[NEW] TcpNoDelay parameter added to ConfigData object.
[FIX] Rewritten byte reordering routine in ByteArray object to avoid memory waste.
[FIX] SFSArray's Get methods return a default value instead of throwing an exception if the passed index is out of bonds.
[FIX] No event dispatched when a buddy is un-blocked.
[FIX] Deprecated method in Unity's WebGL build (in SFSWebSockets.jslib file).

Version 1.7.2 [Jan 14th, 2017]
[FIX] Error in adding/retrieving MMOItems to/from the player's Area of Interest.
[FIX] Loop optimization when processing the queued events.

Version 1.7.1 [Nov 28th, 2016]
[FIX] UDP connection error in IPv6 environment.

Version 1.7.0 [Nov 8th, 2016] (new features require SFS2X v2.12 or later)
[NEW] Added new JoinRoomInvitationRequest class.
[NEW] Added new SFSDataType.TEXT allowing “long text” to be sent and received, up to 2 GBytes.
[NEW] Added support for 'private' User Variables, visible to their owner only.
[FIX] Added "room" parameter to EXTENSION_RESPONSE event, to make it uniform with other Room-related events; the previous "sourceRoom" parameter is still available but deprecated.
[FIX] Removed client side permission checks for kick and ban requests.
[FIX] Return updated Buddy object data when a buddy is un-blocked.

Version 1.6.6 [Jun 3rd, 2016]
[NEW] Support for .Net projects through a dedicated DLL.

Version 1.6.5
[NEW] IPv6 support added for Unity builds.

Version 1.6.4
[FIX] Removed a few dependancies preventing Xbox One builds under Unity.

Version 1.6.3
[FIX] Conversion error between signed and unsigned bytes for WebGL build.
[CHG] Changed inner LitJson classes namespace to custom one (SFSLitJson).

Version 1.6.2
[FIX] SmartFox.Disconnect method not closing the connection when called on application quit.

Version 1.6.1
[FIX] Unity WebGL build incompatibility due to undocumented changes in Unity starting from v5.1.1p4.

Version 1.6.0 (new encryption feature requires SFS2X v2.10 or later)
[NEW] Support for Unity 5's WebGL build through a dedicated DLL.
[NEW] Support for Windows Universal apps through a unified Windows DLL.
[NEW] Support for TLS encrypted protocol over TCP/UDP.
[NEW] Added new ConfigData.httpsPort for the initialization of the encrypted protocol.
[CHG] Unified version number: starting at 1.6.0, the major and minor release identify the "feature support level", the sub version indicates the platform specific release number.

Version 1.5.8
[FIX] Potential concurrency issue when joining a Room and accessing the list of players.

Version 1.5.7
[NEW] Added SmartFox.RemoveLogListener method to conveniently remove log event listeners when destroying a SmartFox instance.
[FIX] Reconnection system (HRC) activating even during manual disconnection of the client.

Version 1.5.6
[FIX] Null class returned when using class serialization in Windows 8 and Windows Phone 8 apps (both native and built with Unity).

Version 1.5.5
[FIX] Lag Monitor causing an exception when using the API for Windows 8 / Windows Phone 8 app development (both native and built with Unity).
[FIX] Wrong log level when dispatching log events.
[FIX] Reference count leak in SFSGlobalUserManager.
[FIX] Minor corrections to API documentation.

Version 1.5.4
[FIX] Error when compiling native Windows Phone 8 apps.
[FIX] Error when building Unity project targeting Windows Phone 8 system.

Version 1.5.3
[NEW] Added SmartFox.HttpUploadURI getter for HTTP-based file uploads to server.

Version 1.5.2
[FIX] ZLib compression error under certain circumstances (Windows Phone 8 clients only).
[FIX] Missing AoI-related parameters when a SFSRoom represent an MMORoom.
[FIX] Other minor fixes.

Version 1.5.0
[NEW] MMO API added, providing several new classes and functionalities for large and extra large virtual worlds and games (see SmartFoxServer 2X v2.8.0 release notes).
[FIX] Room.isJoined property not matching current state in results of FindRoom request.

Version 1.4.0
[NEW] Windows 8 and Windows Phone 8 support.

Version 1.3.0
[FIX] Sporadic encoding issue for the Base64 codec, when connected via BlueBox/HTTP Tunnelling.

Version 1.2.6
[FIX] Bug causing an NRE upon disconnection.

Version 1.2.5
[NEW] Added PasswordUtil class. Now the API is compatible with the Sign Up and Login server side components.
[FIX] Full review of the API documentation.
[CHANGE] API DLL file renamed to SmartFox2X.dll to make it clear that this version contains the following refactorings.
[CHANGE] Namespace of Buddy-related requests changed from Sfs2X.Requests to Sfs2X.Requests.Buddylist for consistency with other APIs.
[CHANGE] Method Logger.EnableControlTrace renamed to Logger.EnableConsoleTrace for consistency with other APIs.
[CHANGE] Class QuickGameJoinRequest renamed to QuickJoinGameRequest for consistency with other APIs.

Version 1.2.0
[NEW] Added overloaded SmartFox.connect(CfgData cfg) method to pass full configuration data directly instead of loading an external file.
[FIX] Default value for client details (see SetClientDetails method) sent to server during the handshake changed to "Unity" instead of "unknown".

Version 1.1.0
[NEW] Added SmartFox.SetClientDetails(...) method to specify the runtime platform and version to gather client type statistics on the server side.
[FIX] Updated threads life-cycle to avoid memory leaks when recreating the connection several times.
[FIX] Inconsistent IsConnected flag under several scenarios.
[FIX] Fixed thread coordination during connection and disconnection phases.
[FIX] Improved memory management.

Version 1.0.7
[FIX] Issue with Room Variables as discussed here:

Version 1.0.6
[NEW] HRC+, improved version of the High Resilience Connection system, allows longer reconnection times improving connection stability.
[FIX] Improved BlueBox performance.
[FIX] SetErrorMessage throwing an exception when adding/changing error messages text.
[FIX] Unity crash on connection lost.

Version 1.0.5
[FIX] Changed fixed array for error codes to use List<string> instead. Now adding/changing error messages is supported.
[FIX] blueBoxPollingRate parameter not being set by the system when passed from the external config.

Version 1.0.4
[FIX] Empty out message queue instead of throttling message sending.
[FIX] Improved BlueBox failover when socket connection fails.

Version 1.0.3
[NEW] Threaded sending of requests to increase performance and reduce impact of large packets on game client.
[FIX] SFSRoom current user count not reporting correct number.
[FIX] Disconnection issues.
[FIX] Reconnection exception being thrown when HRC is used.
[FIX] Deserialization error in classes with extra fields.
[FIX] Wrong RoomProperties Max User and Max Spectator keys.

Version 1.0.2
[FIX] Unity editor hanging due to thread termination not always being detected by latest version of Mono implemented by Unity.

Version 1.0.1
[NEW] Serialization of float, byte, long and short added
[FIX] Problem with CONNECTION_LOST events being swallowed.
[FIX] Better handling of switching to Bluebox mode.
[FIX] Internal improvements on disconnection handling.
[FIX] Minor documentation changes.