Test multiplayer without building. Twinstance runs several Unity editors on one project at the same time, with breakpoints, the inspector and hot reload on every side.Testing a networked game normally means building a player, launching it beside the editor, and rebuilding the whole thing every time you change a line. You lose minutes on every round, and you lose your debugger the moment the client leaves the editor.Twinstance gives you a second editor instead.A twin is a sibling folder next to your project. It shares your Assets and ProjectSettings through directory links, keeps its own Library and Packages, and opens in seconds. Two editors, one project on disk. Press Play in both and your session runs — with breakpoints, the inspector and hot reload working on every side of it.HOW IT WORKSAssets and ProjectSettings are linked, not copied: both editors work on the same files, so an edit made in the original is already there in the twin, and input, physics, layers and tags can never disagree.Library and Packages are copied, because two editors cannot share one asset database. The copy tolerates files the editor holds open, so a twin inherits your asset database instead of reimporting the project from nothing — and whatever it still cannot read is counted and listed in the console rather than dropped in silence. Packages are re-checked at every twin start, so a twin never compiles different code from the project it mirrors.Nothing is duplicated that does not have to be. Your assets exist once on disk.TELLING THE EDITORS APARTGive each twin an argument in the Twins window, then read it when you press Play:#if UNITY_EDITORif (TwinManager.IsTwin && TwinManager.Argument == "client") StartClient();else StartHost();#endifHost, client, spectator, a player index, a level to load — whatever your session needs to tell its editors apart.BUILT TO BE SAFE WITH YOUR PROJECTDeleting a twin takes its links down one at a time and never recursively, and refuses any folder that does not carry the twin marker. A recursive delete that walked into the Assets link would take your project with it, so it simply never happens.Saves made inside a twin are refused by default, because Assets is shared and the two editors would otherwise overwrite each other in whichever order they happen to flush. And because ProjectSettings is shared too — ProjectVersion.txt included — Twinstance warns you before a twin is opened with a different Unity version, which would upgrade the original project as well.TWINSTANCE AND PARRELSYNCTwinstance takes the approach ParrelSync made popular — linked folders, copied caches — and goes further wherever it costs you time or puts your project at risk:• Your asset database comes along. Files the editor holds open are read and copied, where a plain copy skips them and leaves the twin to reimport the project.• Copies are lighter. The caches a twin rebuilds by itself are left behind, and the list is yours to edit.• Nothing fails in silence. Whatever cannot be copied is counted and listed.• An editor version guard keeps the original project from an accidental upgrade.• Deletion refuses any folder that does not carry the twin marker.• Every editor, original or twin, sees every twin and what it is doing.• Settings live in one file in ProjectSettings, committed with your project and shared with its twins.WORKS WITH ANYTHINGTwinstance knows nothing about your networking layer. Netcode for GameObjects, Netcode for Entities, Mirror, FishNet, Photon, or your own sockets — it opens editors, the rest is yours.The package is editor-only: it adds nothing to your player builds and carries no runtime dependency. Full C# source is included.REQUIREMENTSUnity 6000.0 or newer. Windows, macOS and Linux.On Windows the links are NTFS junctions: no elevation, no developer mode, no admin prompt.This asset uses ParrelSync under the MIT License; see Third-Party Notices.txt file in package for details.Features:• One window, Twinstance > Twins. Create, open, label and remove twins from either side of the mirror; only the buttons are gated by which editor is asking.• Assets and ProjectSettings shared through directory links — NTFS junctions on Windows, symbolic links elsewhere. No elevation, no developer mode, no admin prompt.• Library copied per twin, tolerating files the editor holds open, so a twin inherits the asset database instead of reimporting from nothing.• Configurable skip list for the Library caches a twin rebuilds by itself.• Packages compared against the original at every twin start and refreshed when they differ.• Per-twin argument, read at play time through TwinManager.Argument.• Public API: TwinManager.IsTwin, TwinManager.Argument, TwinManager.OriginalProjectPath.• Save guard: asset saves inside a twin are refused, so the original stays the only place edits happen.• Editor version guard: warns before a twin is opened with a Unity version other than the one that built it.• Guarded deletion: links taken down one at a time, never recursively, and no folder without the twin marker is ever touched.• All settings in ProjectSettings/Twinstance.json — one file, safe to commit.• Editor-only assembly. Nothing ships in your player builds.• Full C# source included.• Sample included: Reading the twin argument.Supported Unity versions: 6000.0 and newerSupported OS: Windows, macOS, LinuxDocumentation: included in the package (README.md)AI was used throughout the creation of this package, as an assistant working under mydirection. Specifically:Documentation and store copy — The README, the changelog and the text of this listingwere drafted with AI assistance and reviewed by me.Artwork — The logo, the in-editor banner and the key images on this page were producedwith AI assistance as hand-authored vector shapes (SVG) and HTML/CSS layouts, rendereddeterministically to PNG. No generative image, audio or 3D model was used at any point,and no AI-generated imagery is included in the package or in the store media.No AI-generated content is executed or embedded at runtime. The package is editor-onlyand ships no runtime assembly or asset.




