About this mod
Areas can have their own graphics settings. Eg. using the in-game graphics menu in The Strip will only apply to The Strip. Areas can be added down to a single cell.
- Permissions and credits
- Changelogs
- Donations
Location-based Graphics Settings
Basically, the point of this mod is to eliminate the need to pause the game and edit settings when you are in areas that are too taxing for your usual fade settings
The two short videos will demonstrate it well
Brief Overview
Included are profiles that make the below areas graphics settings distinct from the main game:
- The Strip, Freeside, Casino's Ground Floors, Westside, Boulder City, NV Square, Red Rock Canyon, South Vegas Ruins, The Fort, Mojave Outpost, Aerotech, and Camp McCarran.
- Having a profile means when you are in these areas, changes you make to the graphics settings in-game will apply to that area only.
The above is demonstrated in video 1
To Make Other Areas Have Distinct Graphics Settings:
Worldspaces:
- City Districts like The Strip, Freeside, etc, have distinct worldspaces, meaning if you press the create worldspace key, immediately, that area's graphics settings will be distinct from the game defaults.
- Eg. anywhere in the wasteland like Primm. In these cases you press the create cells profile key, walk around the area you want to be added, when finished, press the create cells profile key again, immediately, that whole area's graphics settings will be distinct from the game defaults.
The above is demonstrated in video 2
You can toggle areas on/off depending on preference.
============
Important Note: The settings for specular, lights, and shadows will change and function correctly but may not be reflected visually in the menu screen.
===========
More detailed description below.
Description
Users can select specific in-game areas to have their own graphics settings, which can be edited through the normal in-game graphics menu. Most performance-heavy areas are included with the download. Along with that, users can add and customize settings for areas of their choice, including worldspaces, groups of cells, or individual cells.
Compatible with The Frontier, new California, and TTW.
Basic Use Case
When you’re in places like The Strip or Freeside in the game, if you change the graphics settings, those changes will only affect those places. These profiles come with the mod to get you started.
Premade area profiles: The Strip, Freeside, Casino's Ground Floors, Westside, Boulder City, NV Square, Red Rock Canyon, South Vegas Ruins, The Fort, Mojave Outpost, Aerotech, and Camp McCarran.
Demo of the basic functionality
Advanced Use Case
Let’s say you use a heavy mod that overhauls locations like Vice. In some or maybe only a few cells, your FPS might drop. Adjusting the fade settings will bring the FPS back up. It’s a nuisance to change this every time you go there or put up with the unstable FPS. With this plugin, you can add those cells to a graphics profile allowing you to edit the settings for those cells only. Then when you are ever in those cells, the settings will apply automatically and your performance will be stable.
For mods that significantly overhaul areas and tax performance, this plugin will be useful.
Video demo on adding new custom areas
How to Use
Basic - Out Of The BOX
The mod comes with the ability to edit settings for The Strip, Freeside, and other heavier areas. Editing graphic settings in those areas will apply to those areas and save automatically. You can toggle the areas on or off with the toggle key.
Adding Other Areas
There is a create worldspace profile key and create cells profile key. To create a worldspace profile, press the worldspace key once and it will be added. Cells profiles are areas you make by pressing the cells profile key and walking into the cells you want to be included in this profile. When you have added all the cells, press the key again, and these cells will be added to their own profile. It's a bit like making your own pseudo worldspace for this group of cells. You can edit the settings for this area when the player is standing in it.
Auto-save Settings feature
This is toggled on by default so that the mod is more intuitive for people who just want to use the areas that are provided. For more advanced use, it is probably better to use the worldspace and cells save keys. That way when you are in a situation like being in a cell profile that is nested in a worldspace profile, and edit settings, you can choose which one to save the settings to. Autosave will give precedence to the cells profile in that situation.
Affected Settings
All in-game graphic settings except tree and object lod.
Many mods are taxing on the system. If you make a profile for a mod or an area in NV that would benefit users, it would be useful if you upload it as a config file mod.
Worldspace Profiles
- Press "create_worldspace_profile_key" once. You will be able to edit the worldspace profile in the menu, a profile will be created and a file will be added to Data\NVSE\Plugins\LocationBasedGraphicsSettings\Profiles.
- There is a worldspace called NVMini. It is used in a lot of areas. NV Square and Westside are examples. Because these areas share this worldspace, it had to be excluded from this mod because settings added to this worldspace would apply to all areas that use NVMini. This means you will have to use the cells profile function in these cases. If you try to add a worldspace profile to an area that uses NVMini, a UI message will appear telling you NVmini can not be added.
- Worldspaces can be toggled on or off using the worldspace toggle key.
Cells Profiles
- Press "create_cells_profile_key" and walk into the cells you want to be included. When finished, press "create_cells_profile_key" again and a profile will be created and a file will be added to Data\NVSE\Plugins\LocationBasedGraphicsSettings\Profiles. The settings will be editable immediately in the menu.
- Even if you are in a worldspace that has a custom profile, cells profiles can be created within it. Cells profiles settings take precedence over worldspace settings.
- Cells profiles can be toggled on or off using the cells toggle key.
Renaming Profiles and Filenames
You can name them whatever you want. Best give them a meaningful name. Often Cells profiles will be similar after creation because probably most cells have the "Wilderness" name in-game.
How to Remove Profiles
At the start of the game, all profile files in Data\NVSE\Plugins\LocationBasedGraphicsSettings\Profiles will be loaded into the game. To remove profiles you have to delete the profile from Data\NVSE\Plugins\LocationBasedGraphicsSettings\Profiles. Alternatively, toggle it off in-game. Keep in mind that toggled-off profile cells cannot be added to new profiles. So in this case, it would be better to delete it.
Options File
These are options from the "Options.json" file located in "\Data\NVSE\Plugins\\LocationBasedGraphicsSettings".
Keys:
There is a shift modifier that is on by default. By default, you must hold SHIFT at the same time as using them. This can be changed in the options file.
The keys are described below.
Cells and Worldspace Profiles Keys
- Create Cells Profile Key (“b”): Initiates the process to create a graphics profile for specific game cells. Press “b,” walk into the cells you want to include, and press “b” again to complete the profile. All cells visited will be part of this new profile.
- Save Cells Settings Key (“h”): Saves the graphics settings to the cell profile you’re currently in, but only if auto-save is turned off. If auto-save is on, you don’t need to use this key.
- Toggle Cells Profile Key (“u”): Turns the custom cell profile on or off. If you turn it off, any changes you make will apply to the game’s default settings instead.
- Create Worldspace Profile Key (“n”): Creates a graphics profile for the entire worldspace you’re in with a single press. It’s set to ignore the ‘nvmini’ worldspace to avoid applying settings to unintended areas.
- Save Worldspace Settings Key (“j”): Works like the save cells settings key but for worldspace profiles. It’s not needed if auto-save is enabled.
- Toggle Worldspace Profile Key (“i”): Works like the toggle cells profile key but for toggling the worldspace profile on or off.
Other Options
auto_save_settings:
When enabled, it automatically saves changes made to the graphics settings without the need to manually press the save key for cell or worldspace profiles. Here’s how it prioritizes saves:
- Cell Profile: If you’re in a cell that has a custom profile, any changes you make will automatically save to this profile once you exit the menu.
- Worldspace Profile: If you’re in a worldspace with a profile but not in a specific cell profile, changes will save to the worldspace profile.
- Default Settings: If you’re in an area without a custom cell or worldspace profile, changes will save to the game’s default settings.
use_shift_modifier:
If toggled on, it means you will have to hold shift while using the hotkeys.
log_location_info_to_console:
Every time you change cells, info on the current cell and worldspace will be printed to the console.
Useful to know if in a cells or worldspace profile, if they are disabled or not, and what their ids are, and what profile they belong to.
screen_message_on_settings_change:
Displays an in-game UI message showing when settings have been changed. eg. leaving a custom profile into the game's default.
toggle_auto_save_settings_key:
Will turn the auto-save function on or off. default key is "y"
toggle_log_location_info_to_console_key:
Will turn the log_location_info_to_console function on or off. default key is "o"
toggle_screen_message_on_settings_change_key:
Will turn the screen_message_on_settings_change function on or off. default key is "p"
Installation
Extract Location Based Graphics Settings files into your FNV folder. Mod managers may cause issues because the profile files could be updated in every session and a mod manager will detect this as a change.
Requirements
xNVSE
Uninstall
Just delete the plugin.
NV Engine quirks
1.
The settings for specular, lights, and shadows will change and function correctly but may not be reflected visually in the menu screen. This seems to be engine level behavior and I don't know how to change it atm. I checked these settings' memory addresses after a the plugin tries to change them, and their values are correctly being set to what is in the profiles and are updating the games graphics as expected.
2.
Having the plugin set values to absolute zero created issues, sometimes funny.
The lowest I could get Objects, Items, and Actors down to was 0.49. And Shadows, Lights, and Specular was to what 1 would be in the main menu.
Objects at 0: The screen goes completely blank and monotone.
Items at 0: Seems to draw to the max distance.
Actors at 0: Pretty funny. Almost left this in. They draw to the max distance, but their animations are reduced to hovering and bopping about.
Lights at min: Seems to turn on to max distance. So the lowest lights will go with this plugin is what would be 1 in the menu.
Specular: Not sure, hard to tell, so I added the same minimum of menu 1 just in case.
Shadows: I couldn't test it, my GPU doesn't want to draw shadows for this game. Seems to be an incompatibility. So I put the min to what would be one in the menu also just in case. If you use the menu to set shadows to 0 to disable them, that won't work anymore and you will need to disable them in the NV ini file. bDrawShadows=0
Grass could be set to 0 by setting it to -1. So you can still disable grass by setting it to min in the menu.
I may be able to circumvent these minimum values limits in the future by using nvse commands to disable the setting at 0 rather than setting them to zero. But that's for another day. As it is the actor, objects, and items, they are effectively 0, and the lights, specular, and shadows are as low as they would ever need to be and can just be disabled in the ini if you don't want them at all.
here is the ini values in case that is what you want to do.
[Display]
bDrawShadows=0
bDoSpecularPass=0 Looks awful
Cant be done for lights with the plugin
Acknowledgements
Wall_SOGB was particularly helpful and gave good info on what was possible with normal GECK scripting, suggested making a plugin, where to begin, the benefits of using json files over inis, and provided links to useful libraries. Much appreciated.