SDK & Download
Download
Download the latest released preview package of Quantum SDK 3.1
Changelog
Open the changelog section the latest released preview package of Quantum SDK 3.1
Migration Guide
Open the Quantum SDK 3.1 migration guide page
Preview
The Quantum SDK 3.1.0 is provided as development snapshots and is not intended to be used for live or released games. There may be blocker bugs and the API can change or break during the preview phase.
To ensure quick support and iterations new SDK packages will be published as nightly builds.
Make sure to read the What's New in 3.1 article.
Download
| Version | Release Date | Download | |
|---|---|---|---|
| 3.1.0 Preview | 11月 18, 2025 | Quantum SDK 3.1.0 Preview Build 1897 | Release Notes |
Changelog
3.1.0
Preview
Disclaimer: The Quantum SDK 3.1.0 development snapshots are not intended to be used for live games.
Build 1897 (Nov 18, 2025)
Bug Fixes
- Fixed: An issue in
TaskHandle.AddDependencythat would cause it to not raise an exception in Release and corrupt memory when going beyond the max number of parents or children
Build 1896 (Nov 14, 2025)
Improvements
- Improved performance and stack memory usage when sorting 2D and 3D Hit collections
Build 1894 (Nov 13, 2025)
Changes
- Removing a few internal Linq usages to reduce garbage allocations
- Improved the initialization of signal arrays to remove garbage allocations
- Renamed/shortened Quantum profiler marker names
Build 1892 (Nov 11, 2025)
What's New
IntVector2andIntVector3now have an index operator to access xy and z componentsFPVector2andFPVector3now have an index operator to access xy and z components- Upgraded the graph profilers to combine multiple metrics in one graph to better analyse general simulation performance and online play
- Added new stats that measure simulation time spend on calculating predicted and verified frames explicitly (
DeterministicStats.PredictionTimeandVerificationTime)
Changes
- Updated Photon Realtime to a finalized version of
5.1.9 (10. November 2025)
Build 1889 (Nov 08, 2025)
Bug Fixes
- Fixed: ECS allocating too much memory upfront when creating and expanding tables
Build 1888 (Nov 07, 2025)
Bug Fixes
- Fixed: An issue in
EditMeshScope.ReserveTriangleCapacitywhen used in aDynamicMapthat could cause an internal mismatch in the static collider index
Build 1885 (Nov 05, 2025)
What's New
QuantumUnityDBScope: an edit time collection ofAssetObjects, fully decoupled from the globalQuantumUnityDB. Once the scope is loaded at runtime, to apply it useQuantumUnityDB.AddScopeQuantumUnityDBScopeImporter.IncludeSubfolders- if enabled, all assets in the current folder and all the subfolders will be included in the scope (true by default)QuantumUnityDBScopeImporter.AssetBundles- a list of asset bundles to be included in the scopeQuantumUnityDBScopeImporter.ExplicitAssets- a list of assets to be included in the scopeQuantumUnityDB.TryAddScopeQuantumUnityDB.IsScopeLoadedQuantumUnityDB.RemoveAllScopesQuantumUnityDBScopeImporter.IsUnique- if an asset is part of multiple scopes and none of them are unique, the importer won't raise a warning (true by default)
Changes
- Adding a scope to
QuantumUnityDBwill print a warning if an asset can't be added due to GUID/path conflict. Previously: an exception would be thrown QuantumUnityDBreimport is speed up for cases where there aren't any package paths inQuantumEditorSettings.AssetSearchPaths
Bug Fixes
- Fixed:
QuantumUnityDB.RemoveScopenot removing entries correctly - Fixed: Scoped assets displaying
<no provider>underQuantum Unity DBsection when inspected
Build 1880 (Oct 31, 2025)
Bug Fixes
- Fixed: Addressable scenes not being released properly
Build 1879 (Oct 30, 2025)
Bug Fixes
- Fixed: An issue where new
PageBasedHeapsegments would mistakenly think their blocks start from offset 0
Build 1878 (Oct 29, 2025)
Bug Fixes
- Fixed: An issue where clients with certain heap configurations would desync upon late-joining
Build 1873 (Oct 23, 2025)
What's New
- Support to scheduling multiple Physics Updates in the same frame simulation
Build 1872 (Oct 21, 2025)
Changes
- The default heap management mode for migrating projects is now the new
PageBasedmode instead of
Bug Fixes
- Fixed: An issue where
FrameBase.ComponentCountthrows anAssertExceptionfor table components that have never been added to an entity
Build 1871 (Oct 18, 2025)
Bug Fixes
- Fixed: A regression where ECS internals would GC allocate when iterating elements of
ComponentSet - Fixed: An issue that caused pause mode stepping in Unity Editor to not simulate one tick at a time
Build 1870 (Oct 17, 2025)
What's New
- Added a NavMesh import option to load auto-generated navmesh links directly from the Unity navmesh, only works in Unity Editor
- Added
QuantumRunnerExtensionsmethods to simplify starting Quantum in different modes by providing specific Init()-methods to createSessionRunner.Arguments, see the usage inside theQuantumRunnerLocalDebug.csscript for example - Quantum instant replays now also work when being activated during a replay
Changes
- Renamed
QuantumGame.CreateSavegame()toGetSnapshotFile(), retired theQuantumRunnerLocalSavegame.csscript and merged its functionality withQuantumRunnerLocalDebug.cs - Corrected a typo in
QuantumRunnerUnityFactory.CreatePlatformInfoand changed the static method to a property - Removed the
StartWithFrame()method from theQuantumRunnerLocalDebugclass
Bug Fixes
- Fixed: A bug where multiple tasks dispatched from the same
SystemThreadedFiltercan visit the same entities. (The slice length was not being respected.) - Fixed: An issue that caused the navmesh agent to chose any navmesh link instead of the closest one when having multiple links available that connects two triangles
- Fixed: An issue that caused the
QuantumRunnerLocalDebugscript to not apply theSimulationSpeedMultiplierwhen usingEngineDeltaTime
Build 1869 (Oct 16, 2025)
What's New
Quantum.Compression- an abstract base class for compression algorithms. Comes with two implementations:CompressionDotNet(default) andCompressionSharpLibZib(enabled whencom.unity.sharp-zip-libpackage is present). Using the latter might help with "Runtime Speed with LTO" Web builds issues. Both implementations produce the same results and rely onGZipformat
Changes
ByteUtilscompression methods made obsolete, useQuantum.CompressioninsteadCollisionChecksin Physics2D and Physics3D namespaces are now static classes
Bug Fixes
- Fixed: System task profiler entries not being recorded in non-development builds
Build 1865 (Oct 15, 2025)
Bug Fixes
- Fixed: A regression where filters didn't skip entities pending destruction
- Fixed: An issue that caused the heap settings in SimulationConfig of existing projects to not be migrated correctly
Build 1863 (Oct 14, 2025)
Breaking Changes
- The
DeterministicSessionConfiginspector now computes theHard Tolerancebased on theSimulation Rate, inputOffset Ping Startand inputOffset Min, to override this behaviour toggleOverride Hard Tolerance
What's New
- Added
Predictionstatistic to the GraphProfilers and QuantumStats window that shows how many ticks the simulation goes into prediction
Changes
- Some stats on the QuantumStats window are now smoothed and show an average (1 second) to make them more readable
Build 1862 (Oct 11, 2025)
Bug Fixes
- Fixed: An issue that could cause an ArgumentException similar to
X cannot be greater than Yafter late-joining
Build 1861 (Oct 10, 2025)
Bug Fixes
- Fixed: An issue in the component block iterator that could cause the exception
_blockCount > 0
Build 1859 (Oct 09, 2025)
Bug Fixes
- Fixed: An issue in
QuantumStartUIthat caused multiple builds on the same machine that all used the same user name to not join the same room - Fixed: An issue that caused the
QuantumStartUIto show the popup window when stopping the Editor during connecting
Build 1854 (Oct 08, 2025)
Breaking Changes
- The library
Quantum.Deterministic.dllwas merged withQuantun.Engine.dlland remnants of the old dll have to be deleted from projects that migrate to SDK 3.1 - The
DeterministicSessionConfiginspector now computes theHard Tolerancebased on the simulation rate and input offset ping start, to override this behaviour toggleOverride Hard Tolerance SessionRunner.Argumentsnow requires setting an explicitTaskRunnerto be set. This can be done by either specifyingTaskRunner = QuantumTaskRunnerJobs.GetInstance()or by implicitly setting the TaskRunner by usingGameParameters = QuantumRunnerUnityFactory.CreateGameParametersfor Unity. UseTaskRunner = new DotNetTaskRunner()outside of Unity- The demo input
.unitypackagenow requires the installation of the Unity modulecom.unity.inputsystem Quantum.Profiling.HostProfilerwas renamed toQuantum.HostProfiler
What's New
- Added
tablecomponents, which are an alternative to the sparse set ECS components that scale better, see the documentation for more details - Added a new physics solver
ProjectedGaussSeidelthat greatly improves the stability when stacking rigid bodies, to use the legacy solver select it in the SimulationConfig - Added
SimulatorContextto exposes simulation callbacks, which allow for modifications to future simulation and prediction advancements, see the documentation for more details - Optimized the memory required to store the sparse set ECS components which increases the performance of frame copies
- Added new counters to the
GraphProfilerto track bandwidth for incoming and outgoing traffic - Added Unity profiler counters such as
Q Frames Verified,Q Frames Predicted, andQ Simulation Time, that can be added to the Unity profiler windows as a custom profiler module - Added new non-biased random number generation methods to
RNGSession:Next(long, long),NextInclusive(long, long),Next(uint),Next(ulong),NextUInt32(),Int64() - Added
QuantumIgnorelabel support - apply to an asset to be ignored byQuantumUnityDB, useful on prefabs that are used as map prototypes exclusively for example - Added
SimulationUpdateTime.EngineUnscaledCappedDeltaTimewhich uses a capped version of unscaled delta time, this improves support for breakpoints and Unity Editor pausing in local mode - Added an
FPconverter utility window that convertsdoubletoFPand raw values - Added a new configurable value called
Heuristic Weightto theNavMeshAgentConfigwhich can improve the performance of the A* algorithm algorithm, try setting it to1.5 - Added support for Unity's
InputSystemactions which is now used by the demo Quantum input scripts
Changes
- The default simulation rate was increased from
60 Hzto64 Hz(using powers of two), ensuring thatDeltaTimehas no rounding error and providing greater precision in physics calculations - The multi client scripts have been moved out of the SDK package into a
.unitypackage(Assets/Photon/Quantum/PackageResources/Quantum-MultiClient) - Exporting replays and snapshots via the menu now saves the last save location as a relative path
- Changed the NavMesh API by renaming
Map.NavMeshLinkstoMap.NavMeshAssetsand by removing the propertyNavMeshAgentConfig.AutomaticTargetCorrectioninsteadAutomaticTargetCorrectionRadius> 0 is checked to test if target correction is enabled