Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Ambitious doesn't quite do that last post justice! A weighted system for hair/skin tone etc would be fantastic.

Seeing as you seem up for a challenge. There's been something bothering me a little. Once the portrait packs are all fully 'tagged' with colors/asssize etc , some beautiful portraits will never be chosen by the script. For example, there are Dryad pictures with fair skin and blue hair, while in game Dryads only ever spawn with green skin and green/purple hair. All it takes is a couple of pictures labeled with greenskin to make sure the others never get picked.

You can still manually select any portrait, so it's not a big deal.

There are several possible solutions to give every portrait a chance to appear on random slaves.

  • Create a separate mod that only factors in race, gender and age
  • Modify the other game scripts so that slaves spawn with a wider variety of pre existing skin and hair colors.
  • Create a single brand new ambiguous skin and hair color (eg "Unnaturally colored", "Hybrid") That can be added to the scripts that generate slaves. Then put that in the names of the 'unlucky' portraits so that they have a chance to appear.
  • Something incredibly complex whereby if a portrait name doesn't have a fitting racial hair/skin color, it is temporarily given one that would naturally fit its race.
  • Make it so there is a low % chance to disregard the color checks each time a slave is generated.

I quite like the "brand new skin and hair color" one, as it allows the generated slave's matched portrait to be accurate. Without limiting available portraits and without creating endless color combinations to find portraits for.

As I said, it's not a big deal. Just throwing out ideas :)

"Make it so there is a low % chance to disregard the color checks each time a slave is generated.."

That is what I was thinking of doing with the weighted system. Start every portrait with a weight of say 1,  for every matching attribute add 5.  A portrait that matches all 4 attributes would have a weight of 21, and thus be 21 times more likely to be chosen than one that matches nothing.  Make it so you can adjust those weights, both starting and per attribute, even if it's just modifying the script file in the mod before applying it. You could thus then set a weight to 0 and it would no longer have an effect on selection at all.

"Create a single brand new ambiguous skin and hair color (eg "Unnaturally colored", "Hybrid") That can be added to the scripts that generate slaves. Then put that in the names of the 'unlucky' portraits so that they have a chance to appear.

Something incredibly complex whereby if a portrait name doesn't have a fitting racial hair/skin color, it is temporarily given one that would naturally fit its race."

Those could be combined.  Could go through possible skin colors and check if any match the portrait, recording that. If none do then list of matching colors would be empty.  When filtering, could consider an empty list of colors to match all possibilities.  Tie that in to weighted system, but consider a "no-color-found" situation to be a lower weight, like wrong colors = 0 weight,  matching color = 5,  no color = 2?

It'd depend upon probably doing a cached read of portraits, as it might start having a performance impact if doing so many comparisons against a large library of portraits every time a new slave is generated. In general though I like splitting up the code into "Generate portrait attributes" and "match portrait" chunks anyways though.

(1 edit)

Seems like you're on top of it :)

It a world with such a variety of interbreedable humanoids, it's no small wonder that many wild monster girls and bandits have crazy hair and skin colors.

With regards to "brand new ambiguous skin and hair color" it's pretty easy to check the default color ranges of a race while naming portraits. So adding one or two extra 'tags' (to those that deviate from racial norms) is not difficult on my end.

I'll leave the math that allows these hybrids a fair chance at appearing to you, and start looking at the race.gd and existing portraits packs to determine which races are the sluttiest have the most deviation from racial norms.

I've restructured it so it now only scans for possible default skin/fur/hair colors, and if it can't find any of those, it considers it to be unspecified.  Also realized existing code only considered hair color and ignored fur color, so all those colors assigned to beastkin/halfkin never got used. so updated it to use hair if set, otherwise use fur.  Also got structure in place to do weighted random selection, however there's a bug with the current mod loading code preventing me from doing this in a more efficient manner( I wanted to avoid re-scanning portraits on every new slave).  it's a simple single-line fix so hopefully Maverik can fix it soon, but means next version of mod will require latest version of the game.

(1 edit)

Maverik's updated and re-uploaded the current version of the game at least once today, if not more. Hopefully you won't have to wait long.

EDIT: Faith rewarded :)

I worked out how to make a line adjustment mod that adds ambiguous hair/skin colors, and which races need it. However, given how much work sexiestmanalive has put into naming portraits already, i'm going to stop working on it as of now.

I'm really glad you are working together :)

With your weighted system combined with the option to choose the weight each body part holds, it sounds like every portrait will now have a chance to be chosen. Thank you.