Stardew Valley

File information

Last updated

Original upload

Created by

MissCoriel

Uploaded by

MissCoriel

Virus scan

Safe to use

Documentation

Readme

View as plain text

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
| |
| Miss Coriel's NPC Creator |
| Version 1.0 |
| Designed by Miss Coriel |
| |
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

==============================================================================================

-=Introduction=-

One of the first mods most beginners make in Stardew Valley is an NPC Mod. It is also the first
abandoned. NPCs are a intricate process filled with small moving parts that take time to
understand the full weight of each item. You have to be good at dialogue and events as well as
pixel art for the sprites. Even then.. you have to read about the NPC's different parts to
learn how to make one into a spouse and plenty of submods are needed to flesh them out. Who has
time to chase their dream if they are shoved in an endless sea of reading?!
No more.. This NPC Creation tool has been created by me to make the process not only simpler, but
faster and more likley to succeed than fumbling in a text file. You can acheive a fully set up
NPC with most of the basics in less than a fraction of the time normally needed! At last
even the most neophyte of modders can bring their dream to life!

===============================================================================================

-=Table of Contents=-

1. - Install Instruction
2. - Explaination of Controls, Main Window
3. - Explaination of Controls, Manifest Creator
4. - Explaination of Controls, Schedule Studio
5. - Explaination of Controls, Dialogue Boutique
6. - Building an NPC! -Step by Step-
A. Set up
B. Create Schedule
C. Create Dialogue
D. Create Manifest
E. Finalize
7. Troubleshooting

===============================================================================================

1. -=Install Instruction=-

NPC Creator is not a mod that relies on Stardew Valley. Place the application in any folder you
find easier for you to get to. All NPC projects will be saved in the program folder "Export" as
[CP]

===============================================================================================

2. -=Explaination of Controls, Main Window=-

NPC System Name - This is how the gamecode identifies your character, It cannot be changed!
The system name can be anything so long as it doesn't get in the way of
an existing NPC. (eg. Haley)

Create NPC Folder - Press this after entering a NPC System Name. This creates the your
filestructure for your NPC. The program may crash if you do not do
this before you start.

Links - These links contain the collective knowledge of the SDV Modding community. Also the
SDV Discord is there for you to talk to modders directly as well as the WIKI page.

NPC Dispositions - This is a collection of data needed for Manifestation:

NPC Age - As it says. You can set your NPC to be a child, teen, or Adult.
Manners - Influences generic dialogue. Choose one that suits the NPC.
Social - Influences generic dialogue. Choose one that suits the NPC.
Optimism - Influences generic dialogue. Choose one that suits the NPC.
Gender - Select the gender that defines the NPC.
Datable? - This will cause the NPC to need further work. You must
generate Marriage Dialogue and Engagement Dialogue.
Love Interest - not really used. If no interest, set as null .
Home Region - Affects hearts in certain festivals. Select what fits NPC.
Birthday - When NPC's birthday is. Select season and day (1-28).
Relationships - Leave blank if no relation to any other NPCs. If there is
put NPC's name with info in ' ' (ex: Caroline 'mom').
Starting Location - The exact place your NPC starts. It needs a Location
as well as X Y coords. (ex: BusStop 22 5)
Display Name - This is what dialogue and maps use to show the character
name. It can be changed using CP conditions if desired.
It doesn't need to match the System Name:
(ex: Wizard system name Rasmodius display name will
reference Wizard as Rasmodius.)

NPC Gift Tastes - When giving your NPC a gift it looks through the universal lists and special
information you gave it through the Gift Tastes on how to react to the Item.
Simply add the Item ID to the number field and click Add to List. See
Cane's Modder's Resource for the Item IDs and Categories.

Images - The Creator tool does NOT import images. Once the file structure is made, place your
spritesheet and portrait images in assets/img and fill out the fields with the names.
Mispells will cause the NPC to fail.

Engagement Dialogue - You are engaged for two days with a datable NPC. Fill out these fields
or your datable NPC will not accept a pendant.

Dialogue Boutique - Opens the Dialogue Boutique Menu.

Schedule Studio - Opens the Schedule Studio

Manifest Creator - Opens the Manifest Creator

Manifest NPC - Clicking this will create the content.json with all the information needed to put
the other parts together. Clicking again will overwrite the last one.

================================================================================================

3. -=Explaination of Controls, Manifest Creator=-

Mod Name - This is the official name of your mod.

Mod Author - This is you and anyone who helped you.

Description - Do a small description of your mod.

Version - The three numbers represent Major Version.Minor Version.Bug fix (x.x.x). You have to
have at lease one item over zero. 0.0.0 is not allowed.

Unique ID - This distinguishes your Mod to SMAPI. A format example is provided.

Save Manifest - Creates the manifest.json in your [CP] folder.

=================================================================================================

4. -=Explaination of Controls, Schedule Studio=-

Schedule - This is the Key. You can use seasons, days or even certain situations. See Modder's Wiki
for more information.

Game Time - Set the time of current task. (600 - 2400) Incriments of 10.

Location Selection - List of locations from the default maps in vanilla. Select the NPC's Destination.

