06: Custom clothing and outfitting guide (Spoilers) - Just-Natsuki-Team/NatsukiModDev GitHub Wiki

Custom clothing and outfitting guide

This page details how to use the custom outfit and wearable features included in Just Natsuki, from 1.0.0 onwards.

Please note that this feature requires an affinity of HAPPY or above, as well as Natsuki having brought up (and therefore unlocking) the custom outfit features.

Creating new custom clothing

This section is for those interested in creating new custom clothing for JN: if you are looking for instructions on how to add a pre-made custom clothing item, please see the Adding pre-made custom clothing section.

Please check out the clothing pack for creators under the latest release here!

Overview

Clothing (also known as a wearable) is defined as any single item Natsuki can wear in one of her outfit slots.

Any piece of custom clothing has two portions:

  • Clothing definition: A single .json file that describes the clothing so it can be registered and loaded in the game.
  • Clothing assets: .png files containing the graphics of the outfit. An outfit must have assets for every pose Natsuki has in the current version of the game.

Clothing definition file

The clothing definition is a single .json file that describes to the game a piece of clothing that exists, what it is called, and other information required for the game to load it.

The information contained in a clothing definition must include the following:

  • reference_name: A unique name for the clothing for handling save data regarding the clothing for use in outfits, etc. You should supply a reference name that includes your name/handle, with any words separated by underscores (_). A reference name cannot use the jn_ prefix, as this is reserved. The reference name must not be changed once added to the game.
  • display_name: The name given to the clothing by Natsuki, and referred to in the game by menus, etc.
  • unlocked: Whether this clothing is locked or unlocked by default. Unless you plan to submod and unlock this clothing as part of your content, this should always be true.
  • category: Defines what slot Natsuki wears this clothing in, and must be one of the following:
    • hairstyle: A hairstyle for Natsuki, like her twintails.
    • eyewear: An item Natsuki wears over her eyes, like glasses.
    • accessory: An item Natsuki wears over her hair, like a pin, or ribbons.
    • clothes: An item Natsuki wears to cover her body, like a t-shirt.
    • headgear: An item Natsuki wears on top of her head, like a beanie hat.
    • necklace: An item Natsuki wears around her neck, like a locket.
    • facewear: An item Natsuki wears on her face, like stickers.
    • back: An item Natsuki wears on her back, like a cape.

The clothing definition must be saved with a file name the same as the reference_name; for example blizzardsev_amazing_hairpin.json.

Definition files are loaded by JN under the custom_wearables directory in the DDLC folder.

Example clothing definition JSON

blizzardsev_amazing_hairpin.json:

{
    "reference_name": "blizzardsev_amazing_hairpin",
    "display_name": "Blizzardsev's amazing hairpin",
    "unlocked": true,
    "category": "accessory"
}

Clothing assets

The clothing assets are what the player will actually see Natsuki wearing, and correspond with a clothing definition: clothing assets without a definition are not picked up by the game.

Clothing assets must obey the following criteria:

  • The file type of any asset must be .png.
  • Any asset must be 1280 pixels wide, and 720 pixels high, to be properly aligned with Natsuki's body.
  • Enough assets must exist to cover all of the poses Natsuki has in the version of the game, as each pose requires a matching asset for the clothing to be loaded. For example, assets for v1.0.0 only require a sitting asset, as this is the only pose that exists: please refer to the full list below.
  • Each asset file must be saved under a folder matching the reference name of the clothing it corresponds to, and be named after the pose it corresponds to; for example accessory/blizzardsev_amazing_hairpin/sitting.png for the sitting pose.

When creating mod assets, you should work on them in a folder outside of your JN installation.

Clothing assets should be saved under mod_assets/natsuki in your creation folder, to be copied into the game/mod_assets folder of JN when ready to add.

Current pose list

  • sitting: Natsuki's default pose.
  • arms_crossed_body: Natsuki has her arms crossed over her body, but behind her desk.
  • arms_crossed_desk: Natsuki has her arms crossed, and on top of the desk.
  • fingers_on_desk: Natsuki rests her fingers on the desk.
  • finger_touching: Natsuki presses her index fingers together behind her desk.
  • pointy_finger: Natsuki rests one arm across the table, confidently pointing to the air with her free hand.
  • hand_on_chin: Natsuki rests one arm across the table, supporting her chin with her free hand.

