Skip to content

Releases: EOS-Contrib/eos_plugin_for_unity

Release 5.1.2

25 Nov 16:41
477ab0f

Choose a tag to compare

[5.1.2] - 2025-11-25

Added

  • Added: Documentation about IL2CPP Setup to prevent code stripping
  • Added: Add QueryEntitlement and QueryOwnership tests to the Store demo

Changed

  • Change: Updated Android Documentation
  • Change: Packages no longer include .gitattributes files
  • Change: Improved UIHighFrequencyPeer2PeerMenu input validation

Fixed

  • Fix: NullReferenceException when using the Copy Log button in the Achievements sample scene
  • Fix: Linux build support
  • Fix: Updating EOS Config in the UI now saves it to the .json
  • Fix: Support for MacOS

Release 5.1.0

04 Nov 16:00
72af131

Choose a tag to compare

[4.1.1] - 2025-11-04

Added

  • Added: Android support for 16kb devices.

Changed

  • Change: Update to EOS SDK 1.18.1.2-CL47370208
  • Change: Android JDK version update to 11

Fixed

  • Fix: Prevent Newtonsoft from being stripped
  • Fix: Allow macOS application to shut down

Notice

  • Mac is using the 1.17.1.3 EOS SDK version of libEOSSDK-Mac-Shipping.dylib due to a bug with the 1.18.1.2 version.

Release 4.1.1

28 Aug 00:57

Choose a tag to compare

[4.1.1] - 2025-08-26

Fixed

  • FIX: Fixed the error related to Gradle build failures on Android

Release 4.1.0

12 Aug 19:45

Choose a tag to compare

[4.1.0] - 2025-08-12

Changed

  • Update to EOS SDK 1.17.1.3

Fixed

  • SendMessage does not verify if the P2P connection is fully established before sending messages

Release 3.3.6

06 Feb 20:16

Choose a tag to compare

Added

  • feat: Enable display and edit of encryption key for client credentials.

Fixed

  • fix: Allow enum values to be cast to either highest or lowest value. Correct implementation to default to 0 if there is no named value in range.

Release 3.3.5

27 Jan 22:36

Choose a tag to compare

Changed

  • Configuration System Overhaul

    • The plugin now uses a new configuration system, moving away from the older EOSConfig in favor of ProductConfig and multiple PlatformConfig files.
    • Marked EOSConfig as obsolete and introduced better default and migration paths for platform-specific settings.
    • Refactored large portions of the native code into clearer modules (Config, PlatformManager, SteamConfig, etc.), reducing duplication and improving maintainability.
    • Upgraded to Visual Studio 2022 for building native binaries.
  • Editor & Build Process Improvements

    • Refined editor windows and build scripts to better handle new config files and to auto-select defaults for newly defined platforms.
    • Moved many internal extension/helper classes into a “Common” area to simplify namespace usage and reduce redundancy.
    • Improved logging structure and behavior (including concurrency handling) in native and managed code.
    • Updated Unity package definitions and reorganized project files for more consistent UPM compatibility.

Added

  • Managed & Native Bridge Utilities

    • New ManagedToUnmanagedBridge library to facilitate deeper integration between managed C# code and native C++ components.
    • Introduced a ConsoleApplication project in the native solution, used for testing or demonstrating plugin behavior outside of Unity.
  • Configuration Lifecycle Hooks & Auto-Selection

    • Added a BeforeWrite hook in ProductConfig (and corresponding override logic) so the first sandbox and deployments can be automatically associated.
    • New “auto selection” features for client credentials, deployments, and platform defaults, improving the “first time user” experience for new projects.
    • Implemented OnWriteCompleted overrides in ProductConfig to reflect platform config changes immediately in the editor UI.
  • Quality-of-Life Features

    • Added support for additional platforms (e.g., StandaloneOSX) and integrated missing platform checks in the plugin’s internal platform manager.
    • Included new null-safe logic and fallback calls for Steam integration (e.g., retry with SteamAPI_Init if SteamAPI_InitSafe fails).
    • Enhanced doc tooling, including link-checking scripts and improved project documentation.

