Hey peeps! Happy New Year!
This is what I've been banging my head against for the past few days, apologies for the delay. I wanted it to get it out by the 28th but there were a lot of issues to iron out and I spent a lot of long nights getting it across the functional line. This will be a big post (I've been drafting it for a while) so if you want a TL;DR just read the first section.
This SKSE plugin adds procedural crowds to Skyrim. When I say procedural, I really mean it.
I named this mod "Background Characters" because of the flavor this procedural generation system provides.
Every background NPC uses procedural generation for the following:
Face
Outfit
Voice
Race*
*race is inherently tied to face
Each pool of background NPC attributes is gathered from non-unique non-guard NPCs once on startup; when an NPC is generated, a random attribute is chosen from each pool.
Skyrim + DLC are already big enough to the point where generated background NPCs are plenty distinguishable and non repeating in the crowd (you can see from the showcase images how rich the crowd appearances are).
It includes mod added appearances and voices so even on a moderately modded mod list the generation would be varied and the chance of a doppelganger in the same cell would be very low.
Every background character is not baked into your save. They only exist within your game session and are not persistent, meaning they unload out of memory once not used. They do not have the FF prefix because of bug reasons, but they still have the temporary form flag.
If you don't believe me, feel free to test it out yourself; enter an inn/city/town/village, make a save, exit game, disable this mod, reload the save, and all the background NPCs are gone.
That being said, please keep a backup save before using this; I've tested as much as possible while making this mod but you never know.
Background NPCs will sandbox, meaning they use furniture, idle markers, and have random conversations and greet the player. They do not have weapons and they will run away if attacked.
They are only generated in stores, inns, cities, towns, and villages. Crowd density is configurable in the ini.
I do not know about OBody support, you'll have to be a try it and see. The same goes for adult mods and autonomous addons for certain... activities. You should probably not bang them (and definitely do not make a save while doing it) because they won't last long, literally.
This is compatible technically with Crowded Streets, but it also differs from Crowded Streets (see above) and is built on the native engine level and is faster, so I don't see why you would use both.
Yeah, like how a minute passes every sixty seconds, crowds will sip on your CPU performance, and GPU if you have high poly body mods like UBE. Nothing for me to do about that. You can make background NPCs into simple actors (remove finer animations and remove face expresssions) to lessen the engine strain, if needed.
However, keep in mind this is 2025 on PC and not the Xbox 360 era. Even older rigs should be able to handle a handful of additional NPCs per cell with barely any hit. I do not recommend using this on the Steam Deck.
The cost for going above that depends on your rig and will be a question of CPU bound. With a r7 9800x3D and 96 GB of ram I am in no position to offer any performance tips (and yes I just wanted to flex the RAM I bought last year before the PC market went to total shit)
Also install Actor Limit Fix if you're using high density crowds.
Crowds are adjustable via the provided ini file.
Variance in AI behaviour using the packages system
Conditional animations with OAR
"Promotion", aka if you like a background character's look/walk/talk you can initiate a quest to promote it to a fully realized NPC follower to adventure with (and do... other things, you dirty dogs)
Blacklist for specific outfits
Demographic generation (Windhelm), although I would like this to be as configuration-less as possible.
Variable density based on time of day
Random "hostile" encounters based on time of day
"Job" system for background NPCs (waiters, couriers, laborers, etc.)
cav
2026-01-01 08:42:33 +0000 UTC