What sprites do I need for a specific wearable?

  • Accessory: A single sprite is required.
  • Back: A single sprite is required.
  • Clothes: Clothing is now split into two sets: clothing, and sleeves. Both sets must have a sprite for each pose to account for differences that may result from Natsuki's arm positions (I.E crumpled/folded fabric).
  • Eyewear: A single sprite is required.
  • Facewear: A single sprite is required.
  • Hair: Two sprites are required, for both the front and back portions of Natsuki's hair.
  • Headgear: A single sprite is required.
  • Necklace: A single sprite is required.

How do I arrange the sprites in the mod_assets folder?

As before, all sprites are kept under the game/mod_assets/natsuki folder, but different wearables must be placed in based on their type as given in their definition (json) file.

Accessory
  • mod_assets/natsuki/accessory/your_wearable_name/sitting.png
Back
  • mod_assets/natsuki/back/your_wearable_name/sitting.png
Clothes
  • mod_assets/natsuki/clothes/your_wearable_name/sitting.png

  • mod_assets/natsuki/clothes/your_wearable_name/arms_crossed_body.png

  • mod_assets/natsuki/clothes/your_wearable_name/arms_crossed_desk.png

  • mod_assets/natsuki/clothes/your_wearable_name/fingers_on_desk.png

  • mod_assets/natsuki/clothes/your_wearable_name/finger_touching.png

  • mod_assets/natsuki/clothes/your_wearable_name/pointy_finger.png

  • mod_assets/natsuki/clothes/your_wearable_name/hand_on_chin.png

  • mod_assets/natsuki/sleeves/your_wearable_name/sitting.png

  • mod_assets/natsuki/sleeves/your_wearable_name/arms_crossed_body.png

  • mod_assets/natsuki/sleeves/your_wearable_name/arms_crossed_desk.png

  • mod_assets/natsuki/sleeves/your_wearable_name/fingers_on_desk.png

  • mod_assets/natsuki/sleeves/your_wearable_name/finger_touching.png

  • mod_assets/natsuki/sleeves/your_wearable_name/pointy_finger.png

  • mod_assets/natsuki/sleeves/your_wearable_name/hand_on_chin.png

Eyewear
  • mod_assets/natsuki/back/your_wearable_name/sitting.png
Facewear
  • mod_assets/natsuki/facewear/your_wearable_name/sitting.png
Hair
  • mod_assets/natsuki/hair/your_wearable_name/sitting/bangs.png
  • mod_assets/natsuki/hair/your_wearable_name/sitting/back.png
Headgear
  • mod_assets/natsuki/headgear/your_wearable_name/sitting.png
Necklace
  • mod_assets/natsuki/necklace/your_wearable_name/sitting.png

Example asset list/structure

where / indicates a folder:

mod_assets/
    natsuki/
        accessory/
            blizzardsev_amazing_hairpin/
                sitting.png

Walkthrough

Steps

  1. Set up your outfit creation folder: Create a new folder outside your JN installation, and name it after the clothing you are creating.
  2. Create your clothing definition: Create a .json file, taking care to follow the format under the Clothing definition section.
  3. Create your clothing assets: Create a 1280x720 .png image for each pose that exists in the current version of JN, taking care to save it following the structure under the Example asset list/structure section.
  4. Check your clothing definition and clothing assets: Make sure they match the requirements listed in all previous sections.

Example result clothing pack

You should have a folder resembling the following structure (where / indicates a folder):

Blizzardsev's amazing hairpin/
    blizzardsev_amazing_hairpin.json
    mod_assets/
        natsuki/
            accessory/
                blizzardsev_amazing_hairpin/
                    sitting.png

You are now ready to add the custom outfit to JN!

Creating new custom outfits

This section is for those interested in creating new custom outfits for JN: if you are looking for instructions on how to add a pre-made outfit, please see the Adding pre-made outfits section.

Overview

An outfit is defined as a combination of clothing/wearables that constitute a complete wardrobe that Natsuki can be asked to wear.

Outfits created by players in-game by talking to Natsuki may be shared between players, although this requires any player adding the outfit to have all clothing included in the outfit unlocked.

Outfits may consist of vanilla JN clothing, custom clothing, or a combination of the two.

Outfit definition file

The outfit definition file is a single .json file that describes to the game an outfit that exists, what it is called, the clothing it involves, and other information required for the game to load it.

The information contained in a clothing definition must include the following:

  • reference_name: A unique name for the outfit for handling save data regarding the outfit. You should supply a reference name that includes your name/handle, with any words separated by underscores (_). A reference name cannot use the jn_ prefix, as this is reserved. The reference name must not be changed once added to the game.
  • display_name: The name given to the outfit by Natsuki, and referred to in the game by menus, etc.
  • unlocked: Whether this outfit is locked or unlocked by default. Unless you plan to submod and unlock this clothing as part of your content, this should always be true.
  • hairstyle: The reference_name of a hairstyle for Natsuki, like her twintails.
  • clothes: The reference_name of an item Natsuki wears to cover her body, like a t-shirt.

