================================================================================ QUETZACORE SO WORKBENCH ================================================================================ ================================================================================ TABLE OF CONTENTS ================================================================================ 1. Overview 2. Understanding the Terminology 3. Features 3.1 Streamlined ScriptableObject Management 3.2 Intuitive Organization & Navigation 3.3 Enhanced Workflow & Project Persistence 4. Installation - For New Users - For Users Upgrading from 1.5.1 5. Quick Start 6. Search Functionality 7. File Structure 8. Usage Guide 8.1 Creating Groups 8.2 Pinning ScriptableObject Assets 8.3 Managing Assets 8.4 Undo/Redo in Workbench Inspector 8.5 Worktable Management 8.6 SO Workbench Persistence 9. Technical Details 10. Support Resources 11. License ================================================================================ 1. OVERVIEW ================================================================================ QuetzaCore SO Workbench is a powerful Unity editor tool that provides a centralized environment for managing and organizing your ScriptableObject assets. It allows developers to "pin" references to ScriptableObject-derived assets in a customizable Worktable panel, eliminating the need for constant navigation between different project folders when working with data assets. ================================================================================ 2. UNDERSTANDING THE TERMINOLOGY ================================================================================ QUETZACORE SO WORKBENCH: The name of the overall Unity editor tool itself - your dedicated environment for ScriptableObject management. WORKTABLE: The customizable panel within the Workbench where you actively "pin" and edit a curated set of ScriptableObjects for a specific task. You can save and load different "Worktables" for different workflows or projects. ================================================================================ 3. FEATURES ================================================================================ 3.1 STREAMLINED SCRIPTABLEOBJECT MANAGEMENT - ScriptableObject Focus: Specifically designed for managing ScriptableObject- derived assets - Smart Filtering: Automatically filters and accepts only ScriptableObject assets - Reference-Based: Pinned items are shortcuts to the original assets - your project's folder structure remains unchanged - Live Editing: Selecting a pinned asset shows it in the built-in Inspector for direct editing - Undo/Redo in Workbench Inspector: Properly handles undo/redo for ScriptableObject property changes (which Unity doesn't do automatically), using standard shortcuts (Ctrl+Z, Ctrl+Y, Ctrl+Shift+Z) - Asset Persistence: Ensures changes are saved to disk automatically 3.2 INTUITIVE ORGANIZATION & NAVIGATION - Unified Asset Panel: A single, dockable editor window to hold references to ScriptableObject assets - Asset Grouping: Create collapsible groups within the QuetzaCore SO Worktable to organize assets by feature or task - Drag-and-Drop Pinning: Easily add ScriptableObject assets to the Worktable by dragging them from the Project window - Drag-and-Drop between Groups: Easily move assets between groups to help organize your Worktable - Context Menu Integration: Right-click on ScriptableObject assets anywhere in Unity and select "Pin to QuetzaCore SO Worktable" - Group Reordering: Drag the group header drag pad to reorder groups within the Worktable - Group Name Editing: Click directly on group names to edit them with normal text field behavior - Expand/Collapse: Use the checkbox next to group names to show/hide group contents 3.3 ENHANCED WORKFLOW & PROJECT PERSISTENCE - Isolated Undo/Redo: QuetzaCore SO Workbench inspector has its own undo/redo scope, separate from project-wide operations - Worktable System: Save and load complete worktable configurations for different projects or tasks - Worktable Persistence: All worktables are saved as ScriptableObject assets for version control compatibility - SO Workbench Persistence: Layout and contents are saved and reloaded between Unity sessions - SO Workbench Data Persistence: All SO Workbench data is saved automatically ================================================================================ 4. INSTALLATION ================================================================================ FOR NEW USERS ============= Via Unity Package Manager (Recommended): 1. Open your project's Package Manager window: Window → Package Manager 2. Click on My Assets 3. Select SO Workbench and click Download then Install 4. Or via Unity Asset Store Website: - Go to Asset Store website → Log in to your account - Click your profile icon then My Assets - Find QuetzaCore SO Workbench - Click Download or Import 5. The tool will automatically create necessary folders and settings files 6. Access the SO Workbench via Tools → QuetzaCore SO Workbench in the Unity menu bar FOR USERS UPGRADING FROM 1.5.1 ============================== IMPORTANT: If you're upgrading from version 1.5.1 to 1.6.0 or later Key Points for Upgrading: - Your data is safe - version 1.6.0+ will automatically recognize all saved worktables from 1.5.1 - You must delete the old Editor folder before importing the new version - Settings and SavedWorktables folders are preserved automatically - The tool will operate with two folder locations until you optionally clean up (see migration guide for details) ================================================================================ 5. QUICK START ================================================================================ 1. Open the QuetzaCore SO Workbench window: Tools → QuetzaCore SO Workbench 2. Optionally, create a new group by clicking the [+] Add Group button 3. Add assets using Search: Click the Open Search button or press CTRL+F to open the search window 4. Add assets using Drag & Drop: Drag ScriptableObject assets from your Project window directly into the specific group you want 5. Click on pinned assets to view and edit them in the built-in Inspector panel 6. Organize your ScriptableObject assets into logical groups for better workflow management 7. Save your worktable configuration using Save Worktable for future sessions ================================================================================ 6. SEARCH FUNCTIONALITY ================================================================================ - Open Search Window: Click the "Open Search" button in the toolbar or press CTRL+F - Search Assets: Type at least 2 characters to search for ScriptableObject assets project-wide - Add to SO Worktable: Click "Add to SO Worktable" button or press Enter to add selected asset SMART GROUP ASSIGNMENT: - No groups: Creates "Default Group" automatically - One group: Adds directly to existing group - Multiple groups: Shows group selection popup FOLDER FILTERS: Restrict search to one or more project folders; supports multiple selections - Add folders: Click Select Folder... to add; selections are limited to the project Assets/ folder - Include Subfolders: Toggle to include all descendants of each selected folder - Clear Filters: Resets selected folders and subfolder toggle ================================================================================ 7. FILE STRUCTURE ================================================================================ Assets/QuetzaCore/SO Workbench/ ├── Editor/ │ ├── Data/ │ │ ├── WorkbenchData.cs # ScriptableObject for workspace │ │ │ data │ │ └── WorktableData.cs # ScriptableObject for saved │ │ worktables │ ├── UI/ │ │ ├── QuetzaCoreSOWorkbench.uxml # Main window layout │ │ ├── QuetzaCoreSOWorkbench.uss # Styling definitions │ │ ├── WorkspaceAssetItem.uxml # Asset item template │ │ └── WorkspaceGroupItem.uxml # Group item template │ ├── Dialogs/ │ │ ├── LoadWorktableDialog.cs # Load worktable dialog │ │ └── SaveWorktableDialog.cs # Save worktable dialog │ ├── QuetzaCoreSOWorkbench.cs # Main editor window implementation │ └── WorktableManager.cs # Worktable management utilities ├── Settings/ # Runtime-created settings folder ├── SavedWorktables/ # Runtime-created worktable storage ├── Documentation/ │ ├── README.md # This file (markdown version) │ ├── README.txt # This file (plain text version) │ └── MIGRATION_1.5.1_to_1.6.0.md # Upgrade guide for existing users └── package.json # UPM package manifest ================================================================================ 8. USAGE GUIDE ================================================================================ 8.1 CREATING GROUPS =================== - Click [+] Add Group to create a new asset group - Groups are collapsible and help organize related assets - Each group maintains its own list of pinned objects - Group Name Editing: Click directly on group names to edit them with normal text field behavior - Expand/Collapse: Use the checkbox next to group names to show/hide group contents - Best Practice: Create groups by feature, task, or category (e.g., "Character Stats", "Items", "Abilities") 8.2 PINNING SCRIPTABLEOBJECT ASSETS ==================================== METHOD 1: DRAG & DROP - Drag ScriptableObject assets from Project window directly into a specific group METHOD 2: CONTEXT MENU - Right-click ScriptableObject assets in the Project or Inspector window and select "Pin to QuetzaCore SO Worktable" - Smart Group Selection: Automatically handles different scenarios: * No Groups: Creates a "Default Group" and pins assets directly * One Group: Pins assets directly to the existing group * Multiple Groups: Shows a popup window with all available groups - Group Selection Window: Displays all groups with a prominent "Create New Group" option - User-Friendly Interface: Clean, scrollable list with clear group names and cancel option IMPORTANT FILTERING: - Only ScriptableObject-derived assets can be pinned. Other asset types (prefabs, textures, scripts, etc.) will be automatically filtered out - Precise Targeting: Each group has its own exclusive drop zone that matches its visual boundaries exactly - Multi-Group Support: Successfully target any group (Group1, Group2, Group3, etc.) even when multiple groups are expanded - Dynamic Drop Zones: Drop zones automatically adjust based on group content and expand/collapse state ORGANIZING BETWEEN GROUPS: - Drag-and-Drop between Groups: Keep your worktable organized with an intuitive drag-and-drop between groups feature - Drag an asset to a different group to move it - A green outline indicates a valid drop target 8.3 MANAGING ASSETS =================== - Select Assets: Click on any pinned asset to view it in the built-in Inspector panel - Remove Assets: Use the [X] button next to assets to unpin them - Clear Worktable: Use Clear Worktable to remove all groups and assets from the worktable (with confirmation dialog) - Reorder Assets: Click and drag an asset item up or down within a group to change its position - Move Between Groups: Drag an asset over another group; a green outline indicates a valid drop target - Visual Feedback: The dragged asset shows a subtle indicator during drag operations 8.4 UNDO/REDO IN WORKBENCH INSPECTOR ===================================== - ScriptableObject Support: Properly handles undo/redo for ScriptableObject property changes (which Unity doesn't do automatically) - Standard Shortcuts: Use the following keyboard shortcuts as normal: * Ctrl+Z - Undo * Ctrl+Y or Ctrl+Shift+Z - Redo - Isolated Scope: Undo/Redo is scoped to the Workbench Inspector, separate from project-wide undo history 8.5 WORKTABLE MANAGEMENT ======================== - Save Worktable: Save current worktable configuration with a custom name and description via Save Worktable button - Load Worktable: Load previously saved worktable configurations via Load Worktable button - Worktable Persistence: All worktables are saved as ScriptableObject assets for version control compatibility - Automatic Layout Persistence: The QuetzaCore SO Workbench layout persists between Unity sessions - Multiple Configurations: Save different worktables for different features or tasks in your project 8.6 SO WORKBENCH PERSISTENCE ============================= - Automatic Saving: All SO Workbench data is automatically saved to Assets/QuetzaCore/SO Workbench/Settings/WorkbenchData.asset - Session Persistence: Your SO Workbench layout persists between Unity sessions - Version Control: The SO Workbench data integrates with Unity's version control systems (Git, Perforce, etc.) ================================================================================ 9. TECHNICAL DETAILS ================================================================================ - Unity Version: Compatible with Unity 2022.3.52f1 and later (tested with Unity 6) - Dependencies: Only uses Unity's built-in UnityEngine and UnityEditor APIs - Performance: Lightweight implementation with minimal memory footprint - Data Storage: Uses ScriptableObject for reliable serialization and version control compatibility - Package Type: Embedded UPM Package - Package Size: < 1MB - No External Dependencies: Works out-of-the-box with no additional plugins required ================================================================================ 10. SUPPORT RESOURCES ================================================================================ - Email: support@vighorusgames.com - Reddit: https://www.reddit.com/r/QuetzaCore/ - 1.5.1 to 1.6.0 Migration Information: See MIGRATION_1.5.1_to_1.6.0.md This tool is designed to be self-contained and requires no external dependencies. ================================================================================ 11. LICENSE ================================================================================ This tool is provided as-is for use in Unity projects. Please refer to your Asset Store license for usage terms and conditions. ================================================================================ VERSION INFORMATION ================================================================================ Version: 1.6.0 Package Name: com.vighorusgames.scriptableobjectworkbench Package Type: UPM Package Size: < 1MB Compatibility: Unity 2022.3.52f1 and later (confirmed working with Unity 6) Dependencies: None (Unity built-in only) Last Updated: 2026-04-06 ================================================================================