Tips for Making Events by Arknir

From Stardew Modding Wiki
Jump to navigation Jump to search

Mod maker Arknir recently held a Q&A in which he answered questions about how he creates his acclaimed events. The following is a lightly edited transcript of his replies.

Camera Panning

I wanna learn more on how to properly pan the camera


With camera panning, it helps to keep in mind that player's zoom level. Some players play on the default 100% whereas others play on 75% zoom level. If you know about patch reload [manifest ID], you can continuously edit your viewport by saving the changes to your event and updating your mod in-game by "patch reloading" your mod and then using debug ebi [event ID] to see the changes you make.

Resources

What resources do you use for events? Like lists of variables and such, or just the official wiki?

Oh i have some good sources!

https://stardewvalleywiki.com/Modding:Event_data --> This is good for knowing what conditions and commands there are for events

https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=693962458 --> This is good for music, sounds, character sprite sheets, emotes, portraits (basically the god sheet)

Scripting

How do you "script" your events? Do you write the dialog first?

I actually do write a scene first, as if i'm writing a story (in word and notepad). Sort of like how movie directors write screenplays. I come up with a scene first with the dialogue and banter between characters, plan their movements and actions, and then try to find good locations in Stardew Valley to recreate the scene.

NPC Characterization

Do you find it difficult to keep NPCs "in character"? Are some NPCs harder to include in events than others?

If you have trouble keeping NPCs in character, you can unpack and browse their vanilla dialogue files to find their "voice." You can also keep in mind their schedules, such as who they hang out with and their mannerisms of speaking/behavior. Keep in mind their perspective.

Farmer Location

What are your thoughts on where to leave the farmer after the event is completed?


I personally like to leave the farmer at the position where they ended the event on, with the command /end position <x> <y>

Conversation Topics

Do you like to have NPCs refer to events after they've happened?

You can have NPCs refer to the events that the player has seen through something called conversationTopics. It basically acts as dialogue for NPCs that triggers for a certain amount of time after the player has triggered the event. It is super useful for when something happened and a bunch of NPCs were affected (example: A monster attacked the town and everyone is scared). Adding conversation topics help bring immersion to the story/event when talking to the NPCs with these conversationTopics


If you use conversation topics and an event happens on, say the Spring 1 Y1 (like Luci's appearance), how do you feel about the CTs being layered with other active topics, like the introduction quest?


The downside to this specific example is that it breaks immersion if the player has not talked to the NPC affected by the conversation topic before. For example, speaking to Haley for the first time will trigger her introduction dialogue. Talking to her a second time will trigger the conversation topic, which may feel very out of place.

Simultaneous Movement

Can you simultaneously use other commands as an npc is shaking or jumping?

Yes, you can use other commands when the NPC is shaking or jumping. Just keep in mind the event script takes priority of whichever is placed first. For example, if you have

jump Vincent/move Vincent 3 0 1/

Vincent (the actor) will jump while moving. Also, you can have several characters jump at the same time.

jump Vincent/jump Jas/jump Eloise

will make all these actors jump at the same time. You can separate their jumps by adding pauses in between.

Crossovers

How do you feel about crossovers with other NPCs, such as having yours refer to events that happened to another custom NPCs?


This is a personal question. I personally like NPCs referring to events of other custom NPCs because it feels like a more close-knit community and adds to the world building and immersion for the players. If you are unsure or want to collaborate with another NPC author, you can message them on discord and ask for permission or help.

Event Limitations

Do you often find yourself changing your event script because of limitations? Or do you work around the limitations to make your vision work?


This question is very broad, but there are ways to work around limitations. Like if I want the farmer to walk onto a building or ignore whatever is blocking them, I could use the command ignoreCollisions farmer. ㄴDo you need to add a prop to your event? Like adding a beer on a table? Use the addObject command from the Event Data wiki. It uses the springObjects.png and you can place any of the 250+ objects into your event and remove them at will.

Is it dark and you need light in a certain place? Use the addLantern command: /addLantern 735 x y 1. This will add a lantern with the light wherever you need. If you want to remove the lantern and just have the glowing light, you can use removeTemporarySprites to get rid of the lantern but leave the glowing light behind.

Need to place a character somewhere out of reach? Like have them sit on the railing of a fence/bridge? You can warp them, change their frame (example: sitting frame), and positionOffset them to make the positioning just right. Position offsetting moves the NPC a number of pixels with the x and y coordinates.

Learning

How did you learn all this stuff?

Months of exiting the game, saving the changes i made in the event data, and then reloading the game over to test the event over and over again. I only recently learned (from Hime) you could actually make changes to the event while your game is open by typing in patch reload [your mod manifest ID] into your SMAPI. I also bugged modders in the #making-mods SDV discord on every little thing about events, such as Lemurkat. Asking questions is how you learn


Hidden Knowledge

Is there any scripting stuff you figured out on your own that isn't documented anywhere, or isn't explained well if it is documented?


Something that is not explained as well would probably be temporary maps. When you change the location of the event to a temporary map, the temp map appears darker than it should be. You have to add bgColor 0 0 0/ambientLight 0 0 0/ directly after changing to the temporary map to reset the natural lightning, otherwise the lighting will stay dimmer than usual. For example:

changeToTemporaryMap NightSceneMaruMap2 false/bgColor 0 0 0/ambientLight 0 0 0

Event Length

How do you feel about event length. What's a good timeframe for a good event? 1 minute? 5 minutes?

1 minute is a very good average even among vanilla events, also nice to strive for. 2 minutes are also nice. Three minutes+ you might want to simplify dialogue. I like long events, but you also have to keep in mind people's attention span. You can also build up to the 5-minute events with previous events and quests.

K.I.S.S. - Keep It Simple Stupid | Helps you as the author make things manageable and makes it easier for the player to follow what is going on.

※ Show, not tell (at least sometimes). It can sometimes be more fun to watch the scene being played out versus having to be narrated by an NPC. Though, sometimes it is better to have an NPC do a monologue/narrate what happened.

※ Story is amazing, but you can also break up events if it seems like too much for the player in one sitting. In my upcoming Lavril mod, I have a chain of events that trigger with certain conditions after viewing the previous event.

Number of Events

Do you have a general rule of thumb for how many events to script? How do you feel about "event overload"?


With "event overload," try not to burn yourself out with the stress of events.

※ Even if you manage to code only one event, give yourself a pat on the back -- The first step is usually the hardest and you're amazing.

According to vanilla game statistics, bachelor/bachelorette NPCs have one event every 2 hearts (with an extra event at 14-hearts). For non-dateable NPCs, it's usually one event every 4 hearts. However, You can have as many events as you want.

These events are usually milestones that show character development, progression of the player's relationship with said NPC or showing fun sides to the NPC. You can go above and beyond by adding an introduction event, or even have fun storylines that activate when you're friends with multiple NPCs at once or other certain conditions.