Fallout 4

File information

Last updated

Original upload

Created by

JesterDoobie

Uploaded by

JesterDoobie

Virus scan

Safe to use

About this mod

Adds a functional, Fabulous, Workshop Broom as an assignable workshop work object. See full description, requires instructions.

Requirements
Permissions and credits
Introducing The Fabulous Workshop Broom. It's a Settlement Broom.(REALLY!!) Assign someone to it and they sweep, so it totally REALLY IS a Broom. It's intended purpose is to clean workshops/settlements, so it's a Workshop Broom. And it really is FABULOUS, I assure you, it makes the folks that live in 
the Commonwealth (DLC's already planned just incomplete) actually clean the gd place up a little. Apologies for the WOT, this mod requires a good bit of explanation and several warnings for y'all.


#1 is I stupidly forgot to test them with Robots of any sort as Workers, so until I finish that (ETA update if needed week or three) you do so at your own risk. It MIGHT work fine. It might destroy the world. It might just sorta do weird stuff, wreck your settlement and eat your save. No clue if the anims I use (vanilla AnimFurnBroomConstant) will even play on a Robot or if there's a Robot equivalent. I'm gonna say this is an unsupported configuration that I am working on.

#1(a) ALWAYS MAKE A MANUAL, FULL, CONSOLE SAVE (~, save saveMyPrecious) AND BACK IT UP TWICE (once to a physically distinct HDD, not just a different partition) before installing this or any mod if you care a lot about just ONE toon!!  I use a "clean Testing toon" I have for most of my settlement mods, he lives in Sanctuary (never been anywhere else) and got to Sanctuary without any mods, after which I did scrap all, and manually saved him using the console. I advise folks to do somesuch thing themselves (takes an hour if you're intent on getting everything along the way, can be done in 10-15 mins in a hurry or just download one) and use THAT TOON (not your Precious) to find out if any particular load order is good enough to play with, after which you can make a manual, clean backup of your fave(include a copy of your loadorder.txt where ever that file gets saved) and try it out with him/her/it. Also advise folks to periodically clean out saves, remove mods you don't (or very rarely) use anymore.


#2 is Out of my control but won't affect most folks:
 Do NOT open this esp using the CK if you like to look under the hood of mods, it'll mess stuff up, use FO4Edit instead. Included Source scripts in the download, feel free to explore to your heart's content or modify for your own use as you would, I release mods in hopes that others have fun with them, and don't much care what floats your boat, if ya follow me?

#3 and beyond:

Included are Broom Markers. Ideally you would plan a bit ahead and make a sorta path through your settlement with these, then build a Fabulous Workshop Broom and assign someone to it. When they are done sweeping their current area, The Fabulous Workshop Broom transports itself to the next Broom Marker(order loosely determined by distance NOT build order), after which it's assigned servant trudges over to it and gets back to work. This is where a bit of planning ahead pays off, the servant has to be able to get to the next Broom Marker somehow so putting one smack dab in the middle of a pile of junk or stranded on an "island" isn't usually the best approach.

ATM Fabulous Workshop Brooms let folks sleep at night, but resuming work the next day seems to cause a slight glitch with the movement function that I haven't quite been able to iron out yet, you might need to scrap everything and start over with a new Fabulous Workshop Broom (pretty unlikely.) The work using an old one does proceed as planned and it's 99.95% all-good but Fabulous Workshop Brooms seem to be really "jumpy" afterwards, almost as if they get REALLY lonely at night and need a bit of retraining in the morning (or just a good strong cuppa joe to get them up and about, I usually require 2-3 so this is quite understandable to me.) A Fabulous Workshop Broom also sorta works independent of it's assigned Broom Slave, if it's doing stuff when quittin time (8pm vanilla) hits, it'll actually continue sweeping, finish up and move in the night and be waiting at a new location in the morning. Just find it and reassign it's Slave, no big deal, s/he/it is just looking where it was instead of finding it and pathing to it.
 If a Fabulous Workshop Broom is placed where it gets a LOT of stuff to sweep in one pass, the visual highlight effect might wear off whatever it's marking and/or the Fabulous Workshop Broom in question might suddenly jump to the next marker, but don't fear, afaik it NEVER leaves stuff behind, it's just a bit over-eager to get 'er DONE and has a good bit of the famous weird timing, that's all. 

Once a Fabulous Workshop Broom is finished moving through it's assigned route it has no more real use for its servant and formally dismisses him/her/it, as well recycling its used markers. Folks tend to stand around blinking rather stupidly after work atm, although afaik they are just out of work and stunned at the changes all around them, not broken at all.  All other assigned "work" in the game is more-or-less always-on, a farmer is ALWAYS a farmer unless the Player formally says otherwise by assigning a new job. My script is handling the assignment in this case, and I suspect there's no "generic quitting time" code in the base game to accommodate "temporary workers," calling MyActor.evaluatepackage() after work does nothing for them I could see and there's no "Unassign" button you can press while folks are working so ya, idk what to do about it or even IF it's a actual problem. Mebbe I need to dynamically add/remove/change a keyword, if you know this would help, please gimme a shout and lemme know. I am QUITE far from perfect, VERY likely I are missing something important there. Time cures it eventually, folks always do go back to doing normal settler stuff, just so stunned at "omg THAT'S what those gd things are for" and how nice everything looks they just can't process it for a bit. If their appearance after sweeping distresses you they can be assigned another task or a bed or you can fast travel away and back (or just wait some time) and they will respond as normal after that, just for a while after sweeping they're sorta seriously out of it.

IMPORTANT:
There is a corner of Starlight Drive In that I suspect of lacking proper navmeshing (top right grassy area as you are looking at the screen from the central puddle, near the fence corner and entry to the understairs bit),  Markers placed in that area are unreachable by settler pathfinding so this breaks the chain, the Fabulous Workshop Broom is sitting there but it's Slave can't reach it to reactivate it. Also unable to get ANY settler to even walk in that area while testing, although they do walk the road right beside it just fine. Another mystery for me to unravel, right now I haven't got a clue. There might be other areas like this, I would very much appreciate folks takin the time to post them here (bug report not needed, just add it to the posts and I'll see it sooner or later.) 


This is sorta intended to be a thing you vaguely watch happen/supervise, waiting, sleeping, fast-travelling and going so far away the Fabulous Workshop Broom unloads while working WILL CAUSE non-fatal errors to occur. These shouldn't break your settlement or save, afaik worst case you'd have to scrap 
some Markers/Fabulous Workshop Broom(s) and/or re-assign some settlers but I have no plans to fix them, please don't post such as a bug. It's a fairly-dynamic-but-sorta-slow-running script, with >60 lists, 1-50 ref in each list, probably as many as 1-3 refs each list being deleted in each cycle thru them. There's an afaik required 1-3 second pause built into each list change and reference removal/deletion to give the folks sweeping a chance to visually actually do some work (and sync up when what occurs in the scripts), otherwise they just get to their next post and literally JUST get started sweeping and the Fabulous Workshop Broom they're working on is actually done and hopping off to the next Marker. I can (and might) tweak this with future updates but it's a pretty delicate balance right now and I can't do so lightly or easily and atm, if you don't mind the constraints I've listed and follow instructions, it works just fine.

 I suggest working in pieces, plant a few markers that cover a settlement the size of roughly Red Rocket, make a Fabulous Workshop Broom, assign someone, let them sweep a chunk, give them a new job if desired, go kill some more raiders at Corvega or whatever, wash, rinse, and repeat. I add "Reassign a Settler to a New Broom Route" to my "Things to do when you get "Home"" list", it's right after "Drop the gd junk off" and before "Check Hydroponics" (Shameless self-promotional plug for my Hydroponic Racks Mod) 

There's a pic available under images labelled "SCALE SHOT" where its sitting under Sanctuary's Red Rocket's red rocket on a white-ish square. A Fabulous Workshop Broom's  "Area Of Effect" or "Range" is almost perfectly that big. 