Add Custom Location - Place mapname of a custom area or something not on the list. (Town isn't on there)

<- Add - Adds the Custom Location entered above.

Coordinates and Facing - The X and Y coordinates of the destination map. Facing is which way the NPC will
face. ( 0 = up 1 = right 2 = down 3 = left )

Animation Set: Optional - If you have edited the data/animationDescriptions with custom animations, this
is where you put them for use in the schedule. (ex: sitting)
Leave Blank if you haven't added in your own animations to the animationDescriptions!

Dialog: Optional - A special schedule dialogue must be made to target string/schedules/ before this can
be used. Leave blank if you have not made this.

Add to Schedule List - Adds the Task to the Schedule Task List.

Schedule Task List - Shows the list of schedule tasks you added. The order will be top to bottom.

Remove Selected - Made a mistake? Select the mistake and click this to remove it from the list.

Clear all Data - Clears out the Schedule Task List - use if you want to make a new schedule.

Commit - This sends the Task list to the Schedule list below. This is where it is finalized and waiting to be saved.

Schedule - The bottom list is complete Schedules (Format: : ) waiting to be saved

Delete Selection - Removes selected Schedule.

Generate Schedule.json - Creates your Schedule.json to assets/schedules/Schedule.json

==============================================================================================

5. -=Explaination of Controls, Dialogue Boutique=-

Dialogue Key - This is a premade list of common dialogue keys. Select a key you need.
(Warning) There is Marriage Dialogue keys there too.. do not put them in a normally
Dialogue.json.

Custom Key - If what you need isn't there, you can add it by typeing it into the Custom Key field and
click <- Add. It will appear at the bottom of the list.

Generate Spouse Dialogue - This gets your NPC's system name and adds more dialogue to the bottom of the list
(ex: patio_)

Dialogue - This is a blank text field where you can add your standard and advanced dialogue. Need help?
Click the Dialogue Help link to go to the Dialogue section of the Modder Wiki.

Commit - Add the Selected Key + your Dialogue to the Dialogue List below.

Question Maker - Designed to make simple questions with a positive or negative response. Advanced users can
use the normal Dialogue field to create advanced questions.

Positive and Negative ID - These are number IDs for the game to remember your response to the
question. Make them high and random numbers off by 1 with each other.
(ex: 129801 and 129802)

Points Awarded and Taken - This gives and takes friendship points depending on the answer.
Max give is 250(1 heart) and Max take is -2500 (10 hearts).

Fallback Key - Custom Key that if you speak to the NPC next time (if the question should come up)
instead of asking the question, the NPC will say the Prequestion along with the
Fallback. (see use of $p).

Positive Key - This MUST be filled out. If you answer positively, the NPC will respond with this.
The NPC will also award you with the points you designated.

Negative Key - This MUST be filled out. If you answer negatively, the NPC will respond with this.
The NPC will also take away the points you designated.

Add Dialogue - Will add the question to the Dialogue List with the Key you selected on the top.
Will Also add the Fallback Key, Positive Key and Negative Key to the key list
above. Check the bottom of the list.

Dialogue List - List of completed dialogue before saving.

Delete Selected - Removes Selected Dialogue from the list.

Generate Dialogue - Creates Dialogue.json to assets/dialogue/Dialogue.json

Generate Marriage - Creates MarriageDialogue.json to assets/dialogue/MarriageDialogue.json
(Only certain keys are usable with marriage dialogue)

===============================================================================================================

6. -=Building an NPC, Step by Step Guide=-

A. Setup

Now that you have the NPC Creator opened your first action will be to create the NPC System Name.
Choose something that has no spaces for compatibility and then click Create NPC Folder.
If you go to this program's folder, there is an Export folder, within will be a [CP] folder with
your NPC's system name on it. Don't hesitate to take a look around. The folders are empty but the
file structure should be:

[CP]
|
|_____assets
|
|____dialogue
|
|____img
|
|____schedules

Now that you are familliar, let's make the NPC Dispositions. Click on one item each field that suits
your NPC. If you have no place to put the NPC yet, try BusStop 22 8. This will place the NPC next to
you in a test run. Remember if your NPC has no relation to another NPC, LEAVE IT BLANK.

With NPC Dispositions created, you can add gift tastes. You can customize their response by editing the
textfield of each reaction as you please. To add items, referr to Cane's Modder's Resource for ITEM IDs,
find the ID you want to add, put the number in the Item ID or Category field, then Click Addto List.
You can do this with as many Items as you want, however there are universal reactions that will apply.
Just make sure you get the items you want your NPC to react accordingly to.

Assuming you already made your spritesheet and portrait images, place those images in assets/img. Then in
the appropriate field, place their complete filenames. (ex: sprite.png)

Finally, create the Engagement Dialogue if you decided your NPC is datable. If the NPC is not-datable,
the dialogue will not be added.

At this point you can click Manifest NPC or move on to the next step...


B. Create Schedule

Click Schedule Studio to open the Schedule Studio. The first key you should use is spring, if you are new
to modding this will cover the schedule of the entire season of spring. As you see, I have already provided the
appropriate key for you. For more possibilites, see the Schedule section of the Wiki.

If you want to see if your schedule is working always make your first entry to 610 and move the NPC just a little.
Collecting coordinates can be done using either a third party program like Stardew Editor, or playing a new save in
SDV with the Debug Mode mod turned on. Gather your coordinates for each map, write them down somewhere and so you
can use/reuse them. If your NPC enters maps from mods, you can add the map name to the Location selection by typing
it's system name into the Add Custom Location text field and clicking <-ADD. The location will be placed at the bottom
of the list. After setting the time, location, and the Coordinates and Facing, you have the option to add animations
if you added them through your content.json. (This will be implemented into the Creator at a later time.) You may also
add schedule dialogue if you added a ScheduleDialogue.json targeting strings/schedules/. (NOTE: The appropriate way
to add schedule dialogue is to use the key.000 and onward. [ex: spring.000, Mon.000]. If you don't have any of those done,
or don't know how.. leave those blank.. they are not needed. Click Add to Schedule List and the task will appear on the Task List.

Keep the key until you completed all the task for that schedule. When all tasks on the list are there, click Commit to create the
schedule line at the bottom with the key as it's indicator. Try to make a schedule for spring, summer, fall, and winter. Those are the most
basic of schedules.

Once you are done.. click Generate Schedule.json and it will add the list to assets/scheudles/Schedule.json.

C. Create Dialogue

Click Dialogue Boutique to open the Dialogue Boutique. Each dialogue requires a key, which common keys are listed by default.
If you wish to add more, you can fill out the Custom Key text field and click <-Add. Additionally, if you have a datable NPC,
Click Generate Spouse Dialogue to add custom keys for your spouse NPC that needs it's name. [Ex: patio_, indoor_day_]
Select the key you wish to use.. understand that there are some keys that only work with a spouse (Indoor_Day, Indoor_Night,
Indoor_Rainy_Day, Indoor_Rainy_Night, Outdoor, patio_, Good#, Bad#, Neutral#, funLeave, funReturn). After selecting a key
you may add text to the dialogue field. There is a link to the Dialogue page on the wiki availabe if you wish to learn how to
structure dialogue. When you dialoge is complete, click Commit, and the Key + the dialogue will appear in the Dialogue list.
You may also click on a Key, then fill out the Question Maker to create simple questions. Filled properly, it will generate
the question dialogue to the key you selceted and add 3 new custom keys that you MUST create. The Fallback Key is for when
you speak to the NPC the next time the question would come up. Instead of the question.. the fall back replaces it depending
on what you put there. See the Wiki on how to use the $p command. The Positive Key is an immediate response to your positive
choice in the questions. It will give you the points you chose to award as well. The Negative Key is the same except it will
be for the bad answer you designate and take points away.. though you can have it take none. Click Add Dialogue for it to
add the Question to the Dialogue list with the key you selected and add the three Custom Keys.

Create all the dialogue you want with the keys provided and any custom keys you wish to make. When done, click Generate Dialogue to
get your Dialogue.json placed in assets/dialogue/Dialogue.json. Clear out the list, and add in MarriageDialogue to the list then click
Create Marriage to add MarriageDialogue.json.

D. Create Manifest

The Manifest is needed to allow SMAPI to see your mod. Without it it will just error and not load. Click Manifest Creator. A couple
of the fields have something there.. you can change those. Give the Mod a name, put your name in the author section, Add a description, and
make sure the Version is not 0.0.0. The usual unique ID we use is your name.modname (misscoriel.witch). This can be used in other mods.
When you're done, Click Save Manifest.

E. Finalize

Now that all of that is done, click Manifest NPC (Even if you did before.). Ensure that your sprites and portraits are in the right place.
Then copy your [CP] folder and place it in your Mods folder. If you filled out everything right, you will have a fully functional NPC waiting.

7. Troubleshooting


NPC didn't show up? Why?

A. Mod had an error - goto log.smapi.io and follow the directions there to parse a log. You can submit the link it provides to the Modding community.
It's likley that you inputted something wrong and can be easily fixed.

B. No Error, but NPC is not where I told it to be. - Did you put the NPC somewhere it shouldn't be? Also download the mod CustomNPCFixes.
When in doubt, talk to the modders.

Schedule works a while then NPC stops or NPC doesn't move. - Likley you are sending them to an invalid place to stand. If they can't find a way
to the area they will stop and not move. Talking to the modders will help resolve this.

NPC just says Hi on - Invalid dialogue. Check what you put there

NPC has a question to ask.. but instead says "..." - If you made a custom question without the question maker, you may of messed up a part of the question.

NPC Asks question but I get a sea of red in the SMAPI console. - Likley you did not fill out the responses.. Be sure to do that. If you didn't see a modder
and your problem can be resolved quickly.

NPC Doesn't want to get married - Do you have an upgraded house? What about engagement dialogue. IS the NPC Datable? Do you have Unique Courtship Mod installed?
If you have UCR, you need to add some dialogue to repond to bouquets and pendants. The keys needed
are already in the Dialogue boutique near the bottom.


================================================================================================================================================================

Special thanks to Pathoschild, Bwdy, and spacechase0 for helping me learn what I need to get this program started.