Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Stardew Valley: Carmel NPC

Once upon a time I wrote a book called All Consuming. I thought it was good, but no-one else bothered to read it :(. Anyway, moving on from the traumadump, it followed a doctorate student Carmel. In a stroke of self-inflicted bad luck, she dug up and stole a Drosera plant that had a dryad’s soul bound to it. The book was horror / litfic (if I may be so bold as to say that).

Carmel studied botany, specifically carnivorous plants such as pitcher plants, venus flytraps, and sundew plants – like the Drosera in question.

(Sidenote: All Consuming is the reason my Markdown Converter converter was written. All Consuming was one big .md file, and I wanted to look at it in mdbook.)

I wrote it before I watched Twin Peaks, but All Consuming turned out to be very similar to it in terms of vibe. In the same way, Stardew Valley is very similar to Twin Peaks, but on the other side.

All Consuming <–> Twin Peaks <–> Stardew Valley.

Therefore, to me, it makes sense to bring in Carmel as an NPC. Tone down the horror from All Consuming, run the major plot points, and voila – one Irish doctorate student to seduce by gifting them something every day.

Again, rough idea. Maybe I’ll do it.

Creating Carmel

I decided to have a go at this – how hard can it be? So far it seems okay. That being said, Content Patcher seems to be a powerful tool but it demands a lot of json.

There’s probably some wonderful editor out there which will do all the json and what not for me, but I prefer to save 10 minutes of research by doing 2 hours of typing.

So far, I’ve managed to create an NPC that wears Abigail’s skin and has a single line of dialogue.

Skinwalker

As mentioned above, a lot of the actual heart events and story / dialogue can be ripped out from the book.

There is a concern lurking in the back of my mind that a single NPC of Carmel won’t be enough. The dryad in question is Olivia*, and she is integral to the story of All Consuming as Carmel is; it may be the case that two NPCs are required. It’s almost certainly the case that two NPCs will be required, in fact.

There is a further concern that Carmel needs somewhere to live and I’ll need to build her a house. As she is a PhD student, she’ll also need somewhere to work – I’ll probably hijack Demetrius’s lab for this, to make life easier. He’d probably be cool with a botany student sharing the space.

Giving into horrendous scope creep, I also think it would be cool to add seeds and growable carnivorous plants. Maybe without the bound spirits though.

*(Her full name is Olivia Sarah and she’s a doctor -> Dr O. Sera. I thought this was funny.)

She Lives

There’s a lot to do, so I just got started. I think it was pretty productive.

Carmel now has her own sprites. Kinda. She has a front facing body, a cool outfit, and animated walking / hair. From the side and back she’s still stealing Abigail’s skin, but a visage of Carmel is forming.

Unfortunately it was pissing it down when I took this picture but it give the idea: Best Friend Carmel

The sprites as is are “fragile”. I need to split them out into parts so I can easily swap and change them, add themed outfits, etc. Currently, all of Carm’s sprites are on a modified Abigail’s spritesheet. If I wanted to change a single part of her outfit, there’s four different sprites to modify (just for the front facing sprites alone). Having them all separated out into parts just makes things easier to change, and import into the relevant spritesheet as required. I’m pretty sure there’s some kind of tool for that. I’m sure I can whip something up if not.

Her first outfit was a white shirt and green trousers. I was aiming for some kind of dark academia look – it ended up as Peter Griffin. On my second attempt, I used these magical things called references and I think it went pretty well:

Werkkkk

Many thanks to this article for the picture: https://www.avintagenerd.net/2022/09/1960-plaid-fall-fashion-inspiration.html. I’ll almost certainly be returning to this site for more inspiration.

In further news, I’ve planned out her heart events, based mainly on the key plot points from the book. And if that wasn’t enough, I’ve also started adding her dialogue – she can say “Hello $farmer” now. As written, I hopefully won’t need a second NPC for Olivia. We’ll see how well that holds up in practice.

Speaking of heart events, she also has placeholder dialogue following these – whether this actually works or not remains to be seen. Rather than just use the standard “memory” keys, I’ve used where {...} clauses in the content.json to load the dialogue once a certain heart event has been seen, as this will work much better than for the story. Once the heart events are active (or at least can be in a completed placeholder state) then testing can begin.

A Timeskip Since the Last Entry

My steamdeck charger broke, which doesn’t sound too bad on its own – but I use my steamdeck for everything. It’s my main computer at this point (in desktop mode), so being unable to use it is a pain. Luckily, one quick online order later, I got a new charger.

First things first: I hate JSON.

Secondly, even before the charger broke, I apparently missed ~3 sessions worth of updates.

Dialogue

Carmel has a whole bunch of dialogue for her. She has a line for each season start, a single “set” of daily lines, an intro line for the first conversation, and generic dialogue mapped for the heart events as above (by which I mean she has dialogue following the heart events that fits the tone I want, but it’s only a single set so will get boring).

Still to write is festival dialogue, more “general” dialogue, gift dialogue, place dialogue, and dialogue for the heart events themselves. It sounds like a lot all listed out, but a fair amount will already be written in the book itself, so it’s just a case of ripping it out.

On a separate note, I have decided to go the path of ripping direct quotes from All Consuming where possible. It makes sense to me to do it this way.

Sprites

I broke up Carmel into a whole load of pieces. Limbs, head, face, hair, fringe – you name it, and there’s a chunk of Carmel to match.

As part of this, I also made her a load more sprites for the side-on and rear views. This includes the frames to make her walk! She has a hell of a limp because something isn’t quite lined up right, but she happily hops along regardless.

So far? Hasn’t actually made things easier. Mea culpa: I have simply stuck the Carmel Chunks into a single big Pixelorama file to copy paste from, rather than actual composable assets.

Looks like I’ll need to refine this somewhat

Schedule

Carmel also has a schedule too! She starts at the bus stop at 6:10AM, then goes to work. Her being a botanist, she goes to work in the lab with Demetrius. Again this is somewhat based on the book – there, she works in Brookheda University as a doctoral student.

Sidenote: in the content patcher language(?), Robin’s house is called ScienceHouse despite the fact that – to me, at least – the main function is being the carpentry shop. May as well call it MaruBedroom.

Im any case, after a long day at he lab, Carmel goes and looks at plants in the forest. After that, she goes back to the bus stop – except on weekends where she spends all day in the forest bemoaning the fact she can’t do her research; and in winter where she goes straight back to the bus stop. The plan later on is for her to go to a real home, the saloon, the library, etc.

Events

Thus was supposed to be today’s post, until I discovered how lax I’d been previously.

Carmel now has her first heart event, for 2 hearts.

I say event – its a placeholder where there’s a black screen and two pieces of dialogue from her. But it triggers where it’s meant to, and when it’s meant to which is a success in my eyes.

Farmer ModTest was my Grandfather’s name…

…Please, call me Zoe.

So far I’ve been using my real character for testing. This has proven to be unwieldy and carries a risk of fucking the whole save up, so I’ve created a new farmer with a whole bunch of cheats to test how happy Carmel is.

My actual save still has Carmel in it, but I dont have to use timeskip cheat and friendship level editors to test her events/dialogues/etc.

That concludes today’s post. I’ll come back and add images at some point. Tune in next time, whenever that may be. Probably more heart event stuff.