Feel free to use some of the sloppy workarounds and code segments I invented for this on your own. BUT BE WARNED! Beside of adding some comments of how the stuff works, I also added stupid shit comments and bad language, meme references etc. as comments. You have been warned! Look into the plugin code on your own responsibility!
Well... After rewriting the main script in V2.5, I either deleted many of the comments. So maybe it isn't that awful anymore? XD
File credits
JIP and LN for the awesome NVSE plugin without this mod wouldn't have been possible! Sarge198 for allowing me to use his Pipboy and Pimpboy meshes which changes the glow color. Virion for giving me either permission to use his assets, but I rather decided to stick to Sarge's meshes. Still thanks, I appreciate your goodwill. :) FiftyTifty for helping me out finding a solution to apply the meshes via script. Thanks to Applecore1, for the initial idea of different glow colors. Even though I won't cover all 16 millions of. XD But I would be happy if the 10 available options of the MCM box could be full. :) Aanderz for inventing the fix to equip the Pipboy during Game Mode, but without producing a CTD.
Donation Points system
This mod is not opted-in to receive Donation Points
Changelogs
Version 6.4-LITE
As I recently worked with good ol' Oblivion Gamebryo, I thought it would be nice to come back and finally perform the cleansing a few people in the comments wished for. No more forced HUD and terminal colors. HOWEVER, the display color is still present, as that one is managed by the presets anyways. Even though the presets are a free choice. ;)
Version 6.4
I just moved the "Script processing delay" setting to the first page of the mod and therefore also removed the scrollbar from page 3.
I changed the description of the "Script process delay" setting and included a warning regarding very high values.
I've added a new video where I test 0.01 seconds script procressing delay and 1 second script process delay. A delay of 1 second still seems to work, but it looks awful. XD
Version 6.3
I've fixed the exchange between Pip Boy and Pimp Boy at Mick AGAIN. -.- However, I wrote a pretty lazy UDF previously, as it called another UDF which also performed unnecessary stuff. Yet it worked. :P The 2 new UDFs only contain the necessary code to track and apply the changes.
I've fixed a minor annoyance: If you look at your Pip /Pimp Boy, then go into MCM to change the color preset, your pipboy display was fully lit. So you barely saw the menus. XD
Version 6.1
I couldn't be more happy. :D Finally, I was able to get the solution by Aanderz and his Pipboy Readius fixes working for me too: Player.ShowRepairMenu Player.EquipItem Pimpboy 1 1 ResetPipBoyManager Con_CloseAllMenus That's all what was necessary. Even though "Con_CloseAllMenus" isn't the best solution, this command won't get called when being in Pipboy menu. So it should work nice. When in menu mode the switching works differently anyways, so that should be as good as it gets. With no nasty, blocking workaround by opening the console menu. :D My issue was that I previously forgot to use "ResetPipBoyManager", even though I am still unsure what exactly that function does as it isn't explained in the GECK Wiki pretty well. But it obviously does all good for this to work. :D
Version 6.0
After having issues with the Readius booting up properly (having a black display at start), I've banned all SetSystemColor commands from the Initial UDF. I don't know what I was thinking to force the default colors right there, but this was the actual issue. oO
I've added an exception that checks if you have the Pip or Pimp Boy equipped into the MCM menu. If not, then you won't get the option for presets. However, as the Readius isn't added in an instant, it may happen that you have these options upon startup. Just wait until the Readius mod removes your Pipboy and you are good to go.
I've completely broken out all MCM functions from the operational script and added these into an own MCM script. Simply as I've added finally the option to give the player control over the quest delay time. Which means you can set how fast the operational script will fire. I personally prefer very low values, but the new default is 0.2. Lower is even better and I haven't experienced issues myself setting it to 0.01. But that's your choice. :P
When you have the Readius, there is now an option available to match your light color with the display color. This option is always available if you have no Pip Boy nor Pimp Boy equipped. Using the regular options didn't crash the game, but still was rather unsafe. So I disallowed these, when the proper device isn't equipped. :P
In Game Mode I had If WhichOne TapKey 41 Endif which was a useless query as I could have used "TapKey 41" right in the UDF, which I have done now. This means we get +1 frame into the whole functionality. XD Unfortunately there was no other solution to come up with. I tried the things I've read on Loverslab and the Readius fixes from 2013 which are now discontinued. There it seem to work, but somehow it doesn't for me. :( Anyways, by having the option to configure your script run delay you should be able to set up the mod so you never see any console open. :)
Version 5.2
It's like always... The showcase scenario. I wanted to record a vid of the new functions, but suddenly realized that there are some flaws. I don't know how the base game handled it (maybe it didn't), but when you switch between Pip Boy and Pimp Boy at Mick in "Mick & Ralph's" funny issues can happen. First of all, the color switch to default amber (Pimp Boy) or green (Pip Boy) has to happen for interior and exterior light variables. One are set via UDF call, the others have to be taken care of idependently. But the worst thing was a glowing light, when switching between the models. I had to create an UDF to catch all the different occasions, but for the glowing light right after switching the models, I had to add some minor function to the operational script. OP script has now more than 700 lines. oO I think I shouldn't add anything more. XD
Version 5.1
As by adding a new query regarding which color setup is chosen by the player, I've either added the value 0 as a condition that never gets asked for. So with that you can turn off all UDF calls for color keys, which permanently get performed in the operational script. However, in all previous versions this always worked from start, so I added another line of code into the initialization UDF to set the color key setting to 1 upon start. If you don't wish to have that on 1, simply set it to 0 (off) in MCM menu. It is either NOT included in the MCM default script so it will stay on any option you have chosen through the whole game.
Version 5.0
Removed the option of matching light colors with the display color, by switching the default settings. There is only a legacy function for this setup when initializing the mod.
Added a new display color option with which you can change the Pip Boy display color to any value you like.
Added a new HUD Main color option with which you can change the main HUD color to any value you like.
Added a new HUD Alt. color option with which you can change alternative HUD colors (like enemy health bar or enemy name) to any color you like.
Added a new terminal color option with which you can change every terminal display to any color you like.
Added a new main / pause menu color option with which you can change the main and pause menu to any color you like.
Added an option to switch the color keys to control the Pip Boy light color, HUD Main color or HUD Alt. color directly ingame.
Added a dynamic way of determinig the current display color set in "Settings" > "Display" and make this to the current default color in MCM (if you reset the setting to default).
Added a dynamic way of determining the current HUD color set in "Settings" > "Display" and make this to the current default color in MCM (if you reset the setting to default).
Added a function that closes an unhandled exception, when you switch between Pip Boy and Pimp Boy when talking to Mick in Mick & Ralph's.
The Scale Defaults in MCM menu are now working properly.
Added 6 new color presets.
Added a function that will dynamically revert the color back to default if no color preset is chosen.
Switching between default and color preset should now work dynamically. If you have no color preset chosen in exterior while being in exterior with your pipboy, the color of glow and light should be green. If you do the same with Pimp Boy the color and glow should be amber. If you have an additional interior preset, the light switches from the default mesh to the new color when entering an interior. Works vice versa (having default interior mesh, active interior mode and a custom exterior mesh).
Added an additional option to activate the custom presets by also allowing a dynamic change of the display color, to match the light and glow color.
Version 4.0
As previously stated, the way I wrote V3.6 wasn't the best one. Too much useless UDFs where I lost the track over possible issues. Rewriting it showed me a lot of issues I was able to finally fix. Basically I wanted to record a video of 3.6 where I test the dynamic glow colors, but I always ran into some issues. XD Version 4.0 is now finally the version where I am absolutely happy to record a video. :D Enjoy!
I've also raised the quest runtime, so the script won't fire that often as before. It's fast enough to catch all keypresses which are necessary for the hotkey functions. If you use custom color presets with the dynamic glow color it is still necessary to shortly open the console when transiting between interior and exterior (and vice versa). I still need to use "Player.EquipItem PipBoy" (respectively PimpBoy), to switch the meshes for the glow colors. But as my mod normally don't produce any console output that shouldn't be very bothersome. If you want, you can decrease the quest runtime again via FNVEdit, which reduces either the time the console will be visible. As I use a LOT of conditions all functions should only run when really necessary.
The color change block (initialized by "DPLightChange := 1"), will now be run on the very top of the GameMode block. Simply as it would produce issues if ran later together with color presets. That means the actual correct color for your current location (exterior or interior) is applied 1 frame later. You sometimes may notice that the wrong color is initially loaded, but that only sticks, until the GameMode block is run again. It's way better than all the other issues that may arise, when having the color change block been run at the bottom of the script.
Also the "Default" button in MCM works properly, except of switching the time conversion back to 12 hours. This is a display choice for the user just for MCM and it stays at what it is. ;) In V3.6 the "Default" button didn't really do what it was meant to do.
Version 3.6
Alright, I had a tiny sweet fix for the light being off, when loading an unitialized savegame where the light is currently on. However, as the initialization UDF didn't work that fix was gone and furthermore by implementing presets another pretty "unfixable" issue arised. Both made me adding a switch that observes the current pipboy light status and reacting when there is something obscure (switching it on or off/on). Which is dumb. XD As of fixing the initialization UDF, I've removed the whole "fix". But as of the presets, I will add another point to the "Know Issues" section in the description.
Version 3.5
When transfering some code from a script into an UDF, you should be careful with the variables. I had following line in the code: "Let DPLightOPQuest.DPLCurDefCol := MsgText". I am not sure how it compiled without issues previously, but I fixed it now to: " Let DPLightOPQuest.DPLCurDefCol := DPLightOPQuest.MsgText". MsgText was a variable that wasn't covered in the UDF so basically the UDF would halt at this point. oO Now with the correct reference, everything should initialize fine. :)
Version 3.4
Took care of an unhandled exception: Turning the interior preset off in an interior, when the exterior preset is on, the light glow didn't switch to the exterior preset.
Playing on a savegame with presets set up and loading one where no presets are set up resulted in the presets being taken over. They are now reset to their default state, BUT ONLY when their current model path matches with any of the ones for Sarge's meshes. Just a heads up: The model path is NOT saved into the savegame, therefore it has to be changed every GetGameLoaded. Even though that's a pain in the ass, it's way cleaner, especially when you remove this mod. TAKE THAT CREATION ENGINE!
Took care of an unhandled exception: Switching off the complete interior light function when an interior preset is active, while being in an interior and an exterior preset is active too, the light glow didn't revert to the exterior preset.
Renamed Pip Boy 3 Billion to the correct Pimp Boy 3 Billion in MCM.
Version 3.0
Added dynamic glow colors provided by Sarge198. Aside of that, Virion gave me permission to use his assets first, so thank you very much for that.:) Sarge covered either the Pip Boy 3 Billion, so I was very happy, that he either gave me permission. Even though that meant a bit more of work. ^^ It was a pain in the ass to program a dynamic switch of the meshes to be honest. Especially as there are a few issues, which I documented under the "Known Issues" section in the description. Even though these are by far not that bad as issues of workarounds pre 2.5. :P
I hope you enjoy the dynamic presets. MCM allows room for a total of 10 options in message boxes. So I could add 5 more colors, if I would know how to mesh the colors properly. oO Maybe Sarge provides me a small guide, would be cool. :D Yet, thanks again for your contribution already. :)
Thanks to Applecore1 for the motivation and initial idea. Even though, I still don't plan to create 16 million meshes for any single color. :P :O
Version 2.8b
Alright. The color support for the ingame choice in the "Display" menu is now in. And loading a savegame with the light on turns out to be pretty consistent, with one already mentioned exception. I wonder if the dynamic meshes really broke everything further, but I could have sworn that I had the problem either in v2.8a. oO Anyways, I'll think about a more efficient way of implementing the meshes. Maybe just one big UDF with tons of conditions. XD
Version 2.8a
Unfortunately, I've introduced a bug by a bad workaround. Normally when you used the new V2.8 on older savegames, you lose your current color against the game default color at least once, when you go into the options. My solution was so bad, the color change in MCM completely refused to work. So... I removed that "solution" and you have to bear with getting your lights once set to Amber, White, Blue, Green, like set in the game settings. This is one minor issue compared to non-working functions. :P I discovered the issue, by making a clean savegame for running the initial UDF once more. I may record a small video about the current functionality right now. :D
Be sure that with "once", I mean "once". There is a variable which saves your current color setting to compare it with changes. As this variable is zero it mismatches with the current setting. The current setting will be saved into that variable and the light will change once to the game default color scheme. Afterwards this won't happen anymore.
Version 2.8
I've finally make the actual Pip Boy light setting in the pause menu of the game under "Settings" > "Display" compatible with the mod. If you change that setting it will overwrite your current lights. Works best from 2.6 to 2.8. I've either extracted some parts of the main script which only needed to be run once or get called often on different occasions to reduce the script size a bit. However, the settings works like this: If you change the Pip Boy light under "Settings" > "Display", the actual color of this ingame setting will be applied to the mod values. They will either be applied directly to the light if you leave the menu. If you change the colors again in the mod itself, then they will get overwritten again. This works for the initial setup (previously the plain greenish default color of PipBoyLight640 was used) too. So you will start New Vegas with the actual default color set in the options, instead of the plain one. If you go into the options and change the settings there they will overwrite the mod settings immediately. I think I tried to work this annoyance out back in 2017, but I couldn't find a good way to get the current color code from the INI to compare it with the previous one. Especially that only worked when I converted these codes into strings. :O I am happy that this is finally no issue anymore. :)
I've added the "No stealth activation" function now exclusively to the interior auto-activation and stripped off the two functions of turning the light off. These two functions are now in a very own function and can be handled in two different ways. 1.) The light will be automatically turned off, when starting to crouch. 2.) The light will be automatically turned off, when starting to crouch. The light will be turned on in exteriors, when stopping crouching and the time frame for auto-activation is met.
Version 2.6a
The issue with the light that was off, even when you loaded a savegame where you had it on bugged me already a long time. I think I even had some dirty fix for it in the older version, where I hadn't "TogglePipBoyLight" available. XD
However, this is somewhat unbearable. I tried to make a fix for this behavior in the newest version (3.6), but I couldn't get "player.hasmagiceffect piplight" returning true, even in GetGameLoaded, so there was something that broke the light. Even though switching it back on fixes issues, I still don't like such annoyances, especially as it worked previously.
Yet... Farer away than I thought. I tried V2.8a and had the same issue there. oO Only with 2.6 I had a glowing light when I loaded up a savegame with Pip Boy light on.
When the game is started fresh, you even have glowing light on an uninitialized savegame. In V3.6 I always had funny behavior when loading a savegame with glowing light. So I rather started to use V2.6 to implement all functions again. Especially the way I implemented the dynamic meshes was a bit... disturbing. XD At least I know now what things have to be taken care of. :)
Version 2.6
Utterly useless. I just didn't like how overloaded the "Options" menu looked like. So I moved the key setup for radius, fade and RGB values back into the exterior menu and either switched rows in the interior menu to match with the exterior menu. There is now more room in the options menu and it looks a bit more appealing. :)
If you don't like, then use V2.5 instead. :P
Version 2.5
I've fixed the MCM menu regarding the default scale values. These were implemented wrongly and I wonder if they worked in the previous versions. oO
I've fixed the scale menu of the Light Activation Time. I think I've fucked up copy pasting. *faints*
I've added the exterior auto-activation back. Again with a time frame and a time conversion function to display the time frame in 24 hrs or 12 hrs format. This setting doesn't affect the actual scale menu though. You need to use the 24 hrs there.
I've added interior auto-activation. I use the "GetActorLightAmount" function from JIP, but the results are a bit too difficult to determine for a proper on / off functionality. So, the light just wants to turn itself on, when it thinks it's too dark around the player. The value which determines when the light turns itself on, can be set by the player.
As the interior auto-activation turns the light on everytime it is off and it thinks it should be on according the light values, this can lead to some annoyance. So I came up with another function that stops the light turning automatically on, when the player is in sneak mode (crouching). Additionally, this function also works to automatically turn the light off, when entering crouch / sneak mode. The latter function even works, without interior auto-activation active. The exterior light will activate itself, when this is turned on and the player STOPS crouching, as long as the time frame is met.
Version 2.0
I've enhanced the way the pipboy light activates itself when issues are occuring thanks to the TogglePipboyLight function of JIP LN NVSE plugin.
The previous auto-activation function got scrapped. I added a function instead, which will keep the pipboy light active when leaving an interior to an exterior. Which was actually the main purpose for making an auto-activation. XD
A new function with which you can add the activation of the pipboy light to another key was added.
The menu layout got changed drastically. All extra functions which are not either included in the "Interior light (optional)" menu got moved into a new "Options" menu. Scrolling is now not necessary anymore.
Version 1.8
Changed the reapplying of the light, after leaving the pipboy menu from this:
if DPLightPlayerActPip >= 1 && DPLightPlayerActPip < 2 ;This is necessary, as the gamemode starts as soon as the player press the button to leave pipboy menu. Well, there is still the animation...
Set DPLightPlayerActPip to DPLightPlayerActPip + GetSecondsPassed
elseif DPLightPlayerActPip >= 2 ;There is a mod which makes looking at the pipboy quicker. I used the VANILLA animation to determine the timing!
Set DPLightChange to 1 ;We reapply the correct light to the pipboy.
Set DPLightPlayerActPip to 0
endif
to this:
if DPLightPlayerActPip >= 1.5 ;So half a second after the pipboy animations stops playing, we reapply the light.
Set DPLightChange to 1
Set DPLightPlayerActPip to 0
elseif DPLightPlayerActPip >= 1 ;This is necessary, as the gamemode starts as soon as the player press the button to leave pipboy menu.
if player.isanimplaying Pipboy == 0
Set DPLightPlayerActPip to DPLightPlayerActPip + GetSecondsPassed
endif
endif
So now, also the animation is taken into account and always half a second after leaving the pipboy the light should be applied again.
Ah, and to calm the super coders down here:
The variable "DPLightPlayerActPip" is set to 1, while the player is in MenuMode 1 AND "HasMagicEffect PipLight" is true.
So this section will only be running, when necessary. :P
Version 1.7
As described here
https://forums.nexusmods.com/index.php?/topic/6775287-wtf-is-wrong-with-let/?p=61414917
I've used the "sv_destruct" function in a wrong way. Even if the script compiled, it still produces a "silent error", which doesn't affect the outcome but may annoy the engine (which result in lags).
Version 1.6
When I started to code this mod, I actually got into a bad situaton where I added function over function into it until I almost lost the overview.
I've cleaned some useless stuff now and completely rewrote the auto-activation / failsafe code for the pipboy light.
This should be this convenient that there is no need for a kaputte mod version.
I either added a scale for the light activation time from 0.10 to 1 second. This variable now also intervenes in the failsafe and makes it pretty accurate.
Furthermore there is always an exit for the worst case included that simply enables all keys which got disabled during the failsafe.
So depending on how long the activation time of the light is the lesser you'll notice locked keys.
Version 1.5
First of all, it's about the convenient failsafe-activation right after loading a savegame after restart, which was saved with an active pipboy light.
Gamebryo has a big ass of problems with loading a savegame right after start when it comes to applying mod settings. So, we see the regular pipboy light here for good (as the changes of this mod don't get saved into the savegame!). Therefore any startup the light will be applied per script and the failsafe-activation (a script automatically deactivates and activates the pipboy again) will run.
Yet, this failsafe is very grumpy. One distraction (like entering the pause menu or activate a door or simply speaking to someone) and the system breaks.
So... What if you get forcefully moved into conversation? Yes, it breaks too.
As you see in the demonstration video, the debug message which fires up there shows the variable which is responsible for the auto-activation.
Stuck on 3 would be the result in V1.4 and previously, with very bad results! Here I've added a failsafe for the failsafe.
The auto-activation will restart and fix the light either. This will take one second in which you can't to do anything (except moving around and fighting) but it may be the safest way to perform this.
What is the worst case without this failsafe-activation at all?
1.) You restart game and load up a savegame in an interior but have the exterior color active even if you activated to load a different interior color.
2.) You restart game and load up in exterior, enter an interior but still have the exterior color active.
As all those issues can be avoided by simply turning the pipboy off and on again, I upload a version without any failsafes.
So the player has to fix it him- / herself, by de- and reactivating the pipboy light ingame. :P
Yet the failsafe version will be my personal favorite as I am a lazy ass. XD
Second fix:
At the very end, you see that I open up the pipboy.
Light radius and fade are reset. I wonder why I never noticed this before XD
However, as you see in the demonstration video the regular light will be applied again shortly after leaving the pipboy.
Version 1.4
I fucked it up again, similar to V1.0.
MCM programming is a pain in the ass, but master Pelinor would be disappointed if one of his pupils speaks bad about his enormous construction.
We all simply can just stick to his setup of MCM and after all...
It's obvious, that MCM is way more comfortable than any messagebox-related configuration setup.
However, one single slot of the MCM is controlled by many lines and one of them at a wrong position or with a wrong number or simply a wrong text will fail the MCM.
I swapped the sentences of radius alteration rate and radius hotkey similar as like for fade by copy paste. XD
Fixed now.
Also I told in V1.2 that switching between key input method or addition and subtraction will produce a message that lasts for 1 second. Actually it was 1.5.
I probably have set it to 0.5 as reaching the maximum values of the settings, but I still wanted to raise it. Instead of changing 0.5 to 1 I simply overwrote the 0 with a 1 ending up with 1.5
Such a lazy ass! XD
Fixed at last!
At least I finally added the notification about how to unset any hotkey.
So we got one meaningful addition for this update. :D
Version 1.3
Why did nobody tell me that this ominous brightness settings was actually the "fade" setting of lights?
Luckily a fellow modder did. ^^
I've added the fade setting now in a similar manner as the radius setting:
With a global max value to be changeable by the user to ensure that these values might not overflow or crash the game. Current settings are already dumb so lower the max values or simply set them to a nice value in the MCM menu from default (1.20) to 10.
I've reshaped the whole menu either and scrapped a few 1:1 copies of the exterior menu in the interior menu.
The interior menu now only has 6 settings which were the only ones that had different variables:
Range, range alter. rate, fade, fade alter. rate, color, color alter. rate.
The former exterior menu is now the main & exterior menu. Simply as there are all settings regarding hotkeys and advanced options.
Version 1.2
The single input for fine tuning was pretty useless so far as you had to guess your values. Well, I hate message boxes and also spam of short messages.
But thanks to JIP LN NVSE plugin, the short messages can be so smooth! If you switch to "Single Key Input" for fine-tuning, any button press will show you the change for 0.25 seconds. If you reach the maximum it will be shown for 0.5 seconds. A change in addition, subtraction or the key input will be shown for 1 second.
Version 1.1
The color scale in the MCM had no own title, so it always took over the title of the previous scale menu. This is fixed now.
Melting Goodsprings... ...with the pipboy?
That already looks like some sort of bad radiation. oO
Formal warning: If you want to use some of my code segments, you will encounter various proper comments which explain why I coded the way I did and why some sloppy workarounds were necessary. BUT, you'll also encounter stupid comments, bad language and retarded meme references! So check the code of my plugin on your own responsibility and don't blame me for being a human!
Story: There are a lot of pipboy light mods here, which mostly do static changes. This one was aimed to let the player mess around with the light as much as he / she wants and that in a fully dynamic way directly in the game.
Features:
Change the radius of your pipboy light (maximum radius exterior: 300, maximum radius interior: 100). It's possible for you to change the maximum values, but I recommend to not use ridiculous high values (it's even better to lower them as light sources have a performance impact and big light sources even more of course). To change the maximum allowed radius, just download FNVEdit and open my plugin with it:
Change this BEFORE you load my mod into your savegame! Or leave it if you are fine with 300 feet. Same goes for the max. radius of the interior light. You can also change this ingame, by opening the console and type: SetGlobalValue DPLightMaxRadExt 100 SetGlobalValue DPLightMaxRadInt 50 The values 100 and 50 were just examples.
Change the fade (respective brightness) of your pipboy light dynamically ingame. Herefore, 2 new global values are defined. Use them to change the maximum default settings (which are already retarded honstely oO). You can also use the console to change these, similar as the max radius values:
SetGlobalValue DPLightMaxFadExt 5 SetGlobalValue DPLightMaxFadInt 10 The values 5 and 10 were just examples
Change the color of your pipboy light dynamically ingame, by manipulating the RGB values.
Change the activation time of the light from 0.10 seconds to 1 whole second. This works in conjunction with the autoactivation and will make you happy for not wasting 0.8 seconds to activate the pipboy light (I have no idea why someone would raise that to 1 whole second, but I added it as max value. XD)
A fix is integrated which will keep the pipboy light on, when you travel from an interior to an exterior. Setting is optional.
Added exterior auto-activation with a time frame. So everytime you enter an exterior, the light will turn itself on from 19:00 (7 p.m.) to 06:30 (6:30 .a.m.) or any other time frame you set up. Setting is optional.
Added interior auto-activation. This one is a bit more annoying as it is working continuously in interiors. Everytime the light is off, the light amount which drops onto the player will be determined and compared to the setup in the options menu. If the value of light is lower or equal to the value in the options menu, the Pip Boy light turns itself automatically on. Setting is optional.
Added a protection against the interior auto-activation with additional benefits. If you active the "No stealth activation" setting, then the interior auto-activation won't intervene, while you are crouching. Additionally to that, everytime you start to crouch the Pip Boy light turns itself automatically off. When you meet the time frame for the exterior auto-activation, then the light will go back on if you are in an exterior and stop crouching.
Interior light (optional): While the Exterior light menu is considered as the menu for general light settings and advanced settings, you're also allowed to activate a different radius and light color, while your player characters is currently in interiors. If you activate this setting, the light changes will be applied dynamically either, depending if you are in an exterior or interior. So, if you are in an exterior the light from the Exterior light menu will be used and if you are in an interior the light of the Interior light (optional) menu will be used. At least as long as you have the option activated.
Fine-tuning now allows you to see the current value, for any button press. Sounds like message spam, but the short messages are so smooth you'll like it. Otherwise, just turn the notifications off. :P
Known issues:
When loading an uninitialized savegame from an initialized one where you have set a color preset, the Pip Boy light in the uninitialized savegame will be off, even if you had it on while saving the game. I consider this as minor issue and won't fix it. The lights work pretty fine when the mod got initialized. Furthermore, I am unsure if there is even a method to catch this issue. As the light fix works well, when loading an uninitialized savegame directly after game restart. Therefore I blame the new mesh paths for presets to be the fault of an instantly turned off pipboy light. So that appears to be a reasonable won't fix for me. Also, when loading from an initialized to an uninitialized savegame, many values will be taken over which is an intended feature. If you want to revert back to the default state, there is a "Reset" button for each mod in the MCM menu. Either you can reset just some settings like the radius or fade back to default in their own scale menu. As there is either a button for. :)
The actual light radius: I tried "SetRadius" and "SetLightTraitNumeric 0" to change the radius of the pipboy light, but I had no visible result ingame, even if the values got applied (as tested). So I dumped the radius completely and just used "SetNthEffectTraitNumeric 0 0" for the magnitude of the PipboyLight actor effect, which worked pretty well. Fine.
The global short values "DPLightMaxRadEXT" and "DPLightMaxRadINT" should determine the allowed max range of the radius. Standard is 300 feet for EXT and 100 for INT. If you change this values on an already initialized savegame it seems to have no effect. I tried it with my experimental one (500 feet EXT), but couldn't lower the total maximum to 300 even though I changed the correct value. Only after reloading a savegame without my mod been already initialized, the max radius of EXT turned to 300 feet. So if you want a different max radius than I have set, open up my mod with FNVEdit and change those globals to any value you want, BEFORE you load my mod into your savegame. It wonders me that the globals won't change the max allowed radius on the fly, but I don't bother actually, since 100 and 300 are fair values at all. At the end it's your choice which range you want to use. BUT BE WARNED: If you set the range too high, it may break your game! I expierenced lags with 500 feet. Won't fix.
Lowest magnitude (range) 15 feet? Yeah, I expierenced issues with lower values, by not being able to change the color anymore. 15 is the Fallout NV vanilla standard, so I thought it might be best to keep it and avoid said issues. If it comes that you want to completely deactivate your light, just turn the color to black. XD Fine.
With an enormous radius, you'll often encounter the bug of a "dark" ground, which is present even in vanilla (but not this noticeable as of a lower pipboy light radius). I heard rumors that texture mods or new terrain meshes could fix this, but I never encountered a fix yet actually. So you've to get used to it. The first encounter of this issue is in Goodsprings a little bit furtherout, frontside of the saloon. Won't fix.