FollowerForge 3.3.0 — arrows, stack counts, honest names
Four things were reported against 3.2.9. Two were real and total, one was half right, one was not us.
Arrows and bolts
IndexedRecordType had no Ammo member at all — AMMO records were never indexed, so arrows could not be picked, validated, or written. A bow follower was a follower with a stick.
Now indexed, with an Arrows & bolts tab in step 5 and a stack-count spinner (default 100).
Ammo goes in inventory only, deliberately. Checked against Faendal (013480:Skyrim.esm), the game's own archer follower: he carries Steel Arrow (01397F) in Items with a clothes-only outfit, and a query for vanilla outfits referencing that arrow returns zero. An earlier attempt to also write ammo into the generated outfit was removed rather than shipped.
Item stack counts
RecordRef gained an optional Count (default 1, so older profile JSON loads unchanged). The compiler had Count = 1 hardcoded. Belongings get their own count spinner; 0 or negative clamps to 1 instead of writing an empty stack.
Non-English letters — half right
Measured, not guessed:
| input | written bytes | result |
|---|---|---|
Ëlïna Ökÿ |
cb 6c ef 6e 61 20 d6 6b ff |
already correct (valid Windows-1252) |
Ζωή Аня |
3f 3f 3f 3f 3f 3f |
literal ? |
A plugin stores one single-byte codepage, so Cyrillic, Greek and CJK cannot survive; writing cp1251 instead would just move the breakage onto everyone whose game is not Russian. New NAME_CHARACTERS_LOST warning names the exact characters that will be lost. No per-language encoding support, by choice.
Body/face colour — not a 3.2.9 regression
Diffed 3.2.7 → 3.2.9 across the whole tree. The only compiler changes are cell placement, worldspace and FormVersion 44. Nothing in the face, tint, QNAM/TextureLighting, HeadTexture or skin path was touched. This is the pre-existing tone behaviour: a preset with a non-neutral SkinTone tints the head while the body keeps whatever skin the player installed. Diagnosing it needs the reporter's preset and a screenshot.
Also fixed
fforge indexno longer dies on a damaged cache. It quarantined and rebuilt in the wizard but threwSqliteExceptionin the CLI — so the one command that repairs the catalogue was the one command a corrupt catalogue could brick. Hit for real while testing this release.- Catalogue
index_version. A catalogue built by an earlier version is now stale, so existing users pick up the Ammo records automatically instead of opening an empty arrows list.
Verified
367 tests pass. Built with the published CLI and read back with houseCARL:
Items[2].Item.Item = 01397F:Skyrim.esm (SteelArrow) Count = 100
Items[0].Item.Count = 5
DefaultOutfit contains no ammo
check_errors: 0 dangling refs, 0 missing masters
🤖 Generated with Claude Code