Estrogen Mod


Adds a complete estradiol production chain using chemical synthesis and pharmaceutical compounding.

Content
15 days ago
2.0 - 2.1
146
Combat Character Fluids

Changelog

Version: 0.15.1
Date: 2026-10-13
  Changes:
    - Moved the injection kit and its dose-picker selection window to the
      Pharmaceuticals mod (0.2.0), which now owns the generic injection-kit
      item, the injection-kit-assembly recipe, and the whole picker GUI. The
      kit is unchanged for players; its unlock still comes from researching
      Pharmaceutical Packaging, now declared directly by that technology.
    - Estrogen dosing is unchanged: the mg drain, cooldown, buffs, heal and
      transformation still live here. This mod registers with Pharmaceuticals
      (register_medication) and exposes get_dose_vials / dosing_is_active /
      apply_dose on its estrogen-mod remote interface, so the shared picker
      lists estradiol vials and applies doses exactly as before.
Version: 0.15.0
Date: 2026-10-12
  Changes:
    - Split the generic medical supplies into the new Pharmaceuticals mod
      (hard dependency): empty glass vials, disposable syringes, alcohol wipes,
      medical cloth, MCT oil, castor oil analog, isopropyl alcohol and the
      Pharmaceutical Packaging technology moved there. Prototype names are
      unchanged, so existing saves keep their items and research state; the
      supplies now show under the Pharmaceuticals tab
    - Vial compounding, cleavage recipes and the injection kit consume the
      supplies cross-mod; researching Pharmaceutical Packaging still unlocks
      the injection kit (the unlock is appended by this mod's final-fixes)
Version: 0.14.4
Date: 2026-10-12
  Bugfixes:
    - Fixed the 0.14.3 last-mg fix deleting an ENTIRE stack of vials when a
      dose emptied one of them: vials stack and share one durability bar, so
      clearing the stack wiped every spare too. Dosing now uses
      drain_durability, which consumes exactly one vial per emptying dose and
      starts the next at full durability
Version: 0.14.3
Date: 2026-10-12
  Bugfixes:
    - Fixed the dose picker refusing the last mg in a vial ("not enough estradiol
      left" even when the vial held exactly the dose): a tool's durability cannot
      be written to 0 ("durability must be > 0"), so a dose that empties the vial
      now clears the stack instead of subtracting to 0, which silently failed
Version: 0.14.2
Date: 2026-10-12
  Bugfixes:
    - Fixed the vial's durability bar showing the literal "__1__" instead of the
      remaining milligrams: the mg readout moved from durability_description_key
      to durability_description_value, the only field the engine substitutes
      durability into (the key is a plain label and never gets parameterized)
Version: 0.14.1
Date: 2026-10-06
  Changes:
    - Set main_product on every recipe to the product that shares its icon, so
      the recipe and its item show up as a single entry in Factoriopedia
    - Gave every recipe and fluid an order (items already had one), so
      Factoriopedia can sort them and show an entry's main recipe instead of
      burying it under "Alternative recipes"
    - Kept exactly one recipe merged into each product's Factoriopedia entry:
      several recipes naming the same product (the four methyl ester cracking
      routes, the castor/MCT oxidative cleavage pair, and the eight hormone
      science recipes) left the entry with an empty main recipe slot and every
      claimant listed as an alternative. The other routes stay listed as the
      alternatives they are, and enanthic acid reforming no longer claims the
      base game's light oil.
Version: 0.14.0
Date: 2026-10-03
  Features:
    - Added a single generic Injection Kit: using it opens a dose picker where
      you choose 1 to 10 mg and then pick which vial to draw from, so one kit
      works with any vial instead of needing an exact ester and carrier match
    - Doses now scale with the milligrams you take: heal and speed boost scale
      linearly, effect and levels duration scale with the square root, and
      cooldown scales linearly, so a bigger dose hits harder but locks you out
      longer
    - Dose picker lists every estradiol vial you are carrying with its
      remaining milligrams
  Changes:
    - Replaced the eight per-ester dose capsules with the single Injection Kit;
      their recipes and icons are gone
    - Vials hold 40 mg each and never expire: the bar is your remaining
      milligrams and only falls when you dose
  Bugfixes:
    - Fixed dosing reporting "not enough estradiol left in the vial" even with a
      full stack of vials; the vial check now reads the vial's real remaining
      milligrams instead of guessing after a blind drain
    - Fixed a crash when a vial emptied mid-dose ("LuaItemStack was invalid for
      read")
Version: 0.13.0
Date: 2026-09-18
  Changes:
    - Migrated to Factorio 2.1: factorio_version and base dependency now
      target 2.1 (API 2.1.19); no runtime or prototype API changes required
    - Dependency floors raised to the 2.1-targeted releases: gear-girl
      >= 1.2.0, particle-trails >= 0.5.0, status-effect-hud >= 0.5.0
  Bugfixes:
    - Fixed Factorio 2.1 load failure ("category and additional_categories
      got merged into categories table"): all recipes now use
      categories = { "chemistry" } / { "crafting" } instead of the removed
      single-string category field
Version: 0.12.1
Date: 2026-09-10
  Changes:
    - Internal refactor: HUD integration extracted to hud.lua, character
      inventory/equipment save/restore extracted into reusable helpers,
      ester prototype generation split into ester-builders.lua and
      ester-descriptions.lua (no behavior changes)
  Balancing:
    - Phytosterol Extraction craft time reduced 5s -> 2s
    - Microbial Degradation craft time reduced 5s -> 4s
Version: 0.12.0
Date: 2026-09-10
  Features:
    - Hormone Optimization duration/cooldown now scale with diminishing returns: near +5% duration / -5% cooldown per early level, converging to double duration and 15% of base cooldown; +1% permanent speed per level is unchanged
    - Status-effect-hud rows now show the hormone science icon normally, switch to a yellow warning past the warning multiplier, and flash red/yellow past 95% elapsed (cooldown row is always yellow)
    - Icon blinking is now delegated to the status-effect-hud generic alt_icon flash (requires status-effect-hud 0.4.0+); also fixes the invalid red-icon sprite path (bare sprite-prototype name instead of mod/name) that left rows on their fallback icon
    - Yellow warning and critical flash windows now have guaranteed minimum lengths on short doses: hormones row at least 30s yellow / 15s flashing, effects row at least 15s yellow / 5s flashing
  Bugfixes:
    - Fixed levels/effects HUD never turning red at warning time (both branches returned the amber icon)
    - Fixed levels HUD stuck on yellow with no science period: elapsed fraction now uses the total persisted with the winning reversion deadline instead of recomputing from a single dose (max()-accumulated deadlines can never match that recompute)
Version: 0.11.3
Date: 2026-09-09
  Features:
    - Character transformation is now a hard dependency on gear-girl + skins-factored (no optional toggle)
Version: 0.11.2
Date: 2026-09-09
  Changes:
    - Dose kit descriptions now show "Cooldown time is..." and "Provides elevated estrogen levels for..."
    - Added levels duration to dose kit descriptions
Version: 0.11.1
Date: 2026-09-09
  Changes:
    - Cypionate ester duration rebalanced from 150s to 180s for more uniform progression (1/2/3/5 minutes)
    - Castor oil carrier now has half speed boost but 25% longer effect time and 10% longer levels time
    - HUD levels tooltip now dynamically shows total reversion duration
Version: 0.11.0
Date: 2026-09-09
  Features:
    - Added status-effect-hud integration for HRT timers (levels, effects, cooldown)
    - Added first-load welcome message for new players
    - Added automated in-game test framework to estrogen-mod-testing
  Changes:
    - Hormone coverage now uses deadline-based max() logic to prevent timer reduction on re-dosing
    - Updated mod menu settings: consistency warning multiplier 0.1-1 (default 0.85), reversion multiplier default 10, cooldown multiplier multiplied against effect length
  Bugfixes:
    - Fixed cooldown enforcement to prevent re-dosing before cooldown expires (item is refunded)
    - Fixed flying text locale keys to use section-qualified format
    - Removed dead migration code and stale comments
Version: 0.10.1
Date: 2026-09-07
  Bugfixes:
    - Fixed armor, guns, ammo and trash disappearing when the character transforms (the fallback swap now copies every character inventory slot, and equipment charge survives the swap)
Version: 0.10.0
Date: 2026-09-07
  Features:
    - Dose kit descriptions are now dynamic: tooltips show the actual heal, speed boost, effect duration and cooldown computed from the current mod settings
  Changes:
    - Run-trail particles moved into the new standalone Particle Trails companion mod; Estrogen Mod now requires it and asks it to show the trans trail while a dose boost is active
    - Trail particles now render behind the player character and kick up behind the feet relative to the movement direction
Version: 0.9.3
Date: 2026-09-07
  Features:
    - Added pink, blue and white run-trail particles that kick up from the player's feet while walking during an active HRT dose boost
  Changes:
    - Recipe balancing changes
Version: 0.9.2
Date: 2026-09-07
  Changes:
    - Removed new girl character port dependency
Version: 0.9.1
Date: 2026-09-07
  Bugfixes:
    - Fixed character transformation wiping entire player inventory (fallback swap now preserves inventory, cursor stack, and equipment grid)
    - Fixed consistency warning/reversion multipliers now using actual dose duration instead of hardcoded baseline
    - Fixed reversion not allowing re-transformation with additional doses
  Features:
    - Added 10% permanent speed increase when using girl character model
    - Added auto-retransform after reversion when taking additional doses
    - Added error logging for character mod API failures
  Changes:
    - Removed hormone cooldown workaround to work like base game fish
    - Prevented instant window close in run_tests.py for manual testing
Version: 0.9.0
Date: 2026-09-07
  Features:
    - Added character transformation system: player character changes to female model after taking HRT doses
    - Added support for skins-factored + gear-girl OR CharacterModHelper + NewGirlCharacter (mutually exclusive)
    - Character transformation persists across game reloads
    - Added dosing consistency system: warning after 17x dose timer, reversion after 20x dose timer
    - Added startup setting to enable/disable character transformation
    - Added startup setting to configure dose threshold for transformation (adjustable 1-100)
    - Added startup setting to configure consistency warning multiplier (adjustable 2-100)
    - Added startup setting to configure consistency reversion multiplier (adjustable 3-100)
    - Added per-player setting to toggle between male/female character after transformation is unlocked
  Changes:
    - Updated dependencies to include optional character mod support
    - Added validation to prevent loading when both character mod systems are installed
Version: 0.8.1
Date: 2026-09-06
  Bugfixes:
    - Fixed a crash when loading alongside mods that set include_all_base_lab_science on labs (e.g. Corrundum Pressure Lab). estrogen-mod now skips injecting hormone-science-pack into such labs, which inherit it automatically from the base lab.
Version: 0.8.0
Date: 2026-09-06
  Features:
    - Added Hormone Optimization, an infinite technology after Ester Undecylate costing Hormone Science and Chemical Science packs. Each level reduces dosing cooldown by 5% (to a minimum of 25%), extends dose duration by 5%, and permanently increases running speed by 1%.
Version: 0.7.3
Date: 2026-09-06
  Bugfixes:
    - The HRT Production tab icon now declares its two packed mipmap levels (icon_mipmaps = 2) so the game uses the full 192x128 strip instead of reading only the base image.
Version: 0.7.2
Date: 2026-09-06
  Changes:
    - Converted changelog.txt to the official Factorio changelog format so it renders in the in-game mod browser: colon after every Version line, a 99-dash separator opening every section (including the first), and no blank lines between a separator and its version line. No functional changes.
Version: 0.7.1
Date: 2026-09-06
  Balancing:
    - Hormone Science MCT oil requirements now scale with the number of packs a recipe produces, then doubled: Valerate 100, Enanthate 200, Cypionate 400, Undecylate 800 (a flat 100 oil per pack).
  Features:
    - Alternate Hormone Science recipes using Castor Oil vials and castor-oil analog added for all four esters, unlocked alongside their MCT counterparts at the same oil-per-pack cost.
Version: 0.7.0
Date: 2026-09-06
  Features:
    - The complete estrogen research tree is now in effect: Pharmaceutical Packaging anchors the medical line after Advanced Material Processing 2, and each ester technology unlocks its full production chain plus its Hormone Science recipe — Ester Valerate first, then Enanthate, Cypionate and Undecylate, all but the first requiring Hormone Science packs to research.
    - Hormone Science research folded into the ester technologies: researching an ester now unlocks both its production chain and its Hormone Science recipe. Only Ester Valerate can be researched without Hormone Science packs; Enanthate, Cypionate and Undecylate all consume them (research costs 500 / 1200 / 3000 of chemical + hormone science packs).
  Changes:
    - Pharmaceutical Compounding renamed to Pharmaceutical Packaging and re-anchored after Advanced Material Processing 2; prerequisites are now Advanced Material Processing 2, Plastics and Organic Esters & Solvents (which supplies the isopropyl alcohol the packaging line needs).
    - Valerate compounding (vial and dose-kit recipes) moved from Pharmaceutical Packaging into Ester Valerate, which now requires Pharmaceutical Packaging.
    - Ester science recipes renamed to include Compounding & Packaging (e.g. "Valerate Hormone Science Compounding & Packaging").
Version: 0.6.3
Date: 2026-09-06
  Features:
    - Valerate is now the first ester the player unlocks: the entry esterification tech is renamed Ester Valerate, and the enanthate chain moved to its own Ester Enanthate technology (after Pharmaceutical Compounding).
  Changes:
    - Enanthate is now generated by the shared ester family generator (prototypes/esters.lua) instead of hand-written recipes; its recipe names follow the family convention (heptanoyl-chloride-formation, enanthate-diester-formation, enanthate-selective-hydrolysis, methyl-enanthate-cracking, enanthate-recrystallization, enanthate-* compounding).
    - Compounding recipe names normalized for every ester: mct-<ester>-vial-compounding -> <ester>-mct-vial-compounding (and the castor/dose-kit variants), matching the diester/intermediate naming.
Version: 0.6.2
Date: 2026-09-06
  Changes:
    - Moved item and technology badges from bottom-right to bottom-left to avoid overlapping Factorio's stack-size badge. Fluid badges stay bottom-right (fluids have no stack badge).
Version: 0.6.1
Date: 2026-09-06
  Changes:
    - Version bump only (no functional changes).
Version: 0.6.0
Date: 2026-09-06
  Features:
    - Three new estradiol esters alongside enanthate: Valerate (C5, short-acting), Cypionate (ring-structured C8, rides slightly longer than enanthate) and Undecylate (C11, ultra-long castor depot).
    - Every new ester is compounded into MCT Oil and Castor Oil vials and dose kits (6 new dose variants), following the existing carrier tradeoff: MCT heals 100 with the full-strength speed boost, castor heals 200 at half strength for half the time.
    - The ester sets the buff clock at full strength: valerate 60 s, enanthate 120 s, cypionate 150 s, undecylate 300 s.
    - New reagents: valeric, cypionic, undecylenic and undecylic acids, their acyl chlorides, and methyl ester byproducts that crack back into methanol plus the parent acid, mirroring the enanthate recycle loop.
    - Undecylic acid starts from a realistic castor oil pyrolysis route (ricinoleic split into undecylenic acid, then hydrogenation).
    - Three new technologies replacing the old Ester Diversification: Ester Valerate, Ester Cypionate, and Ester Undecylate — players progress linearly through valerate → cypionate → undecylate.
    - Icon scheme: shared artwork keeps its natural colour (all these esters and fatty reagents are white or colorless in reality) and is differentiated by a small bottom-right badge — a single ester letter (E/V/C/U) on the estradiol esters, carbon-count shorthand on the fatty reagents (C5/C7/C8/C11/C11:1 acids, C#Cl acyl chlorides, C#Me methyl esters) and on the three new tech icons (V, C, U). Generated by tools/icon maker/ester-badges.py.
  Changes:
    - Fixed "Estradiol Ethanate" typos in the four compounding/kit recipe names (now "Estradiol Enanthate").
    - Every item, fluid and capsule now references its own icon file: shared vial, dose kit and methyl-ester artwork was copied to per-prototype files (e.g. estradiol-enanthate-vial-mct-oil.png) so each can be edited independently.
    - Added tools/validate.py: executes the whole data stage in a headless Lua VM and cross-checks recipes, unlocks, icons and locale in both yield profiles.
Version: 0.5.0
Date: 2026-09-06
  Features:
    - New startup setting "Realistic Crafting Ratios (Extra Harsh)": opt-in yields anchored tighter to real-world chemistry, about 3.5x more raw materials per dose than the forgiving default (leaner sterol extraction, weaker fermentation conversion, 60% recrystallization recovery). Requires a restart when changed.
  Changes:
    - The mod is now licensed under the GNU General Public License v3.0 (see the LICENSE file).
    - Tech tree reworked: the estrogen branch now grows directly out of Chemical Science Pack (dropped the Advanced Material Processing 2, Oil Processing and Advanced Oil Processing prerequisites; Organic Esters & Solvents now also requires Lubricant, which its castor-oil route consumes).
  Balancing:
    - Reviewed every recipe against real-world chemistry and lowered yields; the default profile is ~3x more raw-material-hungry per dose than 0.4.0. Highlights: phytosterol extraction 2 -> 1 sterol per 10 wood, microbial degradation 5 -> 4, castor refining 15 -> 10, both oxidative cleavages trimmed, MCT synthesis 15 -> 10, pyridine synthesis 10 -> 5, potassium carbonate 10 -> 5, recrystallization 1:1 -> 5:4 (80% recovery).
    - Diester Formation now uses the stoichiometrically correct 2 equivalents of pyridine base (two esterifications release two HCl).
    - Vial compounding now uses ~10 mL of carrier oil per vial (20 oil per 2 vials).
    - Glass vial molding costs 2 stone per 2 vials; syringes cost 2 plastic per 2.
    - Machine ratios cleaned up so production lines chain into small integers (10:1 extraction:degradation, 5:2 degradation:aromatization, 4:1 chlorination:diester, 10:1 hydrolysis:recrystallization).
Version: 0.4.0
Date: 2026-09-06
  Features:
    - Replaced all placeholder doodle art with real icons: all 19 items now have proper artwork with correct 120x64 mipmap strips.
    - Dedicated icon for finished dose kits (vial + syringe + alcohol wipe combined); EEn vials keep the vial photo.
  Changes:
    - Refreshed item-group and all 4 technology icons.
    - Added tools/icon maker: double-clickable scripts that turn source images into Factorio-ready mipmap strips (items 120x64, item groups 192x128, technologies 480x256).
    - Removed bundled example mods from the repository.
Version: 0.3.0
Date: 2026-09-05
  Features:
    - Estradiol Enanthate can now be suspended in MCT Oil or Castor Oil: two finished-vial and dose variants replace the generic carrier oil route.
    - MCT Oil dose: heals 100 and grants the full temporary speed boost for 120 seconds.
    - Castor Oil dose: heals 200 but grants only a half-strength speed boost for 60 seconds.
  Changes:
    - Removed the Refined Carrier Oil fluid and its synthesis recipe; Sterile Vial Compounding and Dose Kit Assembly are split into MCT and Castor Oil variants.
  Bugfixes:
    - Fixed permanent speed-buff residue from stacking doses; re-dosing now refreshes the buff instead.
    - Organic Esters & Solvents no longer attempts to unlock the nonexistent 'oxidative-cleavage' recipe (now castor-oxidative-cleavage).
Version: 0.2.4
Date: 2026-09-05
  Features:
    - Selective Hydrolysis now yields Methyl Enanthate as a byproduct instead of water.
    - Added Hydrolytic Cracking: splits Methyl Enanthate into Methanol and Heptanoic Acid (enanthic acid) using 165°C+ steam.
    - Added Enanthic Acid Reforming: converts Heptanoic Acid into Light Oil using Sulfuric Acid as a catalyst (recovered on output).
    - Both new recipes unlock with Steroid Esterification and reject productivity modules to prevent methanol recycle-loop exploits.
Version: 0.2.3
Date: 2026-09-05
  Bugfixes:
    - Fixed missing commas in ingredients and results tables across all 17 recipes in recipes.lua (caused Lua syntax errors).
    - Fixed missing commas in effects arrays across all 4 technologies in technologies.lua.
    - Added missing subgroup field to mct-oil fluid definition in fluids.lua.
    - Fixed inconsistent indentation in info.json and fluids.lua.
Version: 0.2.2
Date: 2026-09-05
  Features:
    - Added MCT Oil parallel processing path alongside the existing castor oil route.
    - Castor oil route retained (heavy oil + lubricant); MCT synthesis uses heavy oil + steam.
    - Added MCT Oxidative Cleavage recipe; both cleavage paths converge to heptanoic acid.
    - New mct-oil fluid and recipe icons.
Version: 0.2.1
Date: 2026-09-05
  Features:
    - Added dedicated HRT Production inventory tab with 5 classified subgroups
    - All mod items, fluids, and recipes reorganized under the new tab
    - Added item-group icon and locale entry
Version: 0.2.0
Date: 2026-09-05
  Features:
    - Complete rewrite: removed ore, added full chemical synthesis chain.
    - 12 chemical intermediates across 3 phases.
    - 4 medical supplies (vial, syringe, alcohol pad, dose kit).
    - 15 recipes using chemical plants and assemblers.
    - 4 technology tiers.
    - HRT buff system with configurable strength.
    - Space Age compatibility (conditional loading).
Version: 0.1.1
Date: 2026-09-05
  Bugfixes:
    - Fixed missing icon on aromatization recipe.
    - Fixed missing icons on all custom recipes.
  Changes:
    - Renamed hrt-dose to estradiol-solution.
    - Changed estradiol-formulation recipe to use iron plate instead of copper plate.
    - Ore now spawns like uranium but with slightly smaller patches.
    - Removed transcendence science pack (simplified to consumable-only end product).
    - Removed female character sprites from active mod.
Version: 0.1.0
Date: 2026-09-05
  Features:
    - Initial release.
    - Added Phyto-Sterolium Ore resource with autoplace.
    - Added Mevalonate Solution fluid.
    - Added Sterol Dust, Estradiol Crystals, Estradiol Solution, and Transcendence Science Pack items.
    - Added 5 recipes across smelting, chemistry, and crafting.
    - Added 4 technologies including infinite Self-Actualization research.
    - Added optional female player character sprites.
    - Added HRT buff system with configurable strength.
    - Added mod settings for toggling features.