Use this skill when loading and managing resources in PixiJS v8. Covers Assets.init, Assets.load/add/unload, bundles, manifests, background loading, onProgress, caching, spritesheets, video textures, web fonts, bitmap fonts, animated GIFs, compressed textures, SVG as texture or Graphics, resolution detection, per-asset data options, and forcing a specific loader with the parser field (for extension-less URLs). Triggers on: Assets, Assets.load, Assets.init, loadBundle, manifest, backgroundLoad, S
Detected risks:
The Assets API is PixiJS v8's combined asset loader, resolver, and cache, exposed as a single singleton, and this skill covers loading and managing all resource types with format detection, resolution switching, bundle grouping, progress tracking, and GPU cleanup. Assets.init() is optional but recommended for setting basePath, texturePreference, or a manifest; after init, Assets.load() accepts a URL, alias, array, or UnresolvedAsset descriptor, resolved assets are cached, and Assets.get() re-resolves them. The skill lists the supported file types and their parser IDs and loaders, including textures (.png, .jpg, .jpeg, .webp, .avif), SVG, video textures, sprite sheets, bitmap fonts, web fonts, JSON, plain text, compressed textures (.basis, .dds, .ktx, .ktx2), and animated GIFs.
A major focus is forcing a specific loader with the top-level parser field on an asset descriptor. By default PixiJS picks a loader by matching file extension or MIME type, but when a URL has no extension, as with signed CDN URLs, blob/object URLs, API endpoints, or content-hashed paths, the resolver cannot infer the loader. Setting parser to a value such as 'texture', 'json', 'web-font', 'video', 'spritesheet', 'gif', or one of the compressed-texture IDs forces the right loader. The doc stresses that parser belongs at the top level of the descriptor alongside src and data, not inside data, and that the v7 loadParser field still works but emits a deprecation warning, so new code should use parser.
Beyond core loading, the skill points to reference files for each workflow: spritesheets and AnimatedSprite animations, video textures with autoplay/looping/mobile concerns, and other asset types, while noting library-specific requirements such as rendering BitmapText requiring the pixi.js/text-bitmap import, animated GIFs requiring pixi.js/gif and returning a GifSource, and compressed textures each needing their side-effect import. Use this skill whenever you are loading or managing resources in PixiJS, especially when dealing with bundles, manifests, background loading, progress callbacks, resolution detection, per-asset data options, or extension-less URLs that need an explicit parser.
No, Assets.init() is optional but recommended for setting basePath, texturePreference, or a manifest. After init you call Assets.load() with a URL, alias, array, or descriptor, and Assets.get() re-resolves cached assets.
Set the top-level parser field on the asset descriptor to force a loader, for example parser: 'texture' for a signed CDN image or parser: 'json' for an API endpoint. This is needed for signed CDN URLs, blob/object URLs, custom routes, and content-hashed paths without a suffix.
The parser field goes at the top level of the asset descriptor, alongside src and data, not inside data. It accepts any parser ID from the supported file types table.
No, loadParser is the deprecated v7 field and still works but emits a deprecation warning. Use parser for new code instead.
Animated GIFs require the 'pixi.js/gif' import and return a GifSource, and while bitmap fonts load by default, rendering BitmapText requires the 'pixi.js/text-bitmap' import. Compressed textures each require their own side-effect import.
Quick Setup:
.claude/skills/Repository
pixijs/pixijs-skills