Skip to content

Instantly share code, notes, and snippets.

@jupiterbjy
Last active February 11, 2024 01:43
Show Gist options
  • Save jupiterbjy/79fc97a51b30848cd6c5eae768451139 to your computer and use it in GitHub Desktop.
Save jupiterbjy/79fc97a51b30848cd6c5eae768451139 to your computer and use it in GitHub Desktop.
Content patcher setting for ohodavi's wonderful portrait files for Stardew Valley Expanded.

Required Files (Download from Nexus mod)

  • Camilla SVE
  • Magnus Mermaid (SVE)
  • Sophia SVE
  • SVE AP ohodavi

File structure

Unzip all and structure files & directory like this. Rename Male Magnus.png into Normal.png and Female to Alter.png

[CP] Ohodavi Anime Potrait SVE
│  config.json
│  content.json
│  manifest.json
│
└─assets
    │  Camilla.png
    │  Sophia.png
    │
    ├─Gunther
    │      Gunther.png
    │
    ├─Magnus
    │      Alter.png
    │      Normal.png
    │
    ├─Mermaid
    │      Mermaid.png
    │
    └─Olivia
            Olivia.png
            Olivia_Beach.png

content.json

fill in content.json with following

{
    "Format": "1.20.0",

    "ConfigSchema": {
        "EnableMod": {
            "AllowValues": "true, false",
            "Default": "true"
        },
        "Camilla": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        },
        "Gunther": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        },
        "Magnus": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        },
        "Magnus_Style": {
            "AllowValues": "Normal, Alter",
            "Default": "Normal"
        },
        "Mermaid": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        },
        "Olivia": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        },
        "Sophia": {
            "AllowValues": "enabled, disabled",
            "Default": "enabled"
        }
	},

    "Changes": [
        // Camilla
        {
            "Action": "EditImage",
            "Target": "Portraits/Camilla",
            "FromFile": "assets/Camilla.png",
            "When": {
                "EnableMod": "true",
                "Camilla": "enabled"
            }
        },

        // Gunther
        {
            "Action": "EditImage",
            "Target": "Portraits/Gunther",
            "FromFile": "assets/Gunther/Gunther.png",
            "When": {
                "EnableMod": "true",
                "Gunther": "enabled"
            }
        },

        // Magnus (Normal - Male / Alter - Female)
        {
            "Action": "EditImage",
            "Target": "Portraits/Magnus",
            "FromFile": "assets/Magnus/Normal.png",
            "When": {
                "EnableMod": "true",
                "Magnus": "enabled",
                "Magnus_Style": "Normal"
            }
        },
        {
            "Action": "EditImage",
            "Target": "Portraits/Magnus",
            "FromFile": "assets/Magnus/Alter.png",
            "When": {
                "EnableMod": "true",
                "Magnus": "enabled",
                "Magnus_Style": "Alter"
            }
        },
        {
            "Action": "EditImage",
            "Target": "Portraits/Wizard",
            "FromFile": "assets/Magnus/Normal.png",
            "When": {
                "EnableMod": "true",
                "Magnus": "enabled",
                "Magnus_Style": "Normal"
            }
        },
        {
            "Action": "EditImage",
            "Target": "Portraits/Wizard",
            "FromFile": "assets/Magnus/Alter.png",
            "When": {
                "EnableMod": "true",
                "Magnus": "enabled",
                "Magnus_Style": "Alter"
            }
        },

        // Mermaid
        {
            "Action": "EditImage",
            "Target": "Portraits/Mermaid",
            "FromFile": "assets/Mermaid/Mermaid.png",
            "When": {
                "EnableMod": "true",
                "Mermaid": "enabled"
            }
        },

        // Olivia
        {
            "Action": "EditImage",
            "Target": "Portraits/Olivia",
            "FromFile": "assets/Olivia/Olivia.png",
            "When": {
                "EnableMod": "true",
                "Olivia": "enabled"
            }
        },
        {
            "Action": "EditImage",
            "Target": "Portraits/Olivia_Beach",
            "FromFile": "assets/Olivia/Olivia_Beach.png",
            "When": {
                "EnableMod": "true",
                "Olivia": "enabled"
            }
        },

        // Sophia
        {
            "Action": "EditImage",
            "Target": "Portraits/Sophia",
            "FromFile": "assets/Sophia.png",
            "When": {
                "EnableMod": "true",
                "Mermaid": "enabled"
            }
        }

    ]
}

config.json

Fill in config.json with following.

Set Magnus_Style to normal for male Magnus, I just love female version more!

{
  "EnableMod": "true",
  "Camilla": "enabled",
  "Gunther": "enabled",
  "Magnus": "enabled",
  "Magnus_Style": "Alter",
  "Mermaid": "enabled",
  "Olivia": "enabled",
  "Sophia": "enabled"
}

manifest.json

Fill in manifest.json with following.

Because of Wizard / Magnus, had to put Non-SVE as optional variant. Without it, when it's loading as Wizard's image, Original Anime portrait mod will overwrite this regardless of config.json.

{
    "Name": "OhoDavi's StardewValley Anime Mods (SVE)",
    "Author": "OhoDavi",
    "Version": "0.1",
    "Description": "Replaces the SVE Portraits with OhoDavi's Anime-like Portraits.",
    "UniqueID": "OhoDavi.SDVAnimeP_SVE",
    "MinimumApiVersion": "3.9.0",
    "UpdateKeys": [], 
    "ContentPackFor": {
        "UniqueID": "Pathoschild.ContentPatcher",
        "MinimumVersion": "1.20.0"
    },
    "Dependencies": [
        {
            "UniqueID": "FlashShifter.StardewValleyExpandedCP",
            "IsRequired": true
        },
        
        // Adding optional dependencies to override portraits on other mods.
        // As this is portrait-only mod - installing this implies intention to override.
        {
            "UniqueID": "OhoDavi.SDVAnimeP",
            "IsRequired": false
        },
        {
            "UniqueID": "Poltergeister.SeasonalCuteSpritesSVE",
            "IsRequired": false
        },
        {
            "UniqueID": "Poltergeister.SeasonalCuteCharacters",
            "IsRequired": false
        },
    ]
}

Afterward

  1. Zip [CP] Ohodavi Anime Potrait SVE while keeping directory. So it looks like this inside zip file

image

  1. Using Vortex or Stardrop, add mod and select zip file.
  2. Profit!

image

Configuration should also work too.


Screenshots

Demonstration of using with Seasonal Outfits (Both SVE & Non-sve).

image

image

image

image

image

Magnus Alter config image

@jupiterbjy
Copy link
Author

jupiterbjy commented Feb 7, 2024

Not sure why but Gunther just refuses to apply. As I added both of seasonal outfits as optional dependency it should be loading last, yet not changing.

Until then, remove Gunther folder from both of Seasonal outfits's at following locations if you wish to use Ohodavi's.

... /[CP] Seasonal Cute Characters/assets/Portraits/
... /[CP] Seasonal Cute Characters SVE/assets/Portraits/

image

Otherwise when in actual SVE contents, gunther will load fine

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment