Skip to content

Girl addition mod guide

Bepis edited this page Feb 13, 2019 · 2 revisions

HCSLoader girl addition mod guide

Foreword

If you are creating a new girl, it is strongly advised that you enable the console in your BepInEx/config.ini configuration file (set console=true) so you can see any validation errors appear when you attempt to load your game with your mod.

To verify the contents of your addGirl.json file, use this website ( https://www.jsonschemavalidator.net/ ) and use the schema that is located in this repository.

Overview

This document describes how a new character is modded into HCS using HCSLoader. Currently additional outfits and hairstyles are not supported.

To begin, a new folder next to your HunieCamStudio.exe file called Mods should be created.

In the new Mods folder, each additional girl added should also have their own unique folder. The folder structure should look like this if it has been set up correctly.

HunieCamStudio/Mods/NewGirl

Inside that folder is where you place the files for your new girl.

This is rougly what the file structure should look like once you are complete:

../NewGirl/addGirl.json
../NewGirl/icon1.png
../NewGirl/photo.png
../NewGirl/photothumbnail.png
../NewGirl/voice-accessory/
../NewGirl/voice-blocked/
../NewGirl/voice-employ/
../NewGirl/voice-finish/
../NewGirl/voice-profile/
../NewGirl/voice-recruit/
../NewGirl/voice-start/
(and any additional textures if you wish to create the parts for them)

I will describe what each file means in the rest of this document:

Base textures

These textures aren't necessarily related to how your character looks, but the game requires them for other things.

Note that all textures must be in PNG format.

icon1.png: The small icon that's displayed for each girl in the wardrobe and the girls window. Should be 102x102 in size. You can increase the number (i.e. icon2.png) to specify a different icon for each hairstyle, up to 5.

photo.png: The image that's shown in the loading screen or when you view the special photo for a girl when you unlock all her outfits and hairstyles. Should be 1920x1080 in size.

photothumbnail.png: The thumbnail that's displayed in the wardrobe when you unlock all of a girl's outfits and hairstyles. Should be 160x144 in size.

Voiceline folders

These folders must be created in your girl's folders, and are used to load audio clips for a specific response.

voice-accessory - Give a girl an accessory or item
voice-blocked - When a girl cannot perform an activity
voice-employ - You drag the girl into a slot on the right of your screen
voice-finish - Girl finishes an activity
voice-profile - You click on the girl's profile in the girls window
voice-recruit - When you recruit a girl for the first time
voice-start - Girl starts an activity

Each folder represents a different activity.

The audio clips must be in .ogg format. There must be at least 1 clip per folder.

addGirl.json specification

addGirl.json is what's used to store information about the girl, such as her name and description. Here is an example one:

{
	"name": "Momo",
	"description": "Momo is a catgirl.",
	
	"age": 1,
	"cupSize": "B",
	"weight": 100,
	
	"smokes": 0,
	"drinks": 0,
	"talentLevel": 1,
	"styleLevel": 3,
	
	"fetishes" : [
		"Furry",
		"Flat Chest"
	],
	
	"parts" : [
		{
			"type": "BODYCOLORS",
			"file": "base.png",
			"x": 760,
			"y": 90
		}
	]
}

name

The name of the girl.

description

The description of the girl when you hover over her info tooltip.

age

The age of the girl, which is shown in the girls window.

cupSize

The cupsize of the girl. Must be A, B, C, D, DD, or F.

weight

The weight of the girl, in pounds.

smokes & drinks

How frequently the girl does the activity. Must be between 0 and 3 (Never, Sometimes, Frequently and Addicted in order)

talentLevel & styleLevel

The starting level of the skill of the girl. Must be between 1 and 5.

fetishes

An array of fetishes that the girl has. Must contain exactly 2 fetishes.

Parts

Sprites of girls in the game are assembled by assembling lots of smaller sprites (named parts) together.

type

The type of part. The full list of them is:

BACKHAIR
BODYCOLORS
HAIRSHADOW
BODYLINES
OUTFIT
MOUTH
EYES
EYELIDS
EYEBROWS
FRONTHAIR
SPECIAL

Most of the types only influence the Z position of the part, but some have extra functionality attached to them:

  • EYELIDS: The game switches between the first 3 EYELIDS parts on a random timespan to simulate blinking.
  • MOUTH and EYEBROWS: The game has a hidden mechanic where girls can have a happy, sad or angry mood, and switches between the first three MOUTH and EYEBROW parts based on the current mood. Since this is never seen in normal gameplay, you would only ever need to supply 1 instance of these parts each.
  • OUTFIT: Changes based on the selected outfit of the character.
  • FRONTHAIR, BACKHAIR, and HAIRSHADOW: Changes based on the selected hairstyle of the character.

As I'm lazy and only using a single static image as a girl's sprite, I'm using BODYCOLORS in my example as it is what the game thinks of as a "base" texture.

file

The .png file that has the texture of this part.

x & y

These properties define where exactly the part should be placed on the rendered girl image. However, figuring out the values that you want isn't very straightforward.

As a rough guide, you can use these formulas to get the x and y value that would center the image:

x = 1080 - (image width / 2)
y = 550 - (image height / 2)

If you wish to make any more precise adjustments, keep in mind that increasing x moves the image to the right, and increasing y moves the image down.

Outfit and hairstyles

If you want to specify a name for an outfit or hairstyle, add an additional name property in the part that has an OUTFIT or FRONTHAIR type.