Stardew Valley

File information

Last updated

Original upload

Created by

Gathouria

Uploaded by

Gathouria

Virus scan

Safe to use

About this mod

Adopt new pets, find wild horses, and randomize and select custom skins for everyone!

Requirements
Permissions and credits
Changelogs
Mod Updates Are on HIATUS
(06/17/2023)
Due to life currently being very hectic, I have not been keeping up with mod maintenance.

If you're a SMAPI modder and you'd like to help push updates through to get the mod working with SDV 4.0, I'd love to help you out! While working on the mod personally has been touch-and-go, I would love to see other players get to continue using this mod.

While I'd ask that Harmony not be added to the mod, as it can introduce a lot of bugs, I am not familiar with it should I return more actively, and the mod's functions do not require it to work properly, I have various private beta, cleaner versions of the code mid-refactor that I can share to help out anyone trying to port A&S into 4.0

I can be contacted most reliably through Discord (username gathouria). Send me a private message, no friend request required.

______________________________________________________________


Adopt new pets, find wild horses, and randomize and
select custom skins for everyone!

Inspired by and based on Entoarox's More Animals mod


** The current versions are BETA. Please use caution **

The newest files (3.2.0-beta.1.8  &  4.0.0-beta.1.6.7) are the same files that I have been "unofficially" circulating with Corrin, as they have not been as thoroughly tested by my beta testers as the typical releases due to real life health issues. If you've already downloaded the "unofficial" copy, check out the multiplayer-compitable beta file!

Information shown below and in the FAQ may be outdated, as the multiplayer-compatiable update has changed much of the back-end coding.
It will be updated at a later date.



  • Allows loading custom farm animal, pet, and horse sprite sheets for use in game, with the same naming convention as More Animals
  • Randomizes each animal's skin when created or born
  • Lets you select a specific skin for each farm animal, pet, or horse whenever you like
  • BFAV compatible
  • Run across wild horses that you can adopt
  • Marnie finds stray pets that you can adopt

If you would like to use the default skin for an animal, you don't need to do anything! A&S will only load additional skins for the animals you place in the AdoptSkin/assets/skins folder.





1. Place the skins you want anywhere in the AdoptSkin/assets/skins folder. Any folder placed inside is purely for aesthetic organization.
2. Remove any other reskin mods from the Mods folder itself. If you previously had another reskin mod on your save file:
  • Make sure that any skins that you'd like to use are placed in AdoptSkin/assets/skins
  • Remove the reskin mods themselves from the Mods folder
  • Call the randomize_skin console command on the existing creatures that were affected by the reskin mod(s)
3. A few default skins are in there to give you an example, but follow the naming conventions listed further down for the skin files.
4. Your animals are all ready to have randomized skins now! The console commands below can be used for changing skins.


Recommended sprite set: Elle's replacement sprites (Coop, Barn, Dog, Cat, and Horse). These are most of the sprites shown in the picture examples. And I personally love them! Hollowstyx also has made adorable quails and tiny chicken skins to work specifically with A&S.
Recommended paired mod: Chat Commands. This makes it easier to change the sprites within the game!
(Note: Chat Commands has a bug where if a SMAPI error occurs, the game will crash. Be careful with new versions of A&S and typing commands)
Incompatible mods:
  • More Animals - MA competes with A&S when trying to reskin and move animals around the map, and A&S covers the functionality of MA
  • Reskin mods - These mods compete with A&S when trying to reskin or adjust animals, and cause weird issues. A&S covers their functionality once the skins from these mods have been moved into the AdoptSkin/assets/skins folder. Call randomize_skin on existing animals that used the reskin mod's assets.
  • Pet Interaction (Somewhat) - There is a bug where an extra cat added by PI will be on your farm. Until the author works this out, this cat will warp to wherever your pets are being placed. If this doesn't bother you, go ahead and use the two together!






