EditorDevPaths
Where the Multiplayer Play Mode dev loop keeps its files: under the project's Library/Nebula, shared by the main Editor and every virtual player, and never read by a build.
Nebula · Packages/com.1by3.nebula/Runtime/Bootstrap/EditorRunMode.cspublic static class EditorDevPathsWhere the Multiplayer Play Mode dev loop keeps its files: under the project's Library/Nebula, shared by the main Editor and every virtual player, and never read by a build.
Methods
ProjectRoot
public static string ProjectRoot(string dataPath);The project's root folder from Application.dataPath (<root>/Assets). A virtual player runs from a copy of the project inside <root>/Library/VP/<player>, so its own data path is walked back out of that folder to the project it belongs to.
VirtualPlayerFolder
public static string VirtualPlayerFolder(string dataPath);The folder name of the virtual player that owns dataPath (Library/VP/<prefix><id>, for example mppm98673e00), or null for the main Editor and for a build.
Folder
public static string Folder(string projectRoot);The dev loop's folder: <root>/Library/Nebula.
DevSaveFile
public static string DevSaveFile(string projectRoot);The save file of NebulaEditorPersistence.DevSaveFile: Library/Nebula/DevSaves/world.bin.
DevAuthKey
public static string DevAuthKey(string projectRoot);The player signing key of the server a virtual player hosts (NebulaGateway.AuthKeyPath): Library/Nebula/dev-auth.key. A virtual player's persistent data folder is not the main Editor's, so without this the identity the main Editor saved would be refused once every session. Builds never read it.
SharedCache
public static string SharedCache(string projectRoot);The local shared cache (NebulaSharedCache) of the dev loop and of the Editor: Library/Nebula/SharedCache. It is not part of DevSaves, so Reset Dev Saves keeps it; delete the folder to start from a cold cache.
DevSaves
public static string DevSaves(string projectRoot);The folder DevSaveFile is in.
PortOffsetFile
public static string PortOffsetFile(string projectRoot);This checkout's own port offset for the dev loop: <root>/UserSettings/NebulaEditorPortOffset.txt, holding one whole number. UserSettings is per checkout and not committed, so two copies of a project (git worktrees, for example) can each press Play at once without changing the shared NebulaConfig.
PortOffset
public static int PortOffset(NebulaConfig config, string projectRoot);The offset both sides of the dev loop add to the configured ports: the number in PortOffsetFile when it holds one, otherwise NebulaConfig.EditorPortOffset. A game that runs its own local services beside the dev loop can use it to move their ports by the same amount.