Skip to content

Author Overview

A high-level map of the Beeing Female NG plugin set and source tree. It tells you where things live and what each part is for — to see individual forms, open the plugins in SSEEdit / xEdit. For runtime actor data see StorageUtil & State Data; for the INI extension system see the Add-on Framework.

The plugin set

One master plus three supporting plugins; load order is master first, then the patch chain.

File Role
BeeingFemale.esm The system file. All core records — cycle/pregnancy abilities, items, child-actor system, dialogue, factions, globals, keywords. Everything depends on this.
BeeingFemaleBasicAddOn.esp Content pack: PMS ability effects, per-race baby textures, sounds.
BeeingFemaleSE_Opt.esp SE / HearthFires patch: child races, ovulation item, and the author-tunable globals (myBFA_ProbChildRaceDeterminedByFather, myBFA_ProbChildSexDetermMale, BFOpt_MatureTimeInDays).
BeeingFemaleAdultPack.esp Optional (ESL): 200 adult NPC bases from the vanilla chargen presets, for the child grow-up / father pool. Generated by tools/xedit/BFAP_GenerateAdultPack.pas.

CK-filled properties

Most forms are bound to Papyrus properties filled in the Creation Kit, not by code. Don't delete an unused Property from a .psc without also clearing it in the plugin, or the binding breaks. See CLAUDE.mdImportant: CK-Filled Properties.

Editor-ID prefixes

Prefix Means
BF_… A quest that hosts a Papyrus script (the editor ID matches the script, e.g. BF_ControllerFWController.psc).
_BF… A content record added by NG (items, abilities, effects, factions, globals, dialogue).
_FW… Legacy "FrameWork" record from the original mod — same idea, older naming.
BFKeyWord_… The structural keywords (_Base, _Spell, _StateSpell, _BabyItem) the system uses to recognise its own forms.

Repo layout

Beeing Female NG/
├─ src/                       C++ SKSE plugin (CommonLibSSE-NG) → BeeingFemale.dll. See building.md.
├─ lib/commonlibsse-ng/       SKSE framework — git submodule, don't edit.
├─ dist/                      Everything that ships to the player's Data folder:
│  ├─ Core/                     the base mod (the .esm/.esp files + assets below)
│  │  ├─ source/scripts/*.psc   Papyrus SOURCES — edit these.
│  │  ├─ scripts/*.pex          compiled bytecode — build output, don't hand-edit.
│  │  ├─ skse/plugins/          compiled .dll lands here.
│  │  ├─ BeeingFemale/          loose runtime DATA: AddOn/ Couples/ HUD/ Names/ Profile/ Version/
│  │  └─ Interface/translations/  localized MCM strings (UTF-16 LE BOM).
│  ├─ Patches/                  optional compatibility patches (FOMOD components).
│  └─ fomod/                    FOMOD installer (ModuleConfig.xml + info.xml version).
├─ tools/xedit/               xEdit generator scripts (.pas).
├─ docs/                      this documentation site (authoritative source).
└─ CLAUDE.md                  contributor/build notes.

The split that matters: plugins + loose BeeingFemale/ data are what you patch or extend without touching code; dist/Core/source/scripts/ is the only place to edit Papyrus — everything under scripts/ and skse/plugins/ is build output. See Building from Source.