// CREATOR DOCUMENTATION //

Asset Guide

Everything you need to know to create, export, and share assets for Project Y. Whether you're making hair, clothes, accessories, or props — this is your reference.

// IN THIS GUIDE //

File Specifications

All character assets must follow these exact specifications to work correctly in the layer system.

PropertyValueNotes
Canvas size160 × 192 pxEvery asset, no exceptions. This is Project Y's primary canvas size.
FormatPNG or GIFPNG for static assets. GIF for animated (walk cycle, etc.).
BackgroundTransparentNo white, black, or solid backgrounds. Must show checkerboard in your editor.
Max file size50 KBPixel sprites compress well. If you're over 50KB something is wrong with the export.
Color depthAnyIndexed or RGBA both work. Keep palettes consistent with existing assets for visual cohesion.
Grid8 × 8 pxNot required but recommended. All official assets use an 8px grid.
⚠ Common mistake: Exporting with a black or white background instead of transparency. In your pixel editor, make sure the background layer is hidden before exporting. The canvas should show a checkerboard pattern.
✓ Tops/Shirts — PNG recommended: Upload your shirt as a PNG and Project Y will automatically generate a subtle 2-frame breathing animation for the idle state. Upload as a GIF only if you want full control over your own animation (flowing fabric, walk cycle, etc.).
✓ Tip: A well-made 160×192 transparent PNG is usually 1–10 KB. A GIF walk cycle with 8 frames is usually 10–30 KB. If your file is larger, check for a baked-in background.

Layer Slot Guide

The character is built from stacked layers. Each layer slot has a specific purpose. Assets must be assigned to the correct slot or they won't stack in the right order.

Layer order from back to front:

🦴
BODY
The base mannequin. Skin, head, eyes, back arm, torso, legs. This is the foundation everything else sits on top of.
slot: body (not uploadable — base only)
👟
SHOES
Footwear. Sits above the body, below pants. Draws over the feet.
slot: shoes
👖
BOTTOMS
Pants, skirts, shorts. Sits above shoes, below the front arm.
slot: bottoms
💪
FRONT ARM
The forward-facing arm. Sits above bottoms so the arm tucks under the shirt but over the pants.
slot: front_arm
👕
TOP
Shirts, hoodies, jackets, dresses. Sits above the front arm so the sleeve covers the arm.
slot: top
🎭
ACCESSORY
Masks, scarves, jewelry, face accessories. Sits above the shirt — worn over clothing.
slot: accessory
💇
HAIR
Hair, hats, headwear. Topmost layer — sits over everything including accessories.
slot: hair
✓ Tip: When drawing, use the mannequin base as a reference layer underneath. Draw only your asset's pixels on a transparent layer on top. The mannequin should never be included in your export.

Forward / Side States

Companions switch between different poses depending on what they're doing. Your asset needs to look correct in each state. The two base states are Forward and Side — these are required for all submissions.

FORWARD
REQUIRED
Front-facing idle pose. Used when the companion is standing and talking to you. This is the default view.
SIDE
REQUIRED
Side profile. Used for the walk cycle. Must match the walk base animation frames. 8-frame GIF recommended.
SIT
OPTIONAL
Side profile seated. Used when companion sits at the desk. Similar to side but repositioned for seated head/body position.
SLEEP
OPTIONAL
Horizontal pose for the bed zone. Extended pack — not required for basic submission.
WAVE
OPTIONAL
Forward facing, arms up. Used when companion greets you on app open.
REACT
OPTIONAL
Forward facing surprised/happy expression. Used for notifications and reactions.

If a state is missing, the app gracefully falls back — it uses the closest available state rather than breaking. A forward-only asset will hide during walk instead of showing incorrectly.

⚠ Important: For the walk cycle (side state), clothing needs to match each frame of the walk animation. Draw the asset on a transparent layer over the walk base GIF, frame by frame. The sleeve positions, hem lines, etc. should move with the body.

Naming Conventions

Use clear, consistent names when uploading. The asset name is what users see in the dressing room and Wardrobe Commons.

# Format: slot_name_state_creator
# Examples:

top_black_hoodie_forward_solen.png     # hoodie, front facing
top_black_hoodie_side_solen.gif         # hoodie, walk cycle
hair_white_medium_forward_missy.png     # hair, front facing
hair_white_medium_side_missy.png        # hair, side profile
shoes_brown_boots_forward_solen.png     # shoes, front facing
accessory_black_mask_forward_missy.png  # mask accessory

When uploading through the dressing room or app, the asset name field is just the human-readable name (e.g. "Black Hoodie"). You don't need to follow the filename convention exactly — it's just good practice for keeping your files organized locally.

How to Export

These instructions apply to Shadow World Pixel Art App (swpapy.pages.dev) — the official Project Y pixel editor. The same principles apply to Aseprite or any other pixel art tool.

For a static asset (PNG):

1. Make sure ONLY your asset layer is visible
   (hide the mannequin reference layer)
2. Background must show checkerboard = transparent
3. Export → Export PNG → 1x scale
4. Confirm file is under 50KB
5. Open in any image viewer — should show transparent bg

For an animated asset (GIF — walk cycle):

1. Import the walk base GIF as a reference layer
2. Create a new transparent layer on top
3. Draw your asset on each frame, matching body position
4. Hide the walk base reference layer before exporting
5. Export → Export GIF → transparent background
6. Frame timing: 300ms per frame (matches walk cycle)
7. Confirm 8 frames, transparent bg, under 50KB
✓ Tip: Walk cycle frames 1–4 and 5–8 are often mirrored. You may only need to draw 4 unique positions and mirror them for efficiency.
⚠ Aseprite users: Make sure to delete or hide the default "Background" layer (solid white) before exporting. File → Export → check "Use layer opacity" and ensure alpha channel is preserved.

How to Upload

You can upload assets from two places — the Dressing Room on the website, or directly from the Dressing Room in the app. Both sync to the same account.

From the website (dressing-room.html):

1. Log in at the top right → Launch App → sign in
2. Go to Dressing Room in the nav
3. Select the slot you want to upload to (e.g. Hair)
4. Scroll down to the Upload section
5. Fill in: asset name, category, public toggle
6. Choose your PNG or GIF file
7. Hit Upload
8. It appears in your slot immediately for preview
9. Select it → Save to App to sync to your companions

From the app (Settings → 👗 Dressing Room):

1. Open the app and go to Settings (⚙ gear icon)
2. Tap 👗 Dressing Room
3. Select your companion at the top
4. Scroll down to Upload Asset
5. Fill in: asset name, slot, category, public toggle
6. Choose File → pick your PNG or GIF
7. Tap Upload
8. Select it from the dropdown to preview
9. Tap Save Outfit to apply

Once uploaded, your asset is saved to your account and available across all devices. If you set it to public, it will appear in The Wardrobe Commons for other users to add to their closets.

UAYOR License

UAYOR — Use At Your Own Risk. All assets shared publicly in The Wardrobe Commons are released under this community license.

// WHAT UAYOR MEANS //
  • Anyone can use your public asset in their Project Y companions for free
  • You keep full credit as the creator
  • Assets are shared as-is — no guaranteed compatibility with all activity states
  • If an asset only has a forward state, it may not display during walk or sit — that's okay
  • You cannot sell assets submitted to The Wardrobe Commons
  • You cannot claim ownership of assets made by others
  • Assets with copyrighted characters or IP are not allowed

Private assets (not marked public) are only visible to you and never appear in The Wardrobe Commons. You can keep your companion's look entirely private if you prefer.

Project Y itself is not responsible for the content of community-submitted assets. If you encounter an asset that violates these terms, please report it.