Hello!

If you're here, I assume you weren't able to convince your portrait artist to adapt their sheet or simply want to throw together something while you wait! If you already roughly know what you are doing, please skip this article and go to the compatibility section of the mod description for a break down of my portrait set and sprite set. I updated and numbered the sheets to mark out what is new.

This guide assumes you understand the basics of image editing, but I will try to be as beginner friendly as possible.

Please always make sure you have permission to post edited sprites/portraits if you are not making one from scratch if you are intending to publish your version as a standalone mod.

There will be spoilers (obviously).
Did you make your own compatible sprite/portrait? Comment a link and I will add it to the list of compatible mods!

Portrait Adaption
Understanding the Portrait Sheet
Stardew's portraits are organized into sheets that are two portraits wide, and however many portraits long. The game splits this sheet into individual square cells with a number identification that get called in game to display the correct portrait. The number starts at 0 instead of 1. In game, the portraits are called with a "$" followed by either the number or in game reference tag which is a letter such as "h". To keep things simple, we will only cover the number tags here:

Example from Gigi's original wizard portrait sheet:





In this case, calling for portrait $0 will call his neutral-positive expression and calling for portrait $1 will call his happy expression.

For the game to cut up the sheet properly, the dimensions of the sprite sheet are very important. The game will just assume the sheet is always 2 portraits wide so it calculates how many portraits there are by the length. The default max width without the use of a mod such as portraiture or HD portraits is 64 pixels wide, so the portrait sheet should be double that. For vanilla sheets, that means 128px. For Gigi's sheets, that means 512 (because 1 portrait is 256px wide).

Portraits that are not 64x64 px must be loaded in a different method than the default one such as HD Portraits,  Portraiture or via pytk.


Now, let's take a look at SVE's standard 7 expression sheet:




Each portrait is 64x64 in size. There are a total of 4 rows, which means the sheet's total size is 128x256. My sheet features a total of 16 rows of expressions. If I were to scale them according to the vanilla portrait size, the size of my file would be 128x1024.  Since my portraits are 256x256, the size of my sheet for the full 32 expressions expands out to 512x4096. Yes, it is that big!

Please check the size your portrait mod and calculate the total length accordingly and expand  your image to that size.

Tip: If you are using photoshop or a similar more advanced image editor, you can set a grid with guide lines to help you place the portraits in the correct position.

Spoiler:  
Show


Why it's Important to Adapt Your Portrait Mod

As explained above, stardew will attempt to call for the correct expression via the slot number. If that expression does not exist, it will call a blank instead. Not all portrait mods have the same expressions in similar positions either.  This difference results in very unexpected expressions being called rather than the best one for the occasion. This can completely ruin the feeling of events and dialogue so I highly recommend you attempt to adapt your portrait mod if you insist on using it before compatibility is added.


Locating Your Portrait File and Displaying in-Game

The location of the file largely depends on how your mod author in question decided to pack their portraits. Most of the time, it will either:
1. Included as a separate mod. -> In this case it will probably just be in the mod folder. This type usually has a content file that tells the game to overwrite the existing portrait with the file they are calling.

If it is in .xnb format instead of an image format like .png, you will have to use an xnb unpacker to open it. Since you will likely not want to repack it as an xnb, you will have to open the content.json and edit the file name to be .[image format] instead of .xnb. Most of the time to a .png.

You shouldn't need to do this for most newer mods since most authors use .pngs these days.

My portraits use Portraiture so there is no native overwriting. As long as you didn't install portraiture, it should display the correct portrait.


2. Some sort of Portraiture content pack or loose image. -> In this case, open your portraiture folder or the content pack folder and look for the correct image. Just edit it and save it as normal.



Breaking down RRRR's Portrait Sheet
The Original 12
My original sheet evolved out of the 12 expression sheet used for a large number of Wizard portraits. I've also imported the special "pink wizard" featured in the 4 heart event from SVE's shrine of illusions scene, but moved to a different position.

To make this easier to digest and parse, I will slice the sheet into chunks and compare them to an existing 12 expression sheet.
Important: All portraits have expressions that are slightly different. This is due to the personal interpretation of each artist and what pack they designed their portraits for so sometimes there aren't comparable expressions.

Note: Magnus in RRRR canonically wears earrings as personal artifacts. If your portrait does not feature earrings, it may be a bit confusing so you will have to imagine them or add them in yourself.