Fixed

  • Command-Line & Credential Handling

    • Corrected the implementation of command-line arguments passed from the Epic Games Launcher to ensure proper usage in native code.
    • Fixed null-check logic in client credential handling—particularly around newly introduced auto-selection paths and default deployments.
  • Concurrency & Race Condition Bugs

    • Addressed competing file read/write issues in editor windows by consolidating asynchronous calls and removing race conditions.
    • Removed or tightened up redundant using statements, compile conditionals, and shared references that led to sporadic compile or runtime warnings.
  • Various Stability & Compatibility Issues

    • Resolved lingering null-safety bugs (thread affinity, achievements, presence checks) throughout the plugin.
    • Fixed or removed outdated references to older configuration files (EpicOnlineServicesConfig.json), ensuring the new configuration paths are used cleanly.
    • Eliminated memory-leak and dangling-pointer issues in native code related to steam integration and the new config approach.

Release 3.3.4

26 Nov 22:51

Choose a tag to compare

[3.3.4] - 2024-11-26

Changed

  • Update to EOS SDK 1.16.4.

Added

  • feat: EOSManager can have UserLoginInfo Provided to it
  • feat: Authentication Listener knows the difference between a Connect and Auth login

Fixed

  • fix: Add isolated changes that address the Android thread IO issue.
  • fix: Correct usage of FileSystemUtility in the IOSBuilder.

Release 3.3.3

25 Sep 19:19

Choose a tag to compare

[3.3.3] - 2024-09-19

Notes:

  • It was noticed that some links in the documentation when viewed in the GitHub repository are broken. This is a known issue and will be addressed in a subsequent release.

