File Browser - #108
Merged
Armored-Dragon merged 19 commits intoJun 26, 2026
Merged
Conversation
Armored-Dragon
marked this pull request as ready for review
June 25, 2026 10:12
This removes the trailing `.tscn` at the end of files in the browser view.
Adds a confirmation window when deleting something.
The fallback code forced Node3D
Armored-Dragon
added a commit
that referenced
this pull request
Jun 26, 2026
* Basic foundation. Commit before I go to bed. Adds basic saving functionality and almost functional loading functionality. Loading does not preserve scene heierarchy. * Loading spawnables. This refactors the loading code to persist the node hierarchy. * File Browser (#108) This adds a basic file browser to the "Spawnables" menu. This allows navigating the inventory screen and create or remove folders. * Added file traversal through the local spawnables inventory. * Fixed icon size in CEM. * Moved local file management to dedicated file lib. * Rename nodes in CEM. * Load saved spawnables from files. * Test externalizing assets before saving to inventory. * Use file name for imported model. * Support Skeleton3D node. * Creating and deleting folders. * Delete items. * UI fixes. * Font adjustments. * Update view when creating or deleting a file or folder. * Easily see which files or folders are selected. * Hide file extension in the file browser. This removes the trailing `.tscn` at the end of files in the browser view. * Use pretty name when spawning node. * Delete confirmation. Adds a confirmation window when deleting something. * Fixed inspector icons. The fallback code forced Node3D * Removed leftover print.
Armored-Dragon
added a commit
that referenced
this pull request
Jul 2, 2026
* Basic "GodMode" GodMode will likely be renamed to "ClientEditorMode (CEM)" * Generic node spawning. Use a nodes "pretty_name" when available. * Node selection popup. Adds the ability to add from a list of valid nodes. * Added Gizmo3D addon library. This addon will allow the transformation of nodes in-app. There is also now a crosshair to help line everything up. * Select nodes * Minor networking fix. * Use spawnablemanager delete node when deleting a node. Also changes the baseplate to use a MeshInstance3D that has been subdivided. * Created schema builder to manage spawnables. This cleans up a lot of the code in some of the files, and centralizes a lot of the building. * Minor networking fixes. Clients can load in without crashing again. * Better Gizmo handling Gizmos are now handled through the spawn manager. Session wide node_added and node_created signals. * Spawnable.create abstraction. This makes the code a touch cleaner as now either the host or a client can spawn nodes using a single function call. * Test syncing of node position and rotation. Testing implimentation of node transform syncing across clients. * Fix colliders from interacting with eachother on other servers. Quick fix for colliders being active across sessions. * Added scale to networked transforms. Added crosshair. Fixed node reference for network transformation. * Removed unused function. * Removed debug prints. * Renamed developer functions. These were originally test functions. These tests were successful so they were promoted. * Improved inspector handling. Fail guards for interacting with invalid nodes. Interacting with an invalid node forces a refresh of the inspector. * Updated inspector icons. Added fallback to try to get the correct type of icon for the node by its class. * Subviewport view. This changes the primary game window to use a subviewport. * Client Editor Mode. This adds a start to the Client Editor Mode (CEM) for desktop. * Destroy node network abstraction. This abstracts the destroy node similar to the spawn node. * Move event emitters. Moves the event emitters to the spawnable manager instead of the cem inspector. * Gizmo management for the Client Editor Mode. (#104) * Gizmo work. * Hide gizmos when out of CEM. When you are not in CEM, you can not see gizmos anymore. * Fixed scale gizmo not reapearing after hiding. * Light refactoring * Gizmos parented under root. Before they were parented under the first selected node, but this caused selection box issues so the gizmo was moved. * Single active gizmos. This changes the gizmos so that you can only have one active gizmo selection at a time. I think this will prevent confusion. * Don't allow selecting root. Also adds a fail-check to see if a node is valid before selecting. * Better parent/child gizmo support. When selecting a parent node, the gizmo selection system will target the parent node instead of the child(ren). If you select the children again, a new gizmo will be created. * Fix multi-selection parent-child relationship for gizmos. I have no idea why this worked, but sure. * Spawnable saving and loading (#106) * Basic foundation. Commit before I go to bed. Adds basic saving functionality and almost functional loading functionality. Loading does not preserve scene heierarchy. * Loading spawnables. This refactors the loading code to persist the node hierarchy. * File Browser (#108) This adds a basic file browser to the "Spawnables" menu. This allows navigating the inventory screen and create or remove folders. * Added file traversal through the local spawnables inventory. * Fixed icon size in CEM. * Moved local file management to dedicated file lib. * Rename nodes in CEM. * Load saved spawnables from files. * Test externalizing assets before saving to inventory. * Use file name for imported model. * Support Skeleton3D node. * Creating and deleting folders. * Delete items. * UI fixes. * Font adjustments. * Update view when creating or deleting a file or folder. * Easily see which files or folders are selected. * Hide file extension in the file browser. This removes the trailing `.tscn` at the end of files in the browser view. * Use pretty name when spawning node. * Delete confirmation. Adds a confirmation window when deleting something. * Fixed inspector icons. The fallback code forced Node3D * Removed leftover print. * Client Editor Mode Refactor (#115) * Removed subviewport. This added extra complexity for not much benefit. * New blur shader for canvas element. * Removed gizmo selection groups. This might be a good idea, but the implementation was bad and is too much to deal with at this point in development. * Dashboard uses new blur effect. Minor changes to buttons to allow direct icon usage. * Fixed focus issue with the node search in the inspector. * Adjustable inspector width. * Remove focus from search area when clicking out of search area. * Change mouse escape keybind to tab. * Capture or uncapture mouse when swapping edit mode. * CEM Toolbar. Change the gizmo type to toggle translation, rotation, and scale. Added placeholder counters. * Toggle translation space between local and global. * List spawnable count in the toolbar. * Refactor Inspector.gd work. Added custom popup menu. * Basic Gizmo interaction. * Select node by selecting it in the inspector tree. * Gizmos respect settings again. * When renaming a node, start editing immedately. * Custom Add Node window. * Spawnable count updating. * Fixed var name. * Removed and replace original inspector.gd. This completes the major refactor. * Toggle gizmo visibility when toggling CEM. * Updated icon getter. Icons are now packed into the metadata of the nodes when they are created, which is prioritized. * Hide nodes not intended to be spawned directly. * Node reparenting. * Deletion queue: Fix crashes with Gizmo and deleted nodes. * Better metadata handling. This will stop some console spam of useless errors. * Windows can not be dragged out of bounds. * Only deselect if we have a gizmo. * Added missing LICENSE file to rpc-await addon. Moved LICENSE for Godot icons to the Godot folder.
Armored-Dragon
added a commit
that referenced
this pull request
Jul 2, 2026
* Added POC physics and physics networking This is largely how physics and spawnables will be handled. There is still a lot of syncing issues relating to building a scene after a user has joined. * Client join syncing. Client syncing testing. This will have the host send the server _database variable and the _id to the joining client so the host and the client are on the same page. * Sync all positions to all users when a user joins. * Debug entity spawn menu initial work This menu is non-functional beyond being opened and closed. * Debug spawn menu allow capsule spawning This is made to test the client handling of spawning different types of spawnables. Currently this works as expected. * Test model loading Reference for spawning in models. * I could have sworn I fixed this dashboard name issue before? * Dynamic model drag and dropping This makes it so that any model can be dragged and dropped onto the window to load the model into the scene. This breaks multiplayer syncing, though proper asset handling will need to be created anyways for the internet. * Asset handling (#97) * GLB model handling. Tear apart a GLB model into base components and reassemble them using a GLTF file. * Added placeholder assethandling lib * Fixed several UI errors. The Assets page now functions! * Changed "Assets" dashboard page to "Spawnables" Assets are defined as parts of a spawnable. This change is to avoid internal confusion. * Client Editor Mode (#103) * Basic "GodMode" GodMode will likely be renamed to "ClientEditorMode (CEM)" * Generic node spawning. Use a nodes "pretty_name" when available. * Node selection popup. Adds the ability to add from a list of valid nodes. * Added Gizmo3D addon library. This addon will allow the transformation of nodes in-app. There is also now a crosshair to help line everything up. * Select nodes * Minor networking fix. * Use spawnablemanager delete node when deleting a node. Also changes the baseplate to use a MeshInstance3D that has been subdivided. * Created schema builder to manage spawnables. This cleans up a lot of the code in some of the files, and centralizes a lot of the building. * Minor networking fixes. Clients can load in without crashing again. * Better Gizmo handling Gizmos are now handled through the spawn manager. Session wide node_added and node_created signals. * Spawnable.create abstraction. This makes the code a touch cleaner as now either the host or a client can spawn nodes using a single function call. * Test syncing of node position and rotation. Testing implimentation of node transform syncing across clients. * Fix colliders from interacting with eachother on other servers. Quick fix for colliders being active across sessions. * Added scale to networked transforms. Added crosshair. Fixed node reference for network transformation. * Removed unused function. * Removed debug prints. * Renamed developer functions. These were originally test functions. These tests were successful so they were promoted. * Improved inspector handling. Fail guards for interacting with invalid nodes. Interacting with an invalid node forces a refresh of the inspector. * Updated inspector icons. Added fallback to try to get the correct type of icon for the node by its class. * Subviewport view. This changes the primary game window to use a subviewport. * Client Editor Mode. This adds a start to the Client Editor Mode (CEM) for desktop. * Destroy node network abstraction. This abstracts the destroy node similar to the spawn node. * Move event emitters. Moves the event emitters to the spawnable manager instead of the cem inspector. * Gizmo management for the Client Editor Mode. (#104) * Gizmo work. * Hide gizmos when out of CEM. When you are not in CEM, you can not see gizmos anymore. * Fixed scale gizmo not reapearing after hiding. * Light refactoring * Gizmos parented under root. Before they were parented under the first selected node, but this caused selection box issues so the gizmo was moved. * Single active gizmos. This changes the gizmos so that you can only have one active gizmo selection at a time. I think this will prevent confusion. * Don't allow selecting root. Also adds a fail-check to see if a node is valid before selecting. * Better parent/child gizmo support. When selecting a parent node, the gizmo selection system will target the parent node instead of the child(ren). If you select the children again, a new gizmo will be created. * Fix multi-selection parent-child relationship for gizmos. I have no idea why this worked, but sure. * Spawnable saving and loading (#106) * Basic foundation. Commit before I go to bed. Adds basic saving functionality and almost functional loading functionality. Loading does not preserve scene heierarchy. * Loading spawnables. This refactors the loading code to persist the node hierarchy. * File Browser (#108) This adds a basic file browser to the "Spawnables" menu. This allows navigating the inventory screen and create or remove folders. * Added file traversal through the local spawnables inventory. * Fixed icon size in CEM. * Moved local file management to dedicated file lib. * Rename nodes in CEM. * Load saved spawnables from files. * Test externalizing assets before saving to inventory. * Use file name for imported model. * Support Skeleton3D node. * Creating and deleting folders. * Delete items. * UI fixes. * Font adjustments. * Update view when creating or deleting a file or folder. * Easily see which files or folders are selected. * Hide file extension in the file browser. This removes the trailing `.tscn` at the end of files in the browser view. * Use pretty name when spawning node. * Delete confirmation. Adds a confirmation window when deleting something. * Fixed inspector icons. The fallback code forced Node3D * Removed leftover print. * Client Editor Mode Refactor (#115) * Removed subviewport. This added extra complexity for not much benefit. * New blur shader for canvas element. * Removed gizmo selection groups. This might be a good idea, but the implementation was bad and is too much to deal with at this point in development. * Dashboard uses new blur effect. Minor changes to buttons to allow direct icon usage. * Fixed focus issue with the node search in the inspector. * Adjustable inspector width. * Remove focus from search area when clicking out of search area. * Change mouse escape keybind to tab. * Capture or uncapture mouse when swapping edit mode. * CEM Toolbar. Change the gizmo type to toggle translation, rotation, and scale. Added placeholder counters. * Toggle translation space between local and global. * List spawnable count in the toolbar. * Refactor Inspector.gd work. Added custom popup menu. * Basic Gizmo interaction. * Select node by selecting it in the inspector tree. * Gizmos respect settings again. * When renaming a node, start editing immedately. * Custom Add Node window. * Spawnable count updating. * Fixed var name. * Removed and replace original inspector.gd. This completes the major refactor. * Toggle gizmo visibility when toggling CEM. * Updated icon getter. Icons are now packed into the metadata of the nodes when they are created, which is prioritized. * Hide nodes not intended to be spawned directly. * Node reparenting. * Deletion queue: Fix crashes with Gizmo and deleted nodes. * Better metadata handling. This will stop some console spam of useless errors. * Windows can not be dragged out of bounds. * Only deselect if we have a gizmo. * Added missing LICENSE file to rpc-await addon. Moved LICENSE for Godot icons to the Godot folder.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a basic file browser into the dashboard to view your spawnable storage.