Below is an example of how I would adapt the first 12 expressions from another pack to RRRR.
Blue is fine. Purple is move portrait as is. Pink is move/duplicate and then edit.


Explanation:

Portraits 2, 5, 8, 10 are fine as is (even if not perfect).
I would move 3 to 7's position and swap 9 and 1 with each other.
I would move 6 to 4 and slightly adjust the position to be slightly more "sultry", move 7 to 6 and give him a blush, Duplicate 0 to 3 and give him a bit more of a serious look. I would duplicate 5 and move it into 11 and give him the "dark circles" from 10.

If you do not have the art ability to edit portraits (or even splice them), you would have to approach this slightly differently. In that case you would just have to find the most comparable expression and then substitute them in. There is nothing wrong with having duplicate expressions. Sometimes there just isn't a better fit and it's better to have an expression pull double duty than accidentally end up with something strange.

If you have trouble reading the expressions, here is roughly how I would describe the 12 expressions above and their usage:

A few base guidelines first:
  • The more gold in his eyes, the most intense the positive emotion.
  • The opposite of the above is also true
  • $3 and $0 are most commonly used before he gets to know the farmer properly. His expressions are a lot more expressive after he feels more secure with them.

The expressions:

0. Neutral - lean positive
1. Pleased/happy
2. Sad/Apologetic
3. Pensive/ serious
4. Blush, leaning a bit more flirty. He uses this face a lot when propositioning you to "things"
5. Angry, leaning more annoyed or forceful with a touch of confused. Imagine kind of a Why?????? >:( kind of vibe.
6. Blushing happy/pleased
7. Somewhat surprised
8. Surprised in a happy way
9. Knowledgeable smile, almost slightly cheeky in a way. Mostly used when he's sharing knowledge.
10. Sleep deprived - Not happy
11. Sleep deprived - Fuming over something


If you are working with a 7 expression sheet, you have a lot less to pick from. Good luck to you!

New Block 1 and SVE pink
The next is a very small chunk. It basically features SVE's pink Wizard for the 4 heart event and an extra very shocked expression. You could easily replace the shocked expression with just a normal surprised expression since it is more or less almost exclusively used for the pregnancy event. As for SVE's pink, this is up to you. If your sprite doesn't account for the "pink" then I would just suggest replacing this with whatever you have in slot $0 since your sprite likely doesn't account for the "pink" demonstration either. This will obviously make the scene a little odd since he says he's giving a demo but doesn't do anything. Hahaha.




Pink being used in the event:




Beach Block
This block is fairly self-explanatory. It basically shows the original 12 expressions but with Magnus disrobed. Normally, you would split this off into an extra _beach portrait sheet and call for that change of portrait sheet in game, but from my experience with Portraiture, this is often a bit buggy and sometimes doesn't work properly. To make sure it will work 100% of the time, I baked the beach portraits into the main sheet. 

This section is most often featured when the "spicier content" toggle is on (intimate things) and in two Y3 fall+ dates (who the heck gets in a hotspring with all their clothes on?).

If you are alright with this oddness, feel free to just simply duplicate portraits $0 to $11 into slots $14 to $25

Note: Magnus in RRRR canonically is covered in scars that he largely hides under his robes. If your mod does not feature them, you will have to imagine it or add them in yourself.
Spoiler:  
Show




Completely New (Problematic) Block SPOILERS!
This section is the one that actually causes the most issues. These expressions were created for some very spoiler heavy events in Y4 spring. They are very "end game" so you may never even trigger them. To give a very vague summary, it's basically Magnus spiralling into paranoia for a brief period of time so the expressions are altered to show him at his darkest. It's very important that you substitute these expressions with something as similar as possible or the whole roughly three week affair will not hit the same.

The ideal candidates for adaption are $10 and $11 from the 12 expression set since they are already made with the intention of showing him sleep deprived and stressed.

Note: $29 is also occasionally used outside of Y4 for when he is recalling some of his darker moments.

I've put this behind a spoiler tag for the people who are just considering editing the portraits, but if you are committed, proceed ahead. I've also listed detailed explanation/ intention description in the case someone wants to tackle a full redraw without having to interpret what I was trying to do. 

Spoiler:  
Show

Expression break down:
$26
: "Dead eye look" -> Magnus put at high stress. He is struggling but suppressing how much of it comes to the surface.
$27: "Shocked Despair" -> Should give the impression that the world is crumbling around him. Basically his full paranoia and despair peeking through.
$28: "Tearful acceptance" -> An end to the breakdown. He's accepted the circumstances for what they are, but reluctantly.
$29: "Pensive Lament" -> Imagining or remembering dark futures and pasts. Occasionally used in normal conversation and events.
$30: "Breakdown" -> He has no idea what to do anymore and is breaking down in tears because of it.
$31: "Absolute Despair" -> Alternate version of $27. His nerves finally snapped. He can't pretend it's alright anymore.




Finishing Up
Once you have completed all your compatibility work, make sure to save everything into the correct format (One long image file with the portraits in 2 columns) and the correct order. You can put both images side by side to confirm that something didn't accidentally get placed in the wrong position. Once it's good to go, update your portrait file with whatever format it needs and you should be good to go!

Here RRRR's entire portrait sheet stitched back together and labeled.

Spoiler:  
Show




Sprite Adaption

Locating your Sprite Sheet
More or less identical to how you would locate your portrait files. Everything said there applies to here, but there are a few things to keep in mind:

1. If you use some sort of seasonal sprite pack, you will have to change ALL versions of the sprite. This means you will have to edit the spring version, summer version, fall version, etc etc.
2. There are no mods that I know of that let you easily switch between multiple sprites like portraiture does for portraits, so that means sprites are individually overwritten by the mod they are from. If you change the file format, you will have to open the content.json and fix that yourself.


Understanding a Sprite sheet + RRRR Breakdown
Practically identical to how portraits are handled, but instead of 2 columns sprites are instead split into 4 instead. Length is handled the same way as portraits. The way they are called is also similar with frame 0 being the very top left sprite.  My sprites are laid out the same way as SVE's sprite sheets so there's no need to rearrange anything if you are working with a pack that works with SVE.

Here is a direct comparison:


You will notice that there are visually a lot more sprites, but not all of them are new. Some are simply placeholders for the sake of not having him disappear if you accidentally called the wrong sprite frame for whatever reason. I do have several new sprites that are adapted from existing sprites. I'll lay them out how and when they're used here:
Purple for altered. Pink for New.


Here are the same frames magnified and labelled:
Here is a breakdown of the changes/ how the frames are used:
Kiss frame: I moved his arm up and adjusted the head position versus how it was originally. The placeholder frames are all the original kissing sprite.
Sleeping frame: I flipped this. It's just personal preference since spouses sleep on the right side of beds. I may eventually include a sleeping gown like the SVE edition.
32: This frame is used for "holding hands". There is a lot of this all over the mod. This one is important to adapt.
33 - 36: Adapted from the mid-stand up sprite in position 21. This may or may not be possible for your sprite set. This is used when he is sitting down and sharing a book with the farmer and the slight changes to fit those events.
37 - 38: Used for a the birthday event where he gifts the farmer the earrings included in the fashion sense pack.
39: Kneeling while facing up. This may or may not be easy to adapt since the cloak blocks a lot of the work involved.
40: Another version of 33-36 where he turns his head to look right.



Beach Sprites
RRRR features its own custom beach sprites. It only has a walkcycle and kiss frame so it should be relatively easy to adapt.



Update: I've decided to add a beach sprite toggle just to make sure people aren't calling errors when they don't have one.

If you aren't able to or don't have the ability to, I suggest toggling beach sprites off in the new config option. 

If you are looking to add beach sprites into your existing mod, adding the following code into your sprite replacement mod content.json somewhere beside the base sprite load.  The below code assumes that you have the image file in the base folder where the content.json is.

 {
           "Action": "Load",
           "Target": "Characters/Wizard_Beach",
           "FromFile": "Wizard_Beach.png",
        },

 
If your mod uses nested folders, please format it like this instead with whatever folder location it is in:

{
           "Action": "Load",
           "Target": "Characters/Wizard_Beach",
           "FromFile": "assets/Characters/Wizard_Beach.png",
           
        },


Making Sure it Displays In Game

RRRR inherited the sprite toggle from Parrot's RomRas SVE so this step is very easy assuming you have the mod config interact mod installed (which you should from SVE). Simply locate RRRR's mod config in that list under its full name "Romanceable Rasmodius Redux Revamp", and switch the "Sprite" setting from "Use Included" to "Use Custom". This will prevent RRRR from overwriting your sprite mod. If you are using my Vanilla-ish Portrait and sprite mod, you do not need to do this. The mod will automatically display the correct sprite.

If you are not replacing the beach sprites and don't plan to use them, switch the "Use Beach Sprites" setting from "true" to "false". This will prevent RRRR from attempting to call an asset that doesn't exist and causing an error.



...And that's it!

I hope this guide helps you in your quest to make your personal portraits and sprites work properly!

Article information

Added on

Edited on

Written by

Jellonip

18 comments

  1. calccium
    calccium
    • member
    • 0 kudos
    Hi, I'm a bit confused on the sizing of portraits. I plan on trying to make my own portrait mod sort of from scratch that is past the 64x64 limit, is there a tutorial or an in depth way to be able to increase the size of the portraits either through xnb files or configs? Since I want to make each expression about a specific size that's a lot bigger than 256, like maybe about 512
    1. varasqueee
      varasqueee
      • member
      • 0 kudos
      Were you able to figure something out for this? Experiencing same problem at the moment!
  2. Wahhbajakk
    Wahhbajakk
    • member
    • 0 kudos
    Can someone tell me if this is possible:

    I want to mod my portraits to appear sort of above the dialogue box in the spirit of Rube Factory 4. This means no portrait box and they'd need to be more than 64x64. I'd also probably have to change the height of the dialogue box. But before I do it, I want to know if it's possible at all.
  3. s4njist4r
    s4njist4r
    • member
    • 0 kudos
    Using procreate pocket and I don't know how to order the portraits? They always end up with the background even though I've removed it, and are never centered
  4. deleted145222873
    deleted145222873
    • account closed
    • 8 kudos
    Hello thanks a lot for the guide! This helped me start making my own portrait mod. I had a question im looking through the dialogue and see a lot of lines like this: (Abigail example) "AcceptGift_(TR)BasiliskPaw": "Disgusting... I love it!$h",   "AcceptBirthdayGift_Negative": "Hey, you remembered my birthday... Thanks, @!$h#$b#Oh, it's, uh... *sniff*... what is it?$s"

    Which frames do the $s, $h and $b represent? 
  5. aviroen
    aviroen
    • premium
    • 23 kudos
    Hello! Currently working on world sprites and stuff so apologies it's a wip but I made a rugged (no cowboy hat sorry cowboy lovers) Magnus
  6. SigmaFrieza69
    SigmaFrieza69
    • member
    • 0 kudos
    hello i want to change a portrait on another mod can you tell me how do the letter tags and what letter tag is the blush? thanks!!
    1. Jellonip
      Jellonip
      • premium
      • 160 kudos
      Check the wiki in the modding npcs section.
  7. YaShinomi431
    YaShinomi431
    • member
    • 0 kudos
    hi! i want to use that gigi's portrait for this rrrr mod also to complete all the portrait without using any imagination (lol) so i just want to know if you could drop me the entire portrait sheet without number please? thank you so much!! :D!!
    1. helpfulDeathgod
      helpfulDeathgod
      • member
      • 1 kudos
      It's in the list of compatible mods at the top.
  8. hiiro123333
    hiiro123333
    • member
    • 0 kudos
    Hello, I used a different character, but the action during the kiss is a normal standing movement, is there any way to solve it?
  9. StarDust0001
    StarDust0001
    • member
    • 119 kudos
    Gn, I'd like to make my WIP Wizard sprite to be compitable with RRRR. Can you tell me the meaning of the final frame after the wedding ones? It seems like it appeared in LFL and RRRR at the same time, but I saw some drew it as a sleeping frame, and others draw it as an ordinary standing one. So I'm very confused...
    image here→https://ibb.co/0rGxJnp
  10. SofieIsGrey
    SofieIsGrey
    • member
    • 1 kudos
    SageFelix made a version of their portraits that's compatible with RRRR and I noticed that it's not on the list, but I think quite a few people would like it and having it on the official list would make it easier to find. 

    Is it weird that I'm commenting for a portrait set that isn't mine? ...maybe.

    But either way you can find their mod here!
    1. Jellonip
      Jellonip
      • premium
      • 160 kudos
      I don't actively check for mods so if the author/a fan doesn't mention it to me, I have no idea it exists!

      Thanks for commenting about it.