Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[3.0.0-exp.9] - 2026-08-17
Added
- Updated the Cloud Code Module (.ccmu) inspector with deployment actions and a last successful deployment summary.
- Support default parameters in generated bindings for Cloud Code modules scripts.
- The local Cloud Code server settings can now create and assign a placeholder secrets JSON file, and open the assigned file in your external editor.
Changed
- The package now targets Unity 6000.0. The local debugger requires Unity 6000.3 or newer, and Cloud Code Module authoring requires Unity 6000.5 or newer.
- The local Cloud Code server now defaults to port
14750instead of5000by default. Configurable in theCloudCodeLocalServerSettingsasset. Existing projects keep the port already stored in that asset. - The local Cloud Code server's infrastructure now defaults to non-verbose logging. This has been made configurable on the
CloudCodeLocalServerSettingsasset. - The local Cloud Code server's secrets file is now validated for parseable JSON object content and surfaces an error dialog when invalid.
- The local Cloud Code server settings can now create and assign a placeholder secrets JSON file, and open the assigned file in your external editor.
- New Cloud Code Module scripts are now created with
[StateScope(Scope.Player)]instead of[StateScope(Scope.MultiplayerSession)], and carry a comment linking to the scope documentation. - Cloud Code Modules now report a compile-time error when a function's return type, a parameter, or a data type field is a custom collection type (a user type implementing
IEnumerable<T>other thanList<T>, an array, orDictionary<,>), which can't be serialized to or from JSON. UseList<T>orT[]instead.
Breaking Changes:
- CloudCodeModuleScope renamed to CloudCodeScope and moved to the main Unity.Services.CloudCode namespace.
Fixed
- Cloud Code Modules (
.ccmu) no longer show "Modified locally" after routine re-imports (entering Play Mode, domain reloads, or reimporting) when their source is unchanged. A module's status is now derived from its content compared to the last deployment, and a remotely-deployed module keeps its status regardless of the local server's state. - Cloud Code Modules authored natively in-editor now generate enum bindings that preserve the enum's underlying type (
byte,short,long,ulong, etc.) instead of always emittingint, which truncated or failed to compile values outsideintrange. (The separate module-reference.ccmrbindings generator is unchanged.) - The local debug server now starts on Linux with default preferences. The default .NET path pointed at the
/usr/share/dotnetdirectory instead of an executable; it now resolvesdotnetfrom the system PATH, with a fallback if the configured path is invalid. - A local Cloud Code server that dies during startup now reports why. It also checks two things up front on start:
- Port conflicts for any ports the local server needs.
- The .NET runtime the server needs.
- Fixed a
NullReferenceExceptionwhen deploying a Cloud Code Module after a domain reload.
Dependencies
- Cloud Code Module authoring now targets Cloud Code Core
v0.0.7(wasv0.0.4) and Cloud Code APIsv0.0.27(wasv0.0.26). The changes to these packages are listed below.
Cloud Code Core v0.0.7
- Breaking: Redefined the Cloud Code
Accessenum. The values are renamed and renumbered, and default is nowAccess.Unspecified. Validation will be done at load time and incompatible values will throw an exception. - Breaking: Renamed
[Service]attribute to[CloudCodeService]to avoid confusion with other service attributes. - Breaking: Renamed
ITimerService.RegisterTimerAsyncandITimerService.GetTimerAsync, for consistency. The previousRegisterandFetchnames still work but are now obsolete.
Cloud Code APIs v0.0.27
- Added
AddAdminApiClient()extension method to register the Admin API client through dependency injection, matchingAddGameApiClient().
[3.0.0-exp.8] - 2026-06-16
Added
- Author Cloud Code Modules natively in the Unity Editor, with your cloud source code compiled automatically and fully
debuggable right where you work. There's no longer any need to regenerate bindings or maintain a separate solution
outside your Unity workspace - everything lives in one place. Writing, compiling, debugging, and deploying now happen
in a single workflow, enabling rapid iteration and faster deployment. Highlights include:
- Create new Cloud Code Modules quickly with a guided creation flow.
- Iterate rapidly and catch issues early with modules that compile in-editor as part of your project.
- Skip manual bindings regeneration - strongly-typed client bindings are generated and kept in sync automatically.
- Scoped Cloud Code is supported alongside standard modules.
Fixed
- Added retries with a longer request timeout when checking whether a Cloud Code module exists during deployment.
- Fixed Cloud Code Module deployment resolving required precompiled assemblies using Editor-loaded assembly paths on Unity 6000.5 or newer.
Changed
- Renamed Native Modules to Cloud Code Modules; they now use the
.ccmufile extension instead of generic.assetfiles. Recreate any existing modules. - Generating bindings will now includes enum values alongside their names.
- Generating bindings dictionary keys now retain their original types instead of being converted to strings.
[3.0.0-exp.7] - 2026-04-28
Changed
- Updated templates setup and dependencies to use Cloud Code APIs v0.0.26 and Core v0.0.4.
- Updated the local server debugger.
[3.0.0-exp.6] - 2026-04-23
Fixed
- Fixed an issue where .net path checks were not account for dotnet cli commands.
Added
- Added Cloud Code Debugger that needs to be enabled by adding
UNITY_SERVICES_CLOUDCODE_EXPERIMENTALunder Project Settings > Player > Scripting Define Symbols.
[3.0.0-exp.5] - 2026-04-22
Added
- Added custom icon form Cloud Code Module Reference (.ccmr) and Cloud Code Javascript (.js) files
- Added a console log with a "View on Dashboard" link upon successful deployment of Cloud Code Modules.
- Added "Deployment Window" shortcut to the Local Cloud Code Server toolbar popup.
- Scoped invocations are supported for Local Cloud Code Debugging and remote.
- Added retries with a longer request timeout when checking whether a Cloud Code module exists during deployment.
Changed
- Updated the "Go to Dashboard" link in Project Settings for Cloud Code to point to Cloud Code Overview page.
- Improve discoverability of Cloud Code in the Unity Package Manager.
Fixed
- Fixed an issue where rapidly starting and stopping the local Cloud Code server incorrectly produced console error logs.
- Added checks to prevent Users from setting invalid Ports for the local Cloud Code server.
- Added .Net path setting validation when starting the local Cloud Code server.
- Fixed usage of disallowed
Assembly.LocationAPI in Unity 6.5+
[3.0.0-exp.4] - 2026-03-11
Added
- Implement the Resetting of Scope State and persistence for Local CC Debugging.
Fixed
- Fixed local server start failure due to unescaped parameters.
- Fixed Cloud Code fields in Project Settings to show their own descriptive tooltips.
- Fixed debugger tooltip to indicate debug fields are read-only once the local server starts.
[3.0.0-exp.3] - 2026-02-25
- Releasing public experimental exp-3.
[3.0.0-exp.2] - 2026-02-12
Fixed
- Enable support for passing complex types for C# modules deployed onto the local Cloud Code server.
[3.0.0-exp.1] - 2026-01-19
Added
- Implemented Local Cloud Code debugging, enabling Users to rapidly iterate and debug C# modules on a local server
running on their machine. This has a requirement of Unity 6.3 or higher. Users can:
- Configure local server settings via Cloud Code Project Settings (File > Project Settings > Services > Cloud Code)
- Enable the Local Cloud Code Toolbar via (Top right Toolbar Context Menu > Services > Cloud Code)
- Start or stop the local server via the toolbar and attach local debuggers through Visual Studio or Rider.
- Deploy C# modules to the local server via the deployment window (Services > Deployment) to be executed.
- Implemented support for Stateful Cloud Code with Player and Multiplayer Session scoped invocations, enabling users to simplify state management for event-driven games. Note that this is only supported for Local Cloud Code Debugging and not remote.
Changed
- Cloud Code event subscription only exposes event registration from within the returned subscription object
Removed
- Removed deprecated CloudCode API
[2.10.3] - 2026-01-05
Fixed
- Updated versions for cloud apis
- Added Unit test that is not published as part of the template
- Added .gitignore as part of the template
[2.10.2] - 2025-09-16
Fixed
- Signing package
- Fixed assets being loaded despite being of the incorrect type
[2.10.0] - 2025-07-03
Changed
- Generating bindings will generate one file and class per cloud code class instead of one class for all functions
- Before generating a solution, the path will be validated so that it corresponds to a valid module name
- Bumped dependency of Core package
Fixed
- Tentative fix to dotnet hang
- Changed exit condition , it seems only indefinite wait for exit will always work
- Added timeout
- Tentative fix for occasional hang of dotnet when redirecting std output
- Fixed documentation that still used
importoverrequirefor bundling
[2.9.0] - 2024-10-29
Changed
- Updated the minimum supported Editor version to 2021.3.
Fixed
- Fixed Help URLs for Cloud Code Module and Cloud Code Script
- Fixed inspector loading for service assets, below Unity 6
- Fixed an issue that might cause the CloudCode scripts inspector to spam calls to the admin API
- Fixed an issue that causes the progress bar to revert during Cloud Code Module deployment
[2.8.1] - 2024-10-29
Fixed
- Fixed compatibility wih Deployment 1.3
[2.8.0] - 2024-10-18
Added
- View in Deployment Window button in
.ccmrand.jsfiles, dependent on Deployment package version 1.4.0. - View in Dashboard button in inspector for
.ccmrand.jsfiles. - View in Dashboard context menu in Deployment Window for
.ccmrand.jsfiles. - Add
Open Solutionbutton to.ccmrinspector. - Add Enum support for Cloud Code Bindings generation.
Fixed
- Fixed support for various primitive types in Cloud Code Modules binding generation
- In-script parameters analysis throws an exception in Unity 6
Browse...button in.ccmrinspector now opens the current solution folder properly.- Fixed Cloud Code Binding generation of primitive types
- Binding Generation will attempt to run in the latest available runtime.
- This can be disabled with CLOUD_CODE_AUTHORING_DISABLE_VERSION_DETECT flag
[2.7.1] - 2024-06-10
Added
- A MessageBytesReceived callback has been added to the available subscription event callbacks
- Adding service registration to the core services registry
- Adding service access through the core services registry (
UnityServices.Instance.GetCloudCodeService()) - Added a button to browse your files when choosing a path for a Cloud Code Module
Changed
- The MessageReceived callback will no longer be fired upon receiving bytes via the event subscription
Fixed
- Bindings generation is broken when ILogger dependency injection is used
- Cloud Code modules now cleans up compilation artifacts after deploying or generating bindings
- Cloud Code runtime timeout increased to 30 seconds
- Moved create Cloud Code Asset menu items under "Services"
[2.6.2] - 2024-05-03
Added
- Added privacy manifest
Fixed
- An issue that would cache Npm and Node path at startup instead of reading them from the settings
[2.6.1] - 2024-03-25
Fixed
- Fixed JS script import when Node project is not initialized
[2.6.0] - 2024-03-21
Added
- Improved in-script parameter parsing error feedback
- Added references of the latest javascript services SDKs for autocompletion
- Cloud Code bindings generation
Fixed
- Fixed error when selecting CloudCodeModuleReference assets in the Project window
[2.5.1] - 2023-10-19
Fixed
- Fixed Cloud Code C# modules authoring support for solutions with multiple projects.
[2.5.0] - 2023-09-21
Added
- Editor support for Cloud Code C# Modules deploy.
[2.4.0] - 2023-05-12
Added
- Added subscription methods for player-specific and project-wide push messages from Cloud Code C# Modules.
[2.3.2] - 2023-03-24
Changed
- Increased timeout from 10 seconds to 25 seconds.
- Scripts are no longer cached, which would previously prevent deployments without a local change.
Fixed
- When using JS Bundling, modifying an imported file will enable re-deployment for the main script.
- Selecting multiple .js files using in-script parameters, the inspector will now remain disabled for editing.
- When selecting multiple .js files or deployment definitions, the inspector will now properly refer to their actual types.
- Deployable assets (.js) not appearing on load in the Deployment Window with Unity 2022+.
[2.3.1] - 2023-03-21
Fixed
- Fixed an issue with
nullpaths on cloud code scripts.
[2.3.0] - 2023-03-14
Added
- Added the ability to bundle JS scripts that are deployed from the editor.
- Added CallModuleEndpointAsync to the Cloud Code Service for calling C# Modules
[2.2.4] - 2023-02-07
Fixed
- Fixed corrupted npm libraries used for services.
[2.2.2] - 2022-12-07
Fixed
- Missing logs in some failure cases are now handled
- Added more verbose logging for diagnostics behind a preprocessor directive
[2.2.1] - 2022-12-07
Fixed
- Duplicate file in the deployment window now appear as a warning instead of an error
- Updated the com.unity.services.deployment.api version to be used for config as code
[2.1.2] - 2022-10-27
Fixed
- Rate limiting triggered in some cases
[2.1.1] - 2022-09-27
Fixed
- Void type now allowed as return type for CloudCode scripts
- Removed requirement for function arguments when calling an endpoint. Now, it's possible to provide either null or omit them
Added
- Integration with the
Deploymentpackage for config-as-code which allows to edit and configure CloudCode scripts directly from the editor
[2.0.1] - 2022-06-13
Fixed
- Missing XmlDoc on public ICloudCodeService interface
[2.0.0] - 2022-06-01
- Moving out of Beta!
[2.0.0-pre.4] - 2022-04-16
Breaking Changes:
- The interface provided by CloudCode has been replaced by CloudCodeService.Instance, and should be accessed from there instead. The old API will be removed in an upcoming release
- Cloud Code methods now take a Dictionary<string, object> containing the script parameters instead of an object with named fields (the dictionary can still be null if the script does not have any parameters). The old API will be removed in an upcoming release
- When a rate limit error occurs, a specific CloudCodeRateLimitedException will now be thrown which includes the RetryAfter value (in seconds)
- Clarity and structure of some error messages has been improved
- Some classes that were accidentally made public are now internal
Fixed
- Installation and Analytics IDs not being forwarded to Cloud Code server (causing incorrect tracking downstream)
Added
- Project Settings tab with link to Cloud Code dashboard
- Cloud Code exceptions now include a Reason enum which is machine-readable
[1.0.0-pre.7] - 2021-12-07
Fixed
- NullReferenceException being thrown instead of some service errors
- Documentation URL in package manifest
- Deprecated some elements that should not have been public, these will be deleted in a later release
[1.0.0-pre.6] - 2021-09-22
- Fixes a crash that could occur with certain exceptions returned from the API
Known Issues
- When a cloud code function that hasn't been published yet is called from the SDK, the SDK will throw a Null Reference Exception rather than a normal CloudCodeException
[1.0.0-pre.5] - 2021-09-17
- No longer throws on null function parameter values
- No longer throws on null api return values
- Corrected exception types
- Removed tests from public package
- Fixed code examples in documentation
[1.0.0-pre.4] - 2021-08-19
- Updated readme and changelog to be more descriptive.
- Updated package description to better highlight the usages of Cloud Code.
[1.0.0-pre.1] - 2021-08-10
- Updated documentation in preperation for release.
- Updated dependencies (Core and Authentication) to latest versions.
- Updated internals for more stability.
- Added a new API that returns string, in order to support custom user serialization of return values.
[1.0.0-pre.1] - 2021-08-10
- Updated documentation in preperation for release.
- Updated dependencies (Core and Authentication) to latest versions.
- Updated internals for more stability.
- Added a new API that returns string, in order to support custom user serialization of return values.
[0.0.3-preview] - 2021-06-17
- Updated depedencies of Core and Authentication to latest versions.
[0.0.2-preview] - 2021-05-27
- Update documentation and license
[0.0.1-preview] - 2021-05-10
Package Setup for Cloud Code.
- Creating the package skeleton.