The following are optional:

  • eyewear: The reference_name of an item Natsuki wears over her eyes, like glasses.
  • accessory: The reference_name of an item Natsuki wears over her hair, like a hairpin or ribbons.
  • headgear: The reference_name of an item Natsuki wears on top of her head, like a beanie hat.
  • necklace: The reference_name of an item Natsuki wears around her neck, like a locket, choker or scarf.
  • facewear: The reference_name of an item Natsuki wears on her face, like stickers.
  • back: The reference_name of an item Natsuki wears on her back completely behind her body, like a cape or cloak.

Note that vanilla JN wearables cannot be unlocked through custom outfits.

Example outfit definition JSON

blizzardsev_devilish_outfit.json:

{
    "reference_name": "blizzardsev_devilish_outfit",
    "display_name": "Blizzardsev's devilish outfit",
    "unlocked": true,
    "clothes": "blizzardsev_awesome_tshirt",
    "hairstyle": "jn_hair_ponytail",
    "accessory": "blizzardsev_amazing_hairpin",
    "eyewear": "blizzardsev_fantastic_glasses",
    "headgear": "blizzardsev_stylish_beanie_hat",
    "necklace": "blizzardsev_stunning_necklace"
}

Vanilla unlocked items

The following are the reference names of vanilla wearables unlocked by default: you may wish to use these when designing your own custom outfits.

Clothing

  • jn_clothes_bunny_pajamas
  • jn_clothes_casual
  • jn_clothes_hoodie_not_cute
  • jn_clothes_hoodie_turtleneck
  • jn_clothes_nya_sweater
  • jn_clothes_qeeb_sweater
  • jn_clothes_qt_sweater
  • jn_clothes_school_uniform
  • jn_clothes_star_pajamas

Hairstyles

  • jn_hair_bedhead
  • jn_hair_bun
  • jn_hair_down_long
  • jn_hair_down
  • jn_hair_low_bun
  • jn_hair_messy_bun
  • jn_hair_pigtails
  • jn_hair_pixie_cut
  • jn_hair_ponytail
  • jn_hair_princess_braids
  • jn_hair_twin_buns
  • jn_hair_twintails_braided
  • jn_hair_twintails_down
  • jn_hair_twintails_long
  • jn_hair_twintails

Accessories

  • jn_accessory_hairband_cat
  • jn_accessory_hairband_gray
  • jn_accessory_hairband_green
  • jn_accessory_hairband_hot_pink
  • jn_accessory_hairband_purple
  • jn_accessory_hairband_red
  • jn_accessory_hairband_white

Eyewear

No eyewear is currently unlocked by default.

Headgear

  • jn_headgear_basic_white_headband
  • jn_headgear_black_beanie
  • jn_headgear_cat_headband
  • jn_headgear_sleep_mask

Necklaces

  • jn_necklace_bell_collar
  • jn_necklace_black_choker
  • jn_necklace_plain_choker

Facewear

No facewear is currently unlocked by default.

Back

No back items are currently unlocked by default.

Vanilla unlockable items (Spoilers)

The following are the reference names of vanilla wearables unlocked by experiencing certain in-game events, performing certain actions, or other criteria: you may wish to use these when designing your own custom outfits.

Spoilers

Clothing

  • jn_clothes_autumn_off_shoulder_sweater: Unlocked via talk_favourite_season topic (Happy+ required)
  • jn_clothes_bee_off_shoulder_sweater: Unlocked via talk_favourite_season topic (Happy+ required)
  • jn_clothes_chocolate_plaid_dress: Unlocked via talk_chocolate_preference topic (Affectionate+ required)
  • jn_clothes_cosy_cardigan: Unlocked via event_warm_package introduction
  • jn_clothes_creamsicle_off_shoulder_sweater: Unlocked via talk_favourite_season topic (Happy+ required)
  • jn_clothes_nightbloom_off_shoulder_sweater: Unlocked via talk_favourite_season topic (Happy+ required)
  • jn_clothes_sango_cosplay: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_clothes_skater_shirt: Unlocked via talk_skateboarding topic (Affectionate+ required)
  • jn_clothes_trainer_cosplay: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_clothes_lolita_christmas_dress: Unlocked via holiday_christmas_day holiday event (Happy+ required)
  • jn_clothes_ruffle_neck_sweater: Unlocked via holiday_valentines_day holiday event (Affectionate+ required)
  • jn_clothes_heart_sweater: Unlocked via holiday_valentines_day holiday event (Love required)
  • jn_clothes_chick_dress: Unlocked via holiday_easter holiday event (Happy+ required)
  • jn_clothes_cherry_blossom_dress: Unlocked via holiday_easter holiday event (Happy+ required)
  • jn_clothes_pastel_goth_overalls: Unlocked via talk_fitting_clothing topic (Affectionate+ required)
  • jn_clothes_office_blazer: Unlocked via talk_work_experience topic (Enamored+)
  • jn_clothes_magical_girl: Unlocked via holiday_halloween holiday event (Happy+)