Using a Fabulous Workshop Broom in Nuka-World, Far Harbor, mod-added settlements (Player homes should be fine except for the requirement for a Broom Slave to sweep) or anywhere OTHER than the Commonwealth is NOT OFFICIALLY SUPPORTED ATM. You can try this if you like, shouldn't break anything at all, but many "ground debris" references are different in the DLC's and Fabulous Workshop Brooms are unlikely to provide a "clean sweep." Also might remove stuff you'd rather keep, I've done all the testing to date in the "Main Game." Please post reports if you do, I could use some assistance testing it out, I are only one human and have no beta testers for my work aside from myownself so development cycles are rather long. Useful info in such a report would be just the displayed names of objects that should be removed by someone sweeping them, preferably in a simple list format. Even better reports would be the baseobject FormId's of such references (NOT the ff000800-style ones, ff prefix on a reference in console indicates it's a currently-in-use objectreference in-game somewhere already, I need the baseobject that is being created's FormId, which requires a little digging in the CK or FO4Edit to turn up.), and/or the scrap list they belong to as well as its' FormId.  I really just need to figure out what lists to use to detect stuff with, if I had 3-5 folks dedicated to testing this out and filing 2-3 useful reports each it'd take me a week or so to collate results and push an update.

IDK that Broom Slaves following LONG paths around Spectacle Island (Or making really long hops between Markers anywhere, for that matter) is the best idea, I did NOT TEST THIS much. Also a Range issue there, Spectacle is SO huge I VERY MUCH doubt that my script would be able to reliably get the same Broom Markers it had last time when it hops, which would lead to things getting pretty weird pretty quick. VERY advice using a "chunk it out" approach if you use Fabulous Workshop Brooms there.

 I found out that a Broom Slave given a VERY LONG, complex "jump" (referring to how the Fabulous Workshop Broom moves between Markers, not it's Broom Slave) to path across sometimes just randomly refuses to path there, and idk the why or the how of it. If this occurs, first slap the settler in question around a bit, (joking don't actually hit them it's just the worst glitch remaining and very vexes me when it rarely occurs) then find his/her/it's Fabulous Workshop Broom and either just move it somewhere s/he/it can get at it or scrap it. You'll have to replace the Broom Markers and build and assign a new Fabulous Workshop Broom if you do the latter. I suspect some sort of weird, rare, "out of range" or script timeout is occurring in the pathfinding AI but idk this 100% for sure, AI packages are still largely beyond me and it seems to only crop up as a random glitch, I cannot replicate it reliably so it's quite hard to figure out. Short-hopping smooth paths (the AOE always overlapping on mostly flat ground) worked fine, and several longer routes at Spectacle went off without a hitch but Spectacle is so bloody large it is actually 2 (at least) distinct cells.

Some folks might have run across a "powerline" glitch there, where power just will NOT get transmitted over the whole place regardless of properly hooked up lines and enough generators and everything? It's because the stuff at the other end of it has unloaded while the stuff at this end has loaded, and unloaded stuff don't process scripts, that's the whole point of unloading them. I worry about this causing Broom Slaves to forget what they are doing or otherwise interfering somehow, my script does NOT go to sleep properly if unloaded. I don't use Spectacle all that much and it's very possible I might need to write something specific to Spectacle into my script.


It is what it is, folks, I done done my best, apologies again for the WOT, hope y'all like my mod. 

REQUIRES SCRAP EVERYTHING.


Serious kudos to {AUthor's name}, without his/her awesome work this wouldn't even be possible at all.
Should be in the "Special" category.


TOTALLY INCOMPATABLE WITH ANY MOD THAT CHANGES WORKSHOPPARENTSCRIPT OR WORKSHOPSCRIPT to the point of potentially serious messing stuff up, please don't try and complain afterwards. This means specifically Sim Settlements, WorkshopFramework, WorkshopPlus and several others whos names elude me. Nothing I can really do about this, I don't really use such mods and they work sorta so "directly opposite" to this mod's functionality that afaik a "port" is totally impossible. 


If anyone reading this knows of a way to trigger a papyrus script/game event by one object hitting another (via physics interaction, NOT an attack of any sort just a "physics tap", so an "OnObjectBeginOverlap() or OnImpact()" event is what I'm after) I'd be interested in learning how, know of any tutorials for doing such using the CK/Game systems? (What I know about working with c would barely fill a shot glass right now so a custom f4se dll is currently beyond me)  With that "snippet" I could turn this baby into an ACTUAL, 100% WORKING workshop Broom mk2 instead of mostly "faking it" as I am now.