Hi, I was trying to deal with some of my settlers "pretending" to be vendors while they aren't or can't access their inventory. And since the vendor type ID doesn't even represent what they were pretending to be, I tried to look out for the package they were using but I can't find the log. Do I need to enable some other setting for the log to work? The log just doesn't appear to be in the Logs/Script/ sub-directory folder ppl say papyrus logs should be, and I can't seem to find it elsewhere either.
Edit, I'm so lost, all my settlers are vendor type 1, level 0, regardless of their actually occupations.
The Debug Script offers many methods for diagnosing and tracing execution of Papyrus scripts.
The following are some of the most commonly used.
Debug.Trace("This message is written to the papyrus log file.") Debug.Notification("This message is displayed on the HUD menu.") Debug.MessageBox("This message is displayed in a message box.") Debug.CenterOnCell("QASmoke") Debug.DumpEventRegistrations(self)
However, these methods will not work unless you enable logging:
Open the file "..\Documents\My Games\Fallout4\Fallout4Custom.ini". Populate the Fallout4Custom.ini file with the following settings.
Log output from Papyrus will be written to ..\Documents\My Games\Fallout4\Logs\Script\Papyrus.0.log or ..\Documents\My Games\Fallout4\Logs\Script\User\ if you have configured a user log. ..\Documents\My Games\Fallout 4\Fallout4Custom.ini
a mod that no one expected, but that everyone needed. It saves your ass from bugs caused by dirty scripts in some mods, but it also works perfectly with the "resurrect" command when the character you want to keep alive accidentally dies. And it repairs settlers who, by default, are unable to leave the settlement, be assigned to a supply line, etc. I have been using it for a very short time and now it is a must-have, I think I will find many more uses for it
I have my first SYNTH settler in this new playthrough.. i only noticed because i use a 'Detector' mod which highlights 'enemies' .. so i went around the corner and used Settler Debugger .. First i used .. 'CQF SettlerDebugger IsSynth <refID>' .. to check .. and it worked ! Marie was a Synth :( it shocked me!! and i though NOW what?
so i noticed you had another command pertaining to Synths.. so i used it 'CQF SettlerDebugger SetWNPCSynth <redID> 0' and entered it .. then i RECHECKED with the 'IsSynth' check and your mod reported FALSE that Marie now was NOT a Synth...
** FINAL update.. even after using your SetWNPCSynth command which WORKED i confirmed the 'dirty' on a copy of a save file .. However for some reason the Detector mod i am using continues to highlight the converted Synth settler still as an enemy .. but i confirmed she had NO SYNTH DEATH component on a test save file copy .. so .. great mod you made .. too bad i didn't use your detector mod :(
Can this tool help me appear a missing Settler I moved from one Settlement to another? I only saw him once, but then never saw it again. The game still detects it, I've tried to ring the bell and use the Vault-Tech Settlement Manager Software (or something like that), but still he''s missing.
It depends on how that settler is missing. What do you mean by the "game still detects it"? He counts in the settlement's population but you don't know where he is (i.e. he wandered off)? Most of the functions requires the NPC's RefID so if you know that, you can practically call all functions on him. The mod doesn't have a "summon NPC" function but RefreshAllActorsWithinRadius might be able to help.. it doesn't require RefID but the NPC must be within the specified radius.
I recruit with AFT Clutch (raider) and Kaylor (gunner) they can be assigned but do nothing. In ss2 they can be assigned but dont build, and if the place is already build they generate nothing like assign to a farm and the output its 0. This mod can solve that? It add a missing script? What command need? Edit: Forgot to say "please" :p Edit 2: Tried. No luck. Say "not a valid actor".
Sorry for the late reply. I was updating my overhaul-like mods and it took awhile.
"CQF SettlerDebugger RequestFullInfo RefID" (like "CQF SettlerDebugger RequestFullInfo 2F1F" for Piper) would return most settler variables. Whether the function SetWNPCCommandable works or not depends on the NPC's settler variables.
Thanks for answer. Already got all the female raider boss and gunners working for me, was just a small edit. Some quest are bugged or cannot be finished but I dont care.
Your tool is amazing. A lot of commands there, complicated but all worthwhile. Would you mind if I made .bat files with evocative names for the functions? If that's good for you I'll be glad to send said files to you for posting, scoffing at, renaming, being used for parodies about rank amateurs like myself...
Thanks. Sure, you can make batch files of the commands. If you pack them in a .zip and send the archive to me, I'll take a look at it and upload it (with credit) as an optional file.
Groovy. MCM menus are always things people clamor for but that can get fairly complex and there's the uninstallation angle. There's also setting holotapes but most people's chemistry stations are packed to the bursting point with such recipes and no one ever assigns them to the expanded workstations' Utility or Electronics stations (more's the pity)
Always feels a bit odd replying to myself... In making my .bat files I noticed a formatting issue with trying to make one for editing NPC values.
When one clicks on an object in console mode the RefID appears in the center of the console overlay. This lets one just fire off a command like moveto player and that happens and .bat file commands work that way, as well. Value editing is a bit trickier.
As far as I can tell, the way to get most of your tool commands to work off a clicked NPC in the console would be for the command format to be RefID.(tool command).
An example would be for checking an NPC with f0edf0ed RefID to see if he's a scavenger by the format f0edf0ed.CQF SettlerDebugger IsScavenger or clicking on the dude to call up his RefId and either entering CQF SettlerDebugger IsScavenger or whatever .bat file has that command in it. (The clicking on and possibly scrolling with the mouse scroll button until you're sure it's actually the NPC's ID is like the prid command)
As it stands, the status gathering commands will work straight out of the box, or should at least. I have summaries of each function listed in the .bat file so people can read it as they practice each one. Naturally, this first batch will be the status functions.
Thanks for the feedback. Not sure about this but I think the syntax "RefID.Command optionalObjectID" is only available for native commands (the ones that are coded into the game's .exe in C++. That, or with a F4SE plugin (.dll). So unfortunately it's not possible with the current design of this tool.
No, ResetActor would only affect the actor you call it on. :) In most cases, resetting an actor is overkill but I didn't want to exclude it as it's a debugger tool and who knows.. RefreshAllActorsWithinRadius, on the other hand, is made to process on multiple actors.
Unfortunately, that's expected behavior. Being a synth in the lore doesn't mean the settlement system considers them as synth as well. It's due to some design mistakes (inconsistency) and developer oversights. Magnolia is thought to be a synth because she has a Synth Component as "death item" (an item that gets added to the NPC's inventory upon death). The settlement system, however, considers an NPC to be a synth if their settler-variable named "IsSynth" = True. IsSynth is practically for some settlement random quests (sabotage, synth infiltrator, suspected synth). Setting this variable to True for every settler who's a synth in the lore would just cause issues (this is why I didn't set it to True for Magnolia). And as for the developers oversights, well, Roger Warwick is a synth but he doesn't drop a Synth Component and his IsSynth flag is also 'false' (just like Sturges'). Glory doesn't drop a Synth Component either.
I was using the command on Magnolia because I set her animface to friendly (to not have always the stone face) but for her, it seems it's not working. She always have the stone face even after it was configured on a new game. The only time she shows emotion is when I ask her to work for me. It working for other NPC but not her.
How did you change her AnimFaceArchetype? The console version of "ChangeAnimFaceArchetype" (I think it's "CAA") is kind of broken and it shouldn't be used, the Papyrus version is reliable (maybe 2268B.AddKeyword C866F works too but I haven't tested it). (By the way, now that you mention it, I have some "animation changer" functions.. but I forgot to add them to the debugger)..
Well it's important to know that the game (engine) has a bug that causes NPCs to have emotionless faces in crowded areas (such as in huge settlements). It's best to test that plugin in a cell where there are no other NPCs (Home Plate should do it if it's empty). One of the main features of RefreshActor and ResetActor is to reload the 3D of the actor which usually "fixes" the hardcoded bug (makes AnimFaceArchetypes to get rendered again by the engine properly).
I have another question, when I use this command (the example you provided) "CQF SettlerDebugger RefreshAllActorsWithinRadius 5000 1 0", I get the error "No script attached to object contains a function RefreshAllActorsWithinRadius"
The left hand may not know what the right hand was doing. There was a strange issue with the Brotherhood mission to Arc-Jet where the synths which jumped down to attack once you restored power to the core had no synth components, unlike every other Gen 1 synth in the game.
(Much smaller but equally bewildering, there are exactly four unbattered clipboards in the entirety of vanilla Fallout 4, DLC included. There is the one the Saleman holds in Prologue and three in the side cryo-tube chamber at Vault 111; that's literally all of them.)
This is a really nice tool for anything to deal with settlements. You should put the usage instruction in a readme.txt file in the archive though so people do not have to search in the console or copy it off the description page.
Success this really works!! I used the: 'CQF SettlerDebugger AssignWNPCToWObject (NPC_refid) (job-or-bed_refid)' to assign an interchanging settler to a Bed and it worked, opened the workshop after and the bed showed as assigned.. :) having mysterious lags in Starlight's workshop .. perhaps related to a Bugged FH radiant .. which I have finally replayed 5 times and figured out how to finish and complete :)
49 comments
And since the vendor type ID doesn't even represent what they were pretending to be, I tried to look out for the package they were using but I can't find the log.
Do I need to enable some other setting for the log to work? The log just doesn't appear to be in the Logs/Script/ sub-directory folder ppl say papyrus logs should be, and I can't seem to find it elsewhere either.
Edit, I'm so lost, all my settlers are vendor type 1, level 0, regardless of their actually occupations.
goes to page that has no info since 2024/02/07.
This link works: https://falloutck.uesp.net/wiki/Enable_Debug_Logging, but obviously can't verify if it's the same information as the link from LarannKiar
If that link also goes away, here is what it says:
The Debug Script offers many methods for diagnosing and tracing execution of Papyrus scripts.
The following are some of the most commonly used.
Debug.Trace("This message is written to the papyrus log file.")
Debug.Notification("This message is displayed on the HUD menu.")
Debug.MessageBox("This message is displayed in a message box.")
Debug.CenterOnCell("QASmoke")
Debug.DumpEventRegistrations(self)
However, these methods will not work unless you enable logging:
Open the file "..\Documents\My Games\Fallout4\Fallout4Custom.ini".
Populate the Fallout4Custom.ini file with the following settings.
Log output from Papyrus will be written to ..\Documents\My Games\Fallout4\Logs\Script\Papyrus.0.log or ..\Documents\My Games\Fallout4\Logs\Script\User\ if you have configured a user log.
..\Documents\My Games\Fallout 4\Fallout4Custom.ini
[Papyrus]
bEnableLogging=1
bEnableTrace=1
bLoadDebugInformation=1
bEnableProfiling=1
sDefaultLogOverlay=Papyrus
so i went around the corner and used Settler Debugger ..
First i used .. 'CQF SettlerDebugger IsSynth <refID>' .. to check .. and it worked ! Marie was a Synth :(
it shocked me!! and i though NOW what?
so i noticed you had another command pertaining to Synths.. so i used it
'CQF SettlerDebugger SetWNPCSynth <redID> 0' and entered it ..
then i RECHECKED with the 'IsSynth' check and your mod reported FALSE that Marie now was NOT a Synth...
** FINAL update.. even after using your SetWNPCSynth command which WORKED i confirmed the 'dirty' on a copy of a save file .. However for some reason the Detector mod i am using continues to highlight the converted Synth settler still as an enemy .. but i confirmed she had NO SYNTH DEATH component on a test save file copy .. so .. great mod you made .. too bad i didn't use your detector mod :(
This mod can solve that? It add a missing script? What command need?
Edit: Forgot to say "please" :p
Edit 2: Tried. No luck. Say "not a valid actor".
"CQF SettlerDebugger RequestFullInfo RefID" (like "CQF SettlerDebugger RequestFullInfo 2F1F" for Piper) would return most settler variables. Whether the function SetWNPCCommandable works or not depends on the NPC's settler variables.
Already got all the female raider boss and gunners working for me, was just a small edit. Some quest are bugged or cannot be finished but I dont care.
When one clicks on an object in console mode the RefID appears in the center of the console overlay. This lets one just fire off a command like moveto player and that happens and .bat file commands work that way, as well. Value editing is a bit trickier.
As far as I can tell, the way to get most of your tool commands to work off a clicked NPC in the console would be for the command format to be RefID.(tool command).
An example would be for checking an NPC with f0edf0ed RefID to see if he's a scavenger by the format f0edf0ed.CQF SettlerDebugger IsScavenger or clicking on the dude to call up his RefId and either entering CQF SettlerDebugger IsScavenger or whatever .bat file has that command in it. (The clicking on and possibly scrolling with the mouse scroll button until you're sure it's actually the NPC's ID is like the prid command)
As it stands, the status gathering commands will work straight out of the box, or should at least. I have summaries of each function listed in the .bat file so people can read it as they practice each one. Naturally, this first batch will be the status functions.
Thanks for this Tool.
I have a question, when I did the command "CQF SettlerDebugger IsSynth 2268b" on magnolia, the response was false.
But all the Fallout 4 wiki info says she is a synth?
I was using the command on Magnolia because I set her animface to friendly (to not have always the stone face) but for her, it seems it's not working. She always have the stone face even after it was configured on a new game. The only time she shows emotion is when I ask her to work for me. It working for other NPC but not her.
Any idea why?
Magnolia was actually in a fairly big settlements with a lot of stuff and 40 settlers.
I'll try the RefreshActor or ResetActor to see if it fixe the issue.
Thanks.
(Much smaller but equally bewildering, there are exactly four unbattered clipboards in the entirety of vanilla Fallout 4, DLC included. There is the one the Saleman holds in Prologue and three in the side cryo-tube chamber at Vault 111; that's literally all of them.)
I used the:
'CQF SettlerDebugger AssignWNPCToWObject (NPC_refid) (job-or-bed_refid)'
to assign an interchanging settler to a Bed and it worked, opened the workshop after and the bed showed as assigned.. :)
having mysterious lags in Starlight's workshop .. perhaps related to a Bugged FH radiant .. which I have finally replayed 5 times and figured out how to finish and complete :)