Hairstyles

  • jn_hair_super_messy: Unlocked via event_not_ready_yet introduction event
  • jn_hair_twintails_white_ribbons: Unlocked via talk_skateboarding topic (Affectionate+ required)
  • jn_hair_wavy: Unlocked via talk_work_experience topic (Enamored+)

Accessories

  • jn_accessory_double_white_hairbands: Unlocked via talk_skateboarding topic (Affectionate+ required)
  • jn_accessory_fried_egg_hairpin: Unlocked via holiday_easter holiday event (Happy required)
  • jn_accessory_cherry_blossom_hairpin: Unlocked via holiday_easter holiday event (Happy required)
  • jn_accessory_gold_star_hairpin: Unlocked via holiday_natsuki_birthday holiday event (HAPPY+ required, party_supplies.nats in characters folder - 50/50 chance between pink/gold.)
  • jn_accessory_pink_star_hairpin: Unlocked via holiday_natsuki_birthday holiday event (HAPPY+ required, party_supplies.nats in characters folder - 50/50 chance between pink/gold.)
  • jn_accessory_hairband_stars: Unlocked via holiday_halloween holiday event (Happy+)

Eyewear

  • jn_eyewear_rectangular_glasses_black: Unlocked via event_eyewear_problems introduction event
  • jn_eyewear_rectangular_glasses_red: Unlocked via event_eyewear_problems introduction event
  • jn_eyewear_round_glasses_black: Unlocked via event_eyewear_problems introduction event
  • jn_eyewear_round_glasses_brown: Unlocked via event_eyewear_problems introduction event
  • jn_eyewear_round_glasses_red: Unlocked via event_eyewear_problems introduction event
  • jn_eyewear_round_sunglasses: Unlocked via event_eyewear_problems introduction event

Headgear

  • jn_headgear_ahoge_curly: Unlocked via event_not_ready_yet introduction event
  • jn_headgear_ahoge_small: Unlocked via event_not_ready_yet introduction event
  • jn_headgear_ahoge_swoop: Unlocked via event_not_ready_yet introduction event
  • jn_headgear_chocolate_plaid_bow: Unlocked via talk_chocolate_preference topic (Affectionate+ required)
  • jn_headgear_teddy_hairpins: Unlocked via event_warm_package introduction event
  • jn_headgear_trainer_hat: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_headgear_santa_hat: Unlocked via holiday_christmas_eve holiday event (Happy+ required)
  • jn_headgear_pompoms: Unlocked via holiday_christmas_day holiday event (Happy+ required)
  • jn_headgear_new_year_headband: Unlocked via holiday_new_years_day holiday event (Happy+ required)
  • jn_headgear_classic_party_hat: Unlocked via holiday_player_birthday holiday event (Affectionate+ required)
  • jn_headgear_spiked_headband: Unlocked via talk_fitting_clothing topic (Affectionate+ required)
  • jn_headgear_hairtie: Unlocked via holiday_halloween holiday event (Happy+)

Necklaces

  • jn_necklace_golden_necklace: Unlocked via talk_chocolate_preference topic (Affectionate+ required)
  • jn_necklace_pink_scarf: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_necklace_sango_choker: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_necklace_twirled_choker: Unlocked via talk_are_you_into_cosplay topic (Affectionate+ required)
  • jn_necklace_bunny_necklace: Unlocked via holiday_easter holiday event (Happy required)
  • jn_necklace_spiked_choker: Unlocked via talk_fitting_clothing topic (Affectionate+ required)
  • jn_necklace_formal_necktie: Unlocked via talk_work_experience topic (Enamored+)

Facewear

  • jn_facewear_plasters: Unlocked via talk_skateboarding topic (Affectionate+ required)
  • jn_facewear_sprinkles: Unlocked via talk_fitting_clothing topic (Affectionate+ required)

