feat: add support for external asset packs 🎨#169
Merged
florintimbuc merged 2 commits intopablodelucca:mainfrom Mar 22, 2026
Merged
feat: add support for external asset packs 🎨#169florintimbuc merged 2 commits intopablodelucca:mainfrom
florintimbuc merged 2 commits intopablodelucca:mainfrom
Conversation
Persist and load furniture assets from user-defined directories outside the extension, enabling third-party asset packs to be used alongside built-in furniture. - Add configPersistence.ts to read/write ~/.pixel-agents/config.json - Load external asset dirs on boot and merge with bundled assets - Add/remove directories via Settings modal with live palette refresh - Add docs/external-assets.md covering the manifest format and usage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner
|
This is amazing @marctebo! Do you think the system could be extended to also load characters, floors and walls? We'll review this and get it merged soon! |
florintimbuc
approved these changes
Mar 22, 2026
Collaborator
|
@marctebo great contribution and good docs, I included some fixes in the last commit: asset ID dedup in merge, path traversal defense, and few others, please check :). Merged! Feel free to open a new PR if you'd like to contribute on Pablo's suggestion regarding loading characters, floors, and walls! |
Contributor
Author
|
Thanks so much everyone! Awesome to see this made it in. I don't see why it couldn't be extended 👀, I'll play around with it 👍 greatly appreciate the fixes! |
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.
Summary
~/.pixel-agents/config.jsonand reloaded automatically on restartDemo
Screen.Recording.2026-03-21.at.9.43.51.PM.mov
How it works
When you click Add Asset Directory in Settings, a folder picker opens. Any folder containing an
assets/furniture/subdirectory with per-itemmanifest.jsonfiles will be merged into the furniture palette alongside the built-ins. Removing a directory refreshes the palette immediately.See docs/external-assets.md for the full manifest format.
Using third-party asset packs
If you're looking for a great pixel art office asset pack to use with this feature, check out Office Interior Tileset (16x16) by Donarg — the original inspiration for Pixel Agents' furniture style. It's $2 and well worth supporting.
You'll need to slice the tileset into individual PNGs and write a
manifest.jsonper item (format documented in docs/external-assets.md). An AI assistant like Claude Code can generate the manifests for you if you describe the sprites.Files changed
src/configPersistence.ts~/.pixel-agents/config.jsonsrc/assetLoader.tsmergeLoadedAssets()src/PixelAgentsViewProvider.tswebview-ui/src/hooks/useExtensionMessages.tsexternalAssetDirectoriesstatewebview-ui/src/components/SettingsModal.tsxwebview-ui/src/components/BottomToolbar.tsxwebview-ui/src/App.tsxexternalAssetDirectoriesdocs/external-assets.md🤖 Generated with Claude Code