06: Custom clothing and outfitting guide (Spoilers) - Just-Natsuki-Team/NatsukiModDev GitHub Wiki
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.
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!
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.
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 thejn_
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 betrue
. -
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.
blizzardsev_amazing_hairpin.json:
{
"reference_name": "blizzardsev_amazing_hairpin",
"display_name": "Blizzardsev's amazing hairpin",
"unlocked": true,
"category": "accessory"
}
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 asitting
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 thesitting
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.
-
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.
- 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.
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.
mod_assets/natsuki/accessory/your_wearable_name/sitting.png
mod_assets/natsuki/back/your_wearable_name/sitting.png
-
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
mod_assets/natsuki/back/your_wearable_name/sitting.png
mod_assets/natsuki/facewear/your_wearable_name/sitting.png
mod_assets/natsuki/hair/your_wearable_name/sitting/bangs.png
mod_assets/natsuki/hair/your_wearable_name/sitting/back.png
mod_assets/natsuki/headgear/your_wearable_name/sitting.png
mod_assets/natsuki/necklace/your_wearable_name/sitting.png
where / indicates a folder:
mod_assets/
natsuki/
accessory/
blizzardsev_amazing_hairpin/
sitting.png
- Set up your outfit creation folder: Create a new folder outside your JN installation, and name it after the clothing you are creating.
-
Create your clothing definition: Create a
.json
file, taking care to follow the format under the Clothing definition section. -
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. - Check your clothing definition and clothing assets: Make sure they match the requirements listed in all previous sections.
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!
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.
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.
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 thejn_
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 betrue
. -
hairstyle
: Thereference_name
of a hairstyle for Natsuki, like her twintails. -
clothes
: Thereference_name
of an item Natsuki wears to cover her body, like a t-shirt.
The following are optional:
-
eyewear
: Thereference_name
of an item Natsuki wears over her eyes, like glasses. -
accessory
: Thereference_name
of an item Natsuki wears over her hair, like a hairpin or ribbons. -
headgear
: Thereference_name
of an item Natsuki wears on top of her head, like a beanie hat. -
necklace
: Thereference_name
of an item Natsuki wears around her neck, like a locket, choker or scarf. -
facewear
: Thereference_name
of an item Natsuki wears on her face, like stickers. -
back
: Thereference_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.
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"
}
The following are the reference names of vanilla wearables unlocked by default: you may wish to use these when designing your own custom outfits.
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
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
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
No eyewear is currently unlocked by default.
jn_headgear_basic_white_headband
jn_headgear_black_beanie
jn_headgear_cat_headband
jn_headgear_sleep_mask
jn_necklace_bell_collar
jn_necklace_black_choker
jn_necklace_plain_choker
No facewear is currently unlocked by default.
No back items are currently unlocked by default.
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
-
jn_clothes_autumn_off_shoulder_sweater
: Unlocked viatalk_favourite_season
topic (Happy+ required) -
jn_clothes_bee_off_shoulder_sweater
: Unlocked viatalk_favourite_season
topic (Happy+ required) -
jn_clothes_chocolate_plaid_dress
: Unlocked viatalk_chocolate_preference
topic (Affectionate+ required) -
jn_clothes_cosy_cardigan
: Unlocked viaevent_warm_package
introduction -
jn_clothes_creamsicle_off_shoulder_sweater
: Unlocked viatalk_favourite_season
topic (Happy+ required) -
jn_clothes_nightbloom_off_shoulder_sweater
: Unlocked viatalk_favourite_season
topic (Happy+ required) -
jn_clothes_sango_cosplay
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_clothes_skater_shirt
: Unlocked viatalk_skateboarding
topic (Affectionate+ required) -
jn_clothes_trainer_cosplay
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_clothes_lolita_christmas_dress
: Unlocked viaholiday_christmas_day
holiday event (Happy+ required) -
jn_clothes_ruffle_neck_sweater
: Unlocked viaholiday_valentines_day
holiday event (Affectionate+ required) -
jn_clothes_heart_sweater
: Unlocked viaholiday_valentines_day
holiday event (Love required) -
jn_clothes_chick_dress
: Unlocked viaholiday_easter
holiday event (Happy+ required) -
jn_clothes_cherry_blossom_dress
: Unlocked viaholiday_easter
holiday event (Happy+ required) -
jn_clothes_pastel_goth_overalls
: Unlocked viatalk_fitting_clothing
topic (Affectionate+ required) -
jn_clothes_office_blazer
: Unlocked viatalk_work_experience
topic (Enamored+) -
jn_clothes_magical_girl
: Unlocked viaholiday_halloween
holiday event (Happy+)
-
jn_hair_super_messy
: Unlocked viaevent_not_ready_yet
introduction event -
jn_hair_twintails_white_ribbons
: Unlocked viatalk_skateboarding
topic (Affectionate+ required) -
jn_hair_wavy
: Unlocked viatalk_work_experience
topic (Enamored+)
-
jn_accessory_double_white_hairbands
: Unlocked viatalk_skateboarding
topic (Affectionate+ required) -
jn_accessory_fried_egg_hairpin
: Unlocked viaholiday_easter
holiday event (Happy required) -
jn_accessory_cherry_blossom_hairpin
: Unlocked viaholiday_easter
holiday event (Happy required) -
jn_accessory_gold_star_hairpin
: Unlocked viaholiday_natsuki_birthday
holiday event (HAPPY+ required,party_supplies.nats
in characters folder - 50/50 chance between pink/gold.) -
jn_accessory_pink_star_hairpin
: Unlocked viaholiday_natsuki_birthday
holiday event (HAPPY+ required,party_supplies.nats
in characters folder - 50/50 chance between pink/gold.) -
jn_accessory_hairband_stars
: Unlocked viaholiday_halloween
holiday event (Happy+)
-
jn_eyewear_rectangular_glasses_black
: Unlocked viaevent_eyewear_problems
introduction event -
jn_eyewear_rectangular_glasses_red
: Unlocked viaevent_eyewear_problems
introduction event -
jn_eyewear_round_glasses_black
: Unlocked viaevent_eyewear_problems
introduction event -
jn_eyewear_round_glasses_brown
: Unlocked viaevent_eyewear_problems
introduction event -
jn_eyewear_round_glasses_red
: Unlocked viaevent_eyewear_problems
introduction event -
jn_eyewear_round_sunglasses
: Unlocked viaevent_eyewear_problems
introduction event
-
jn_headgear_ahoge_curly
: Unlocked viaevent_not_ready_yet
introduction event -
jn_headgear_ahoge_small
: Unlocked viaevent_not_ready_yet
introduction event -
jn_headgear_ahoge_swoop
: Unlocked viaevent_not_ready_yet
introduction event -
jn_headgear_chocolate_plaid_bow
: Unlocked viatalk_chocolate_preference
topic (Affectionate+ required) -
jn_headgear_teddy_hairpins
: Unlocked viaevent_warm_package
introduction event -
jn_headgear_trainer_hat
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_headgear_santa_hat
: Unlocked viaholiday_christmas_eve
holiday event (Happy+ required) -
jn_headgear_pompoms
: Unlocked viaholiday_christmas_day
holiday event (Happy+ required) -
jn_headgear_new_year_headband
: Unlocked viaholiday_new_years_day
holiday event (Happy+ required) -
jn_headgear_classic_party_hat
: Unlocked viaholiday_player_birthday
holiday event (Affectionate+ required) -
jn_headgear_spiked_headband
: Unlocked viatalk_fitting_clothing
topic (Affectionate+ required) -
jn_headgear_hairtie
: Unlocked viaholiday_halloween
holiday event (Happy+)
-
jn_necklace_golden_necklace
: Unlocked viatalk_chocolate_preference
topic (Affectionate+ required) -
jn_necklace_pink_scarf
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_necklace_sango_choker
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_necklace_twirled_choker
: Unlocked viatalk_are_you_into_cosplay
topic (Affectionate+ required) -
jn_necklace_bunny_necklace
: Unlocked viaholiday_easter
holiday event (Happy required) -
jn_necklace_spiked_choker
: Unlocked viatalk_fitting_clothing
topic (Affectionate+ required) -
jn_necklace_formal_necktie
: Unlocked viatalk_work_experience
topic (Enamored+)
-
jn_facewear_plasters
: Unlocked viatalk_skateboarding
topic (Affectionate+ required) -
jn_facewear_sprinkles
: Unlocked viatalk_fitting_clothing
topic (Affectionate+ required)
To add a pre-made clothing pack:
- Copy the clothing definition
.json
file from the clothing pack into thecustom_wearables
folder of your JN installation. - Copy the
mod_assets
folder from the clothing pack into thegame
folder of your JN installation. - Launch JN, or ask Natsuki to search for new clothing/outfits via
Talk -> About your outfit... -> Can you search again for new outfits?
.
To add a pre-made outfit:
- Add any prerequisite clothing the outfit requires if specified: see the Adding pre-made custom clothing section for details.
- Copy the outfit definition
.json
file from the outfit pack into thecustom_outfits
folder of your JN installation. - Launch JN, or ask Natsuki to search for new clothing/outfits via
Talk -> About your outfit... -> Can you search again for new outfits?
.
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.
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.
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
.
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_
.
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 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.
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
.
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_
.
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 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).
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.
The outfit may have failed to load, or already been deleted.
Please note that vanilla outfits cannot be removed.