Stardew Valley

About this mod

Add higher resolution portraits and easily switch between different Portrait Mods.

Requirements
Permissions and credits
Changelogs
Donations

Portraiture

by Platonymous

This Mod allows you to add Portraits with a higher resolution to the game and easily switch between Portrait Mods.
Press P to change Portrait-Set when the DialogBox is open.
Press I to toggle between the larger portrait above the dialogue and the normal ones when the DialogBox is open.
Press O to fix or unfix a portrait-set selection of a specific NPC when their DialogBox is open, when fixed they will ignore further set changes and stay as they are.
This Mod itself includes no Portraits.

Important regarding HDP support (SDV 1.5.6 & 1.6 alpha):
If you download an want to use a HDP content pack with this, put it into the regular mod folder, NOT the Portraits folder.
If the manifest.json file of that pack has hdp in it's  dependencies, but you do not have hdp installed, remove the dependency and select HDP when picking a portraits-set in game, to have it show up as intended. (This will still work with HDP installed, it does not require the dependency to be set)
If you leave or add the HDP dependency to an HDP pack and allow sideloading in Portraitures config.json, Portraiture will attempt to load them and give them there own set, while otherwise HDP contentpacks combine into the HDP set and can't be seperately selected. This only works if the pack has the file-structure that Portraiture requires, which is often the case. Despite that, it is recommended to use the non-sideloaded approach to ensure the portraits work properly.
(If HDP is installed, the HDP option and Vanilla option in the set selection will look the same)

Important regarding PyTK:
Despite claims to the opposite, this mod does no longer require PyTK unless you use a version older than 1.10.0. Even if a content mod for this claims that it relies on PyTK, it does not 

Version 1.11.8
Change MaxAbovePortraitPercent in the config to adjust the size of the abovebox portrait.
Sideloading of HDP Packs is now deactivaded by default. Packs added without the HDP dependency set in the manifest are still loaded in the HDP Portrait option. This can be changed in the config. Packs sideloaded like this may not work as intended by the author as the contentpatcher part is ignored, but unlike non-sideloaded packs have their own option in the portrait selection. Non-sideloaded packs show only in the HDP option and may override each other.
If HDP is installed, the HDP and vanilla option should look the same.

Version 1.11.0
Support for HDP content packs. (Install HDP Packs like normal, not in the Portraits folder)
New Above Box Mode (active on default, can be deativated in the config and by pressing the Style-Change key while in a dialogue (Default: I)
Fix portraits to NPCs by pressing the fix/unfix kex (Default: O) If portraits are fixed, they aren't affected by the genral portrait selection. (Saved per SaveFile)
This has been already implemented, but I didn't write it here: Press the menu key (Default: M) when in a dialogue to open a portrait selection menu.
I should also point out that since the last version Portraiture no longer has any other dependencies other then smapi.

Version 1.6.3 now supports Content Packs
Content Packs must contain a manifest.json file but otherwise work exactly like other folders that you would put into Portraiture/Portaits.
Unlike regular Portrait-Folders, Content Packs can be installed by copying them directly into the Mod Folder.





How to install a portraits mod with Portraiture:

- Download and install Portraiture for your version of SDV
(If done correctly the manifest.json should now sit in "/Mods/Portraiture/manifest.json")

- Download a portraits mod you want to use for ex. this one 

- Create a folder in "Mods/Portraiture/Portraits" that you name however you like, for ex. "DCBurger Hi-Res" and extract the portrait files inside it.
(If done correctly the file for Abigail would be located at "/Mods/Portraiture/Portraits/DCBurger Hi-Res/Abigail.png")

 - Start the game and talk to someone. Once the DialogueBox is open press P to change portraits till you see the right one. It will also shortly show the name of the folder above the left top corner of the DialogueBox, in this case "DC Burger Hi-Res". Whatever folder you pick will be saved for all portraits and stay that way after reloading until you change it again yourself.

- You can create as many folders as you like to switch between and fill them with downloaded Portrait Mods or mix your own. Also works with Regular XNB Mods. (In that case it should look something like this: "Mods/Portraiture/Portraits/DCBurger Low-Res/Abigail.xnb".)

- That's it. And if you get tired of reading yourself: try PelicanTTS.


Video by ThatDenverGuy:



For portrait creators:

Any size works, but the Dialog Box might open a little slow if your portraits are over 512x512.
Hi-Res spritesheets need to be PNG files and need to be formated exactly as before (just scaled up), 
only that all png portrait spritesheets must contain at least two portraits, even if the original only had one.

How to make a Portraiture mod:

There are two ways to make a mod for portraiture, either as a contentpack or just a folder to copy into Portraiture/Portraits, both work almost the same:

Create the portrait-spritesheets for the NPCs you want to replace, they should idealy be png files. The aspect ratio of the spritesheet and the layout of the faces needs to be the same as in the original and all faces need to be the same size, which size is up to you. The only difference to the original is that every spritesheet needs to have a least 2 faces (can be the same) even if the original only has one.
The new spritesheets needs to be saved with the same name as the original eg. "Abigail.png". Copy all your spritesheets into one folder and give it a unique name like "MyPortraitCollection". If you don't need it to be a contentpack, your done at this point.

Otherwise you need to add a manifest.json file either next to the portraits, or in a new folder called smth. like "[P] MyPortraits" with the folder that includes the spritesheets copied inside it. The manifest would look like this:

{
    "Name": "My Portrait Mod",
    "Author": "Me",
    "Version": "1.3",
    "Description": "My Portraits",
    "UniqueID": "My.Portraits",
    "UpdateKeys": [ "Nexus:00000" ],
    "ContentPackFor": {
        "UniqueID": "Platonymous.Portraiture"
    },
"Dependencies": [
{
"UniqueID": "Platonymous.Portraiture",
"IsRequired": true
},
]
}

And then you're done.

Source Code: https://github.com/Platonymous/Stardew-Valley-Mods/


If you have any questions you can usually find me on the Stardew Valley Discord under the username Routine#8715

If you like my mods and want to support me, you can do so via Paypal or on Patreon.