A .hackgirl adds one or more custom named girls to the city, each with up to 7 hack stages of content — just like the base girls.
The easiest way to make one is the in-game Girl Pack Creator.
Open the game → Menu → Mods → Create Girl Pack.
Your progress is saved automatically as a draft — you can close and return at any time.
| Field | Description |
|---|---|
| Pack Name | Display name shown in the Mods screen. Pack ID is auto-generated from it. |
| Pack ID | Unique identifier (editable). Must not be base or a holiday name. |
| Author | Your name or alias |
| Version | e.g. 1.0.0 |
| Description | Short description shown in the Mods screen |
| Pack Preview | Optional cover image for your pack (PNG/JPG/WebP) |
Click Add Girl. Each girl has her own collapsible card with the following fields:
Identity
| Field | Description |
|---|---|
| Name | Display name |
| Age | Age shown in her profile |
| Job | Profession shown in her profile |
| Avatar | Portrait photo — shown on the map and in her profile panel. Minimum 128 × 128 px, square. Resized to 128 × 128 automatically. |
Measurements (revealed to the player after the first hack)
| Field |
|---|
| Height (cm) |
| Weight (kg) |
| Bust / Waist / Hips (cm) |
Content stages
The form shows 7 stage slots. For each stage, add one or more images — they all unlock simultaneously when the player clears that stage.
Stages should escalate in explicitness from stage 1 (mild) to stage 7 (most explicit).
Extras (optional)
Extras are bonus images that can drop randomly after the girl's stage 7 is complete.
Each extra has a drop chance slider — same rarity scale as hackpack items.
You can add as many girls to one pack as you like.
Click Save Draft at any time to preserve your work.
Click Export when ready — the game converts all images to WebP and packages them.
When the progress bar completes, click Share to send the .hackgirl file.
packId short and unique to avoid collisions with other community packs.#hack-tease!For scripted or batch creation outside the game, you can assemble the file manually.
A .hackgirl is a ZIP archive with this structure:
mypack.hackgirl
├── pack_manifest.json
├── pack_avatar.png (optional)
└── mypack_alice/
├── avatar.png (~128×128 px)
├── s1_0.webp … s1_2.webp (stage 1 images)
├── s2_0.webp … s7_2.webp (stages 2–7)
└── extra_<id>.webp (optional extras)
{
"formatVersion": 2,
"packId": "mypack",
"displayName": "Alice Pack",
"author": "Your Name",
"version": "1.0.0",
"description": "Custom girl Alice.",
"avatarPath": "pack_avatar.png",
"girls": [
{
"id": "mypack_alice",
"displayName": "Alice",
"age": 24,
"profession": "Corner Bakery",
"heightCm": 168,
"weightKg": 56,
"bust": 88,
"waist": 62,
"hips": 90,
"protectionLevel": 2.0,
"workStart": 8.0,
"workEnd": 17.0,
"leisureStart": 19.0,
"leisureEnd": 22.0,
"homeBuildingId": 100,
"workBuildingId": 200,
"leisureBuildingId": 300,
"hasAvatar": true,
"localizations": [
{ "locale": "en", "displayName": "Alice", "profession": "Corner Bakery" }
],
"photoStages": [
{
"stage": 1,
"images": ["mypack_alice/s1_0.webp", "mypack_alice/s1_1.webp"],
"videos": []
}
]
}
]
}
| Field | Notes |
|---|---|
girls[].id |
Must be {packId}_{name}, e.g. mypack_alice |
protectionLevel |
1–7. Cooldown between hacks = level × 2 game-hours |
workStart / workEnd |
24 h float — e.g. 9.0 = 9:00 AM |
homeBuildingId etc. |
Seed value — game resolves it as id % buildingCount. Any number works. |
localizations |
"en" locale is required; other locales are optional |
Rename the ZIP to .hackgirl and install it via the Mods screen or by dropping it into the Packs/ folder next to the executable.
| Image type | Minimum size | Notes |
|---|---|---|
| Stage images | 720 × 960 px | Portrait orientation. Exported as WebP quality 85. |
| Girl avatar | 128 × 128 px | Square. Resized to exactly 128 × 128 and saved as PNG. |
| Pack preview / avatar | 200 × 200 px | Square. Exported as WebP. |
| Extras | 720 × 960 px | Same constraints as stage images. |