Adding pre-made custom clothing

To add a pre-made clothing pack:

  1. Copy the clothing definition .json file from the clothing pack into the custom_wearables folder of your JN installation.
  2. Copy the mod_assets folder from the clothing pack into the game folder of your JN installation.
  3. Launch JN, or ask Natsuki to search for new clothing/outfits via Talk -> About your outfit... -> Can you search again for new outfits?.

Adding pre-made custom outfits

To add a pre-made outfit:

  1. Add any prerequisite clothing the outfit requires if specified: see the Adding pre-made custom clothing section for details.
  2. Copy the outfit definition .json file from the outfit pack into the custom_outfits folder of your JN installation.
  3. Launch JN, or ask Natsuki to search for new clothing/outfits via Talk -> About your outfit... -> Can you search again for new outfits?.

Troubleshooting

JN will attempt to handle errors with custom clothing and outfits as best it can, and will inform the user with a popup notification on starting the game if an item fails to load.

In this event, please check the log for more information and follow the guidance below.

Clothing/wearable errors

Cannot load wearable as one or more key attributes do not exist.

The clothing definition file is missing one of reference_name, display_name, unlocked or category, or category has an invalid value. Ensure these are defined in the file correctly, and reload.

Cannot load wearable as one or more attributes are the wrong data type.

One or more of the attributes in the clothing definition file have not been formatted correctly - ensure that reference_name, display_name, category and their values are surrounded by quotation marks ("), and that unlocked is surrounded by quotation marks with a value of either true or false.

Cannot load wearable as the reference name contains a reserved namespace.

The value for reference_name in the clothing definition file contains a reserved namespace: ensure that the value for the reference name does not start with jn_.

Cannot load wearable as the reference name contains one or more restricted characters.

The value for reference_name in the clothing definition file contains a restricted character: ensure that the value for the reference name contains no spaces, with words separated by underscores (_), and contains no other special characters.

Cannot load wearable as one or more sprites are missing: does this item support X.X? / Cannot load wearable as one or more sprites are missing.

One or more asset files required for the clothing are missing: ensure that the clothing pack is up to date, supports the current version of JN, and with all assets copied to the correct locations.

The outfit loaded, but isn't appearing in the game.

The outfit definition may have specified that the outfit is not unlocked by default. Contact the author of the clothing pack to check if this is intentional.

Outfit errors

Cannot load outfit as one or more attributes are the wrong data type.

One or more of the attributes in the outfit definition file have not been formatted correctly - ensure that reference_name, display_name, hairstyle, eyewear, accessory, clothes, headgear, necklace, facewear, back and their values are surrounded by quotation marks ("), and that unlocked is surrounded by quotation marks with a value of either true or false.

Cannot load outfit as the reference name contains a reserved namespace.

The value for reference_name in the outfit definition file contains a reserved namespace: ensure that the value for the reference name does not start with jn_.

Cannot load outfit as the reference name contains one or more restricted characters.

The value for reference_name in the outfit definition file contains a restricted character: ensure that the value for the reference name contains no spaces, with words separated by underscores (_), and contains no other special characters.

Cannot load outfit as specified clothes/hairstyle/accessory/eyewear/headgear/necklace does not exist.

One or more of the clothing items specified as a part of this outfit do not exist: make sure any clothing this outfit depends on has been added before the outfit definition file, and that all values for clothing slots refer to the correct clothing reference_name.

Cannot load outfit as specified clothes/hairstyle/accessory/eyewear/headgear/necklace are not valid clothing/hairstyle/accessory/eyewear/headgear/necklace.

One or more of the clothing items specified as a part of this outfit do not match the slot they have been assigned to; for example a hairstyle being assigned to the clothes slot. Make sure all slots point to a clothing item with the matching category.

The outfit loaded, but the log says it was locked.

The outfit contains one or more pieces of clothing that have not been unlocked yet.

This is intentional, and serves to ensure outfits cannot be used to bypass unlock criteria for clothing items (cheating).

Natsuki says she can't delete an outfit after I ask her to remove one.

Ensure that the outfit definition file's name matches the reference_name of the outfit within the file: these must match.

As a last resort, you may delete the definition file from custom_outfits: quit the game before doing this.

An outfit I want to delete does not appear in the list of outfits to remove.

The outfit may have failed to load, or already been deleted.

Please note that vanilla outfits cannot be removed.

⚠️ **GitHub.com Fallback** ⚠️