list_creatures [creature category]
Gives the Name, ID, and skin ID of every creature in the given category
Accepted categories: all, animal, pet, horse, coop, barn, chicken, cow, or any specific type (i.e. whitechicken)

randomize_skin [creature category or creature ID]
Randomizes the skin of the creatures with the given category or the creature with the given ID
Accepted categories: all, animal, pet, horse, coop, barn, chicken, cow, or any specific type (i.e. whitechicken)

set_skin [skin ID] [creature ID]
Select a specific skin for the given creature

sell [creature ID]
Gives away the specific pet or horse with the given creature ID

horse_whistle [optional: horse ID]
Calls a horse to your location. When used with a horse's ID, that specific horse is called. This also has a configurable hotkey, which is "R" by default.

corral_horses
Sends all the horses you own to your stable, giving you the honor of being a professional clown car chauffeur. This also has a configurable hotkey, which is "Y" by default.


Command Example:
Let's set our chicken, who we'll call Chirpchirp, to have the skin whitechicken_4, which we've placed in the /assets/skins folder of A&S.

First, we'll need to figure out Chirpchirp's ID, which the the short number A&S uses to reference individual farm animals, pets, and horses.
To do that, we'll call list_creatures chicken. The output in the console should show all the chickens you own. Chirpchirp's information should look something like this:
# Chirpchirp: Type - whitechicken
Short ID: 3
Skin ID: 9

From this we can tell that Chirpchirp's farm animal ID is 3, and its currently set to have the whitechicken type skin 9, which would be the skin named whitechicken_9 in the /assets/skins folder.