Added

  • Added new unit test documentation and expanded test coverage across the project. (#914, #905, #893, #fdd07613, #0f55d1ec, #902)
  • Improved documentation clarity and organization, including replacing markdown files in the root of the repository with symbolic links to the package files. (#914, #f9d3615a, #8685cd73, #f077cec1)
  • Added new unit tests and refactored existing ones to address file upload encoding issues and improve coverage. (#f0b3572e, #902, #94eb0453, #f0b3572e)

Fixed

  • Removed unreferenced and outdated prefabs and files, updated documentation to reference the correct prefabs. (#adfb2877, #bfbec067, #f077cec1, #f9d3615a)
  • Renamed and reorganized unit tests to improve consistency in naming and structure. (#53bfb04a, #c8f4b821, #948babd5)
  • Updated the GetBuildTools function to accommodate Android Build Tool versioning in Unity 2022.3.44f1 LTS. (#8ed407cf, #bc075e7e)
  • Refactored managers into services, removed outdated manager references, and updated namespaces. (#2060ce08, #e83deb7f, #57b7b8b6, #561534d5)
  • Removed extraneous files like .editorconfig and unreferenced classes. Fixed small issues like grammar and unused code. (#116f51c7, #84b67848, #adfb2877, #e3c7262a, #c799fcc1)

Release 3.3.2

30 Aug 22:57

Choose a tag to compare

[3.3.2] - 2024-08-27

Added

  • feature (sessions): Reworking Sample, P2P Communication Part
  • feature(network): Implementing taskNetworkTimeoutSeconds
  • feat: Make the EOSSettingsWindow aware of which build targets are available, showing platform-specific options for only those that are.
  • feat: Implement function to enumerate the platforms that can be built against.
  • feat: Add function to generate a RuntimeConfig struct from the values of an EOSConfig class.
  • feat: Add RuntimeConfig struct that stores the totality of the configurable properties used by the plugin during runtime. Also add method to EnumUtility that supports decomposing a bitwise-operator combined enum value into it's constituent discrete components.
  • feat: Add upm layout as upm to asset project
  • feat: Upgrade targetted version of Unity.
  • feat: Add ability configure the plugin to not unload the EOS SDK on shutdown.
  • feat(sample,session): Major Session sample rework
  • tests: Add unit tests for enum extensions.
  • tests: Add unit tests of limited scope.
  • tests(sessions): Create and search for sessions
  • tests(login): Testing scene for auditing logins

Changed

  • chore(tool,import) : dispose result of async task to prevent warnings
  • chore(lib,android) : remove unused android libs
  • chore(sdk) : updated managed source for 1.16.3 hotfix
  • chore (documentation, Lobby): Adding clarifying documentation mentioning subscription
  • chore: add additional commenting
  • refactor(sessions): Capitalizing action that is a property
  • refactor(sessions): Some additional comment cleaning
  • refactor(sessions): Prefab instance link fix for friendsTabUI
  • refactor(session): Remove vestigial invite, fix ui to update properly first call
  • refactor(sessions): Juggling joined session better
  • refactor(sessions): Join session after search without member variable
  • refactor(sessions): All callers to AcknowledgeEventId cleaned up
  • refactor(sessions): AcknowledgeEventId takes in UIEventId argument
  • refactor(sessions): Rename to OnFriendStateChanged
  • refactor(sessions): MarkFriendsUIDirty => SetDirtyFlag
  • refactor(sessions): Rename UIOnPresenceAffectingChange to OnPresenceChange
  • refactor(sessions): ownInvitationState -> OwnInvitationState
  • refactor(friends ui): Standardized parent handling dirty status instead of implementors
  • refactor(sessions): Friend UI Refreshes
  • refactor(sessions): Basic Session Invitation for Presence Sessions
  • refactor(sessions): Added Friends UI to Sessions Scene
  • refactor(sessions): Addressing code review feedback
  • refactor(sessions): Session State Management
  • refactor(eos_sdk): Move eos_sdk to new upm layout directory
  • refactor: switch to static bool to test if EOSManager should unload EOS SDK or not.
  • refactor: remove LoadDelegatesWithReflection LoadDelegatesByHand

Fixed

  • fix(log,config) : Using default log levels if config file doesn't exist
  • fix(fileIO) : remove redundant code
  • fix(native,windows) : rebuild win32 versions to remain in sync with win64
  • fix(native,config) : Correct log config reader to use Pascal case
  • fix(android,fileIO) : remove file check that prevent file reading on android
  • fix(log,config) : fix renamed/capitalized config entries
  • fix(tool,import) : prevent the editor from being stuck forever after finishing the copy
  • fix(import) : updated description according to upm folder migration
  • fix: resolve empty asmdef file warning via dummy file.
  • fix: Add author details to package.json file.
  • fix: Correct minor issue within eos package description where the proper meta files were not being copied correctly.
  • fix: Add empty .gitignore files to Editor and Images directories, in-order to prevent Unity from trying to delete the associated meta files.
  • fix(mac,eac) : modify the execution bit for mac anticheat integrity tool
  • fix(eac,mac) : Mac EAC Settings template
  • fix: Correct references to version of unity that is supported.
  • fix: Change file select extension to asterisk.
  • fix(sample,achievement): General fixes on achievement scene
  • fix(eac,tool) : Allow anticheat integrity tool file path to recognize executables with no extension
  • fix(service,achievement) : prevent error when fetching product user ID prematurely
  • fix: Correct implementation of ConfigEditor so that it can be defaulted to open and work correctly within the EOSUnitTestSettingsWindow.
  • fix: Do not set the selected item during each Update(), as doing so makes it impossible for anything but the UIFirstSelected object to have focus.
  • fix: Change implementation of EOSFileTransfer to have size properly set so determination of size is not dependent on the contents of the Data byte array.
  • fix: Made leaderboard menu hidden, change to have SAMPLE_MENU_DEBUG off by default.
  • fix(eosmanager): Manage application shutdown only on Application.quitting
  • fix: Correct the implementation of the SetSelected function within SampleMenu to properly determine and set the focused control in the menu.
  • fix: Correct implementation of the function that gets the icon texture, by making sure that things are appropriately awaited.
  • fix: Corrected implementation of the get and cache data function within AchievementsService.
  • fix: Change UICustomInvitesMenu OnEnable function to actually be Awake.
  • fix: Change get achievement icon texture to return null on failure, and log a warning in all circumstances of failure.
  • fix: Ensure that the base implementation of the 'Hide()' function is called first thing.
  • fix: Utilize built-in log function instead.
  • fix: Change EOSService to have a default parameter value for the constructor.
  • fix: Return EOSSessionsManager to implement the IEOSSubManager interface.
  • fix: Fix implementations for logging out and logging in for eos services.
  • fix: Change implementation to override and call base implementations for Show/Hide.
  • fix: Correct icon loading logic for achievements to better support async.
  • fix: Change to use events instead of lists of delegate instances.
  • fix: Add proxy call from Hide/Show to call InternalHide/InternalShow.
  • fix: Moved various field members for UIParent into base class SampleMenu field member 'UIParent.'
  • fix: Move functionality within Start to properly be within the InternalAwake function for UIStoreMenu.
  • fix: Update UISessionsMatchmakingMenu to properly hide and/or show when needed.
  • fix: Move implementation of awake to base implementation.
  • fix: Remove Awake implementation from UITitleStorageMenu, depending instead upon the base implementation of Awake().
  • fix: Fold InternalUpdate behavior into base class implementation.
  • fix: Move UIFirstSelected to base class.
  • fix: Transition to using ISampleMenu as an abstract base class.
  • fix: Make the RuntimeConfig a readonly struct.
  • fix(eos,disable) : missing EOS_DISABLEs for newly added function calls or files
  • fix(test,discord) : disable discord within functions on unsupported platforms
  • fix: Place const declaration within proper compiler conditional branch so that it does not trigger a warning about an unused variable.
  • fix: Remove obsolete flag from flags field member of SteamConfig.
  • fix: Remove bootstrappy config parameters from runtimeconfig.
  • fix: Remove unused 'using' statements.
  • fix: Add check within ConfigEditor to make sure that Button config fields are only applied to field members of type Action.
  • fix: Populate steamApiInterfaceVersionsArray regardless of the success or failure of the parsing of the version.
  • fix: Remove field member from EOSSettingsWindow for the SteamConfig file, and any places within that class that reference it.
  • fix: Make field member that was errantly public private.
  • fix: Restore implementation of SteamManager to what it was before.
  • fix: Remove unused code paths.
  • fix: Further improvements to the user interface for changing EOS Plugin settings.
  • fix(android): Remove config data parameter from configuresystemoptions
  • fix: remove extra 'gc' from path for the EOS SDK in package description
  • fix: Update input rendering for SteamConfig to put it into the proper editor window.
  • fix: Move SteamConfig to Assets/Plugins/Source/Editor/Configs/ directory.
  • fix: Rename SteamWorks_Utility to SteamWorksUtility in keeping with the naming conventions used within the project.
  • fix(authentication): Theoretical OpenId re-authorization
  • fix(authentication): Authentication Tests
  • fix(discord): Retry auth on failure
  • fix(steam): Steam App and Session authentication re-attempts authentication if token is expired
  • fix(Discord): Refresh token is utilized when re-authing
  • fix(tests): OnShutdown during TearDown
  • fix: Consolidate test functionality of client sessions tests.
  • fix: Properly organize tests into mirrored namespace, resolve issues that caused tests to fail (yay! tests helped!)
  • fix: Add to gitignore to avoid init scene being added.
  • fix: Correct the function used to convert byte array to string by providing the start index and the number of bytes to read.
  • fix: Change function signature in EnumUtility to 'GetEnumerator'.
  • fix: Re-disable the new runtime config via scripting defines.
  • fix: Connect IntegratedPlatformManagementFlags field member to the RuntimeConfig data structure.
  • fix(network): Explicit double value as 0.0, Settings debug logs warning when string is invalid
  • fix (sessions): Non-Owners of Sessions Cannot Manage State
  • fix: Change SandboxId to be string instead of Guid.
  • fix: Move conversion from EOSConfig to RuntimeConfig from within EOSConfig to being an implicit conversion operator within RuntimeConfig.
  • fix: Correct order of parsing operations.
  • fix: Correct strings for descriptions of the flag values.
  • fix: Remove unreferenced code path and member within PlatformConfig.
  • fix: Correct signature used for configuring the override thread affinity values.
  • fix: Re-introduce public methods to EOSM...
Read more

Release 3.3.1

31 Jul 19:05

Choose a tag to compare

[3.3.1] - 2024-07-30

Fixed

  • fix(native,log) : log config error handling to prevent crashing
  • fix(ui,log) : show correct log levels in UILogWindow on native initialized platforms
  • chore(log,config) : update log config fields to Pascal case
  • chore(native,windows) : rebuild libs after fixing log config crash