A visual editor for managing automation loadouts in the Increlution incremental game. Configure automation priorities for Jobs, Construction, and Exploration actions across all chapters, then export directly to your game.
- Visual Automation Wheel: Click to increase, right-click to decrease automation levels (Off/Low/Regular/High/Top)
- Lock Actions: Ctrl+click to exclude actions from export (uses game defaults)
- Bulk Lock/Unlock: Ctrl+click chapter tabs to lock/unlock all actions at once
- Chapter Tabs: Quickly navigate between chapters
- Folder Organization: Organize loadouts in folders with drag-and-drop
- Duplicate: Clone loadouts or entire folder structures with one click
- Undo/Redo: Ctrl+Z to undo, Ctrl+Y or Ctrl+Shift+Z to redo loadout changes
- Import/Export:
- Copy/paste loadouts directly (Ctrl+V to import)
- Upload/download JSON files
- Sharing: Share loadouts or entire folders via links with optional expiration and attribution
- Chapter Progress: Unlock chapters by proving you've reached them (prevents spoilers)
- Favourites: Save and quickly access favourite loadout configurations
- Default Priorities: Configure default skill priorities for new loadouts
- Dark Mode: Light, dark, or system theme preference
- Multi-user Support: Each user has their own isolated loadouts
- .NET 10 SDK
- Node.js 20+
- EF Core tools:
dotnet tool install --global dotnet-ef
# Clone the repository
git clone https://github.com/yourusername/IncrelutionAutomationEditor.git
cd IncrelutionAutomationEditor
# Backend setup
cd backend
dotnet restore
dotnet ef database update
dotnet ef database update --context IdentityAppDbContext
# Frontend setup
cd ../frontend
npm install- Go to Discord Developer Portal
- Create a new application
- Go to OAuth2 and add redirect URI:
https://localhost:7145/api/auth/discord/callback - Copy your Client ID into
backend/appsettings.json - Set your Client Secret using user-secrets:
cd backend dotnet user-secrets set "Discord:ClientSecret" "YOUR_SECRET"
Start both servers in separate terminals:
# Terminal 1: Backend (https://localhost:7145)
cd backend
dotnet watch run
# Terminal 2: Frontend (http://localhost:5173)
cd frontend
npm run devOpen http://localhost:5173 in your browser.
- Sign in with your Discord account
- Create a new loadout in the sidebar
- Click on the automation wheel next to each action to set the level:
- Click: Increase level (Off -> Low -> Regular -> High -> Top)
- Right-click: Decrease level
- Ctrl+click (wheel): Set to maximum/minimum
- Ctrl+click (row): Lock/unlock (locked actions are excluded from export)
- Ctrl+click (chapter tab): Bulk lock/unlock all actions in that chapter
- Ctrl+Z: Undo last change
- Ctrl+Y or Ctrl+Shift+Z: Redo
- In Increlution, press F1 (or Esc -> Automations) to open the Automations screen
- Click Export and copy the JSON
- In the editor, press Ctrl+V anywhere on the loadout page
- Alternatively, click "Import (Paste)" button and paste
- Click "Export (Clipboard)" to copy your loadout
- In Increlution, press F1 (or Esc -> Automations) to open the Automations screen
- Click Import (imports directly from clipboard)
- Click a folder in the sidebar to view its contents
- Create new folders and loadouts from the folder view
- Drag and drop loadouts and folders in the sidebar to reorganize
- Duplicate, rename, or delete folders/loadouts using buttons in the page view
- Deleting a non-empty folder requires typing the folder name to confirm
- Protected (readonly) loadouts are moved to the parent folder instead of deleted
- Click the "Share" button on any loadout or folder (except the root folder)
- Configure options:
- Expiration: 1 hour, 24 hours, 7 days, 30 days, or never
- Show Attribution: Whether your username appears on the shared view
- Copy the generated link and share it
- Recipients can view the shared content read-only:
- Loadout shares: Display the loadout directly
- Folder shares: Display a folder tree with all subfolders and loadouts
- Logged-in recipients can save shares to their "Others' Loadouts" for quick access
- Shared items show live data (changes you make are reflected in the share)
- Manage all your shares from the shares icon in the header
To prevent spoilers, chapters 2-11 are locked by default. Unlock them in Settings by entering the name of the first exploration in each chapter. This affects what you can see and export.
IncrelutionAutomationEditor/
├── backend/ # ASP.NET Core API
│ ├── Data/ # Entity Framework contexts
│ ├── DTOs/ # Data transfer objects and request/response records
│ ├── Endpoints/ # Minimal API endpoint groups (Auth, Folders, Loadouts, Settings, Shares, GameData)
│ ├── Models/ # Entity models (Folder, Loadout, LoadoutShare, FolderShare, etc.)
│ ├── Migrations/ # EF Core migrations
│ ├── Services/ # Business logic (GameData, Folder, Loadout, Settings, Share)
│ └── GameData/ # Static JSON game data files
├── backend.Tests/ # xUnit backend tests
├── frontend/ # React + TypeScript
│ ├── src/
│ │ ├── components/ # React components (Sidebar, TreeNode, LoadoutEditor, ShareModal, etc.)
│ │ ├── contexts/ # React contexts (Auth, Settings, SavedShares, GameData)
│ │ ├── hooks/ # Custom hooks (useLoadoutHistory, useSidebarResize)
│ │ ├── pages/ # Full-page components (Login, Settings, Favourites, ManageShares)
│ │ ├── services/ # API client
│ │ ├── types/ # TypeScript types
│ │ └── utils/ # Utilities (validation, filtering, folder tree helpers)
│ └── package.json
├── examples/ # Example loadout files
├── CLAUDE.md # Development documentation
└── README.md # This file
# Frontend tests
cd frontend
npm run test # Single run
npm run test:ui # With Vitest UI
# Backend tests
cd backend.Tests
dotnet test# Frontend
cd frontend
npm run build # Output in dist/
# Backend
cd backend
dotnet publish -c Release- Backend: ASP.NET Core 10.0, Entity Framework Core, SQLite
- Frontend: React 19, TypeScript, Vite
- Authentication: Discord OAuth2 with cookie sessions
- Testing: Vitest
MIT