To set Chirpchirp's skin to whitechicken_4, we then need to call set_skin 4 3, which calls the set_skin function on the creature with the ID of 3, which happens to be Chirpchirp, and gives it the fourth skin of that creature's type (Chirpchirp is a whitechicken, so that's the skin named whitechicken_4).

Chirpchirp will now appear with the skin whitechicken_4!




Does the horse whistle work with the tractor mod?
Yep.

Can I use A&S in multiplayer?
Conditionally. Multipet/multihorse isn't yet tested in multiplayer, but the farm animal skins work. Other things are a little unpredictable, as they are not
yet supported. Multiplayer multipet/multihorse is currently being worked on.

Can I turn off/change X feature?
Check the Config file. There's a ton of things you can turn on and off or set to a different value. Explanations of the options in the Config are described below.

Can I change/rename/delete/add to folders inside of /assets/skins?
Yep! Any subfolder of the /skins folder is purely serving as a visual means to organize! You can do whatever you like to them, and nest folders to your heart's content; A&S will grab any skin inside. Just make sure you're still naming everything the same- A&S doesn't care what folder you put them in.

Where's the Config file?
The Config file will generate after you've run Stardew Valley at least once after installing A&S.

The SMAPI commands aren't working!

The commands went through an overhaul with the release of 2.4.0, and again with 2.6.0. If you're used to the old commands, or are confused on how to use them in general, refer to the explanations and example of the commands above.

Why aren't the skins showing up? / I'm getting an error and skins aren't showing up
> First, make sure that you've placed skins in AdoptSkin/assets/skins, as A&S does not come with many skins of its own- only a few example skins.
> Second, check the file naming guide below.
> Third, Make sure you don't have any other skin replacers for animals, pets, or horses. If you do:
1. Since reskinners can cause conflict, you'll have to make sure you've moved any skins that you want from those mods into /assets/skins
2. Remove the reskin mods from the Mods folder
3. When you load older saves that used these replacers, call randomize_skin on the creatures or creature category that was using those skins
Those creatures, and new ones of its kind, should be good to go after that!
> Fourth, if you're still having problems or are confused, feel free to post a comment or ask on the SDV discord's #modding channel!

Why aren't my BFAV animal skins working?
Make sure the skins are named exactly as they appear in the BFAV Config file. Some BFAV animals have "color variants", that work just like how brown chickens and white chickens do, in that they're each treated as a completely different animal. You'll have to name skins for each variant.

Can I reskin the petbed at Marnie's?
Sure can. Just make sure your image is named petbed.png and is the same size as the one in AdoptSkin/assets/. Then just replace that image with yours!

The game crashes when I enter Marnie's
If you removed petbed.png, this is the culprit. You can replace the image with something else, but it has to be there!

My pet/horse turns invisible when I reskin it
This can happen for some users when in Fullscreen mode and pulling SMAPI over the top of the game. To fix this either install the Chat Commands mod for A&S commands or use a different window setting.

If this does not correct the issue, this also can be from a corrupted game problem, due to mods other than A&S. Try these steps to fix the issue, and feel free to ping me (@gathouria#9832) on the SDV #modding server if the issue continues.
  • Make a copy of your Mods folder somewhere else on your computer (i.e. your Desktop)
  • Delete your Stardew Valley folder. Yes, the entire folder. No saved data will be lost, as not only does Steam back your save files up, but they're located in a different location on your computer.
  • Open up Steam. In your library, right click on Stardew Valley, and select Properties. Select the Local Files tab, and click Verify Integrity of Game Files. Steam will then alert you that your files are missing, and then redownload Stardew Valley for you. The reason for deleting the entire folder instead of just validating files is due to the fact that Steam cannot detect many corruptions of files, and reacquiring ensures that your files are Stardew-original.
  • Run Stardew Valley. You can close this as soon as it opens.
  • Reinstall SMAPI.
  • Create a new Mods folder within your Stardew Valley folder, and ONLY move Adopt & Skin into it.
  • Check that the issue still occurs on a new save file. You can use CJB Cheats Menu and CJB Item Spawner to quickly get to owning a pet or having a stable, as they have always worked fine for my personal testing. The save that you encountered the issue on may or may not continue to have the issue, as Stardew made the file while it was corrupted.
  • If the issue is fixed, move your Mods folder back into the Stardew Valley folder, and check that the issue doesn't reoccur by again making a new save file. If it does, then the issue is coming from a conflict with another mod. Make sure that none of the known incompatible mods, listed near the beginning of this page, are also installed.

My horse isn't showing up when I call list_creatures horse
This seems to be an issue in some multiplayer games. Reminder that multiplayer is not yet tested for A&S, and there are likely many bugs.

I can't reskin my horse!
If you're currently riding your horse, dismount it first! Stardew Valley's code treats horses being ridden as non-existent.

I don't see any stray pets at Marnie's!
Strays only start appearing the day after you've received your first pet from Marnie in-game, and don't appear every day. The chance of them appearing can be altered in the Config file.

There is also a known bug that happens when you return to the title screen and load a save file again, without exiting to desktop, that causes Strays to not appear in Marnie's, or to be invisible at Marnie's, even if a notification is given that one should be there. This is fixed by just exiting Stardew and reloading the game.

I can't find any wild horses!
Wild horses will only appear after you've built a stable, and are somewhat uncommon, having about a 25% chance to appear somewhere on the map each day, give or take some luck. This choice was made in order for wild horses to be an exciting find, rather than something you get bored of running across. That said, you can increase the chance of one appearing or set the chat and console to notify you when and where a wild horse appears via the Config file.

I see a wild horse but can't reach it??
Tricky little devils, aren't they



☆ If you have a question not answered here, feel free to comment or pop over to the SDV discord #modding channel! (@ me at gathouria#9832) ☆





Naming your skin files:

Sprite sheets should be named in the manner listed below and placed in the /asses/skins folder. If you're familiar with the way More Animals names these files, it is exactly the same.

  • The file must be named in the format of [Baby/Sheared][Type]_[Skin ID]
    EX: Cat_1, BabyVoidChicken_7, Dinosaur_3, Horse _27, etc.
  • The [Type]needs to be exactly as shown in the above type chart (BFAV note below). Spaces and capitalization optional.
  • All animals with a baby or sheared sprite MUST have these sprites in the folder, alongside the normal adult sprite.
  • Each baby or sheared skin is matched to the normal adult version of the skin with that ID (i.e. babysheep_1 will be the baby sprite of a sheep with the skin sheep_1)
  • Skin IDs can be any number greater than 1, but must be unique from others of that type (i.e. you can have dog_1 and whitechicken_1, but not two whitechicken_1s)
  • BFAV animal skins are to be named in the same way, with their name looking the same as it appears in the BFAV Config file. Double check the Config, as animals may have a variety of "color variants" (like whitechicken and brownchicken have), which all need their own skin sets.
  • All sprite files must be of type .PNG or .XNB
  • All sprite files must be placed somewhere in AdoptSkin/assets/skins


Default animal types:
BlueChicken BabyBlueChicken
BrownChicken BabyBrownChicken
WhiteChicken BabyWhiteChicken
VoidChicken BabyVoidChicken
Duck BabyDuck
RabbitBabyRabbit
Dinosaur ---

BrownCow BabyBrownCow
WhiteCowBabyWhiteCow
Goat BabyGoat
Sheep BabySheep ShearedSheep
PigBabyPig


Default pet types:
Cat
Dog


Default horse types:

Horse



  • OneTileHorse : Squishes the horse you're riding to fit anywhere your can normally walk
  • PetAndHorseNameTags : Whether or not to display the name of the pet or horse that your cursor is hovering over
  • HorseWhistleKey : The hotkey for calling one of your horses to you. By default, this is set to R
  • CorralKey : The hotkey for calling all horses back to the stable. By default, this is set to Y
  • StrayAdoptionPrice : The price for adopting a stray pet at Marnie's, once the player receives their first pet
  • WalkThroughPets : Whether or not pets can be walked through by the player. Useful for when you own a lot of pets
  • DisperseCuddlePuddle : Whether or not to spread pets out from the water dish, rather than have them all spawn in a single tile
  • CuddleExplosionRadius : How far out, in all directions from the water dish, pets can be spread when DisperseCuddlePuddle = true
  • WildHorseSpawn : Whether or not wild horses can be found after the player obtains a stable
  • StraySpawn : Whether or not stray pets can show up at Marnie's after the player receives their first pet
  • WildHorseChancePercentage : The chance of a wild horse spawning each day after the player obtains a stable. By default, this is set to 25%
  • StrayChancePercentage : The chance of a stray pet appearing each day at Marnie's, after the player obtains their first pet. By default, this is set to 60%
  • ChanceAffectedByLuck : Whether or not the chance for a wild horse or stray pet to spawn each day is affected by daily luck (up to 10%)
  • NotifyHorseSpawn : Whether the player will be alerted, via SMAPI console and chat notification, if a wild horse spawns that day, and where it is located. By default, this is set to false.
  • NotifyStraySpawn : Whether the player will be alerted, via SMAPI console and chat notification, if a stray spawns that day at Marnie's. By default, this is set to false.
  • DebuggingMode : A mode for debugging. This adds a suite of debugging commands to the SMAPI console for your use, including commands to spawn in a wild horse or stray.




I have a few ideas for additional features for A&S, so let me know if you'd be interested in seeing them, and feel free to suggest your own for the list!
~ Multiplayer support for multipet and multihorse
~ Baby stage of pets and horses
~ Toggle name tags on/off DONE!
~ Allow hotkeys to be set to null DONE!
~ Allow organization of skins into subfolders DONE!
~ Allow support for multi-pet farms, as More Animals itself added DONE!
~ Add support for horse skin randomization/selection DONE!
~ Create a command allowing the player to view the info for only a certain animal type, which would reduce the size of the animal list to look at DONE!
~ Compatibility with BFAV DONE!

Reporting bugs makes A&S stronger. Help conquer the enemy (•̀ᴗ•́)و ̑̑

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __  _ _  _  _ _  _  _  _   _   _   _      _      _       _        _          _          _            _              _                  _                      _

Source Code