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.
Integrating from another mod¶
You do not need anything from this repo to integrate with BF NG. The API is
mod events plus StorageUtil keys, both reachable with vanilla
Papyrus and PapyrusUtil — so a consumer script compiles with no BF sources in its import path,
and gains no hard dependency. Detect BF with Game.GetModByName("BeeingFemale.esm") != 255 and
skip the integration when it is absent.
A script add-on — one extending FWAddOn_Misc/_Race/_CycleMagicEffect — is the exception:
it does compile against BF's own sources, from dist/Core/source/scripts/ in this repo.
Script add-ons are the expensive option
BF's scripts are mutually referential, so the compile closure of any one add-on base class
is the whole ~34-script cluster, and compiling it also needs sources for every mod BF holds
a typed property for (SexLab, Devious Devices, OStim, SlaveTats, FNIS, MFG Fix, SkyUI SDK,
RaceMenu, JContainers, PO3, ConsoleUtil — see skyrimse.ppj). Prefer mod events or an
add-on INI; reach for a script add-on only for the hooks
(OnGiveBirthStart, OnLaborPain, OnBabySpawn, …) that nothing else exposes.
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.md → Important: 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_Controller → FWController.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.