Fallout 3

File information

Last updated

Original upload

Created by

skittered

Uploaded by

skittered

Virus scan

Safe to use

About this mod

Yet another Ammo Weight mod. This one aimed at making it easier for YOU to add weight to that obscure ammo from your favorite mod. .. Vanilla and Full CALIBR versions available.

Requirements
Permissions and credits
Changelogs
** requires FOSE ** & ** Command Extender ** (for display of Ammo Weight in menus)

A mod aimed specifically at trying to make it easier to tweak ammo weights, or add weight to that one obscure ammo type from that one mod you use that no one else seems to.

FO3Edit friendly for those unfriendly with the GECK or scripting.

12 Formlists for ammunition.
12 Global variables for their weights.

7 other Globals for a little more control.

Adding weight to your favorite ammo is as simple as adding it to one of the lists ..
Spoiler:  
Show
FO3Edit basic instructions

Open FO3Edit, this mod, and mods you wish to add ammo from if needed.
Be sure this mod loads after the others.
...
--- To add ammo to a list from a new mod ..

(1)
In the left pane, right click this mod, "Add Masters..."
Select the mods you'd like to add ammo from.
Click okay.

(1b)
Alternately, if you plan to rename the ammunition, you can copy them as overrides into this mod and it will automatically ask to add the new mod as a master

In the left pane ..
.. Select all the munitions you wish to copy as overrides

Right Click on a munition .. "Copy as override into...."
.. choose this mod, click okay

(2)
Open the ammunition tree of the mod you wish to add ammo from, or of this mod if you've copied them as overrides into it
.. Select a munition in the left pane.
.. In the right pane, select the "FormID" row.
.. Press CTRL+C .. this will copy the form id to the clipboard.

(3)
Open the "FormID List" tree of this mod and select the List you'd like to add the ammo to
In the right pane ..
.. Right click the "FormIDs" row, "Add"
.. Right click the new "NULL - Null Reference [00000000]", "Edit"
.. Right click in the text box and paste the previously copied FormID (or CTRL+V )
Click okay.

(3b)
Remember to set the zAWeight## variable that goes with the list if you added ammo to an empty list.

==============
That's it. The ammo will now be calculated in with the rest.

It's also possible to change the weight an existing munition gets by and adding it to a different list, and removing it from it's previous list.

Unfortunately it does have to be done one at a time like that in FO3Edit.

These changes need to be made before starting a new game; or before playing again after making a clean save without this mod in it.

Changing the single round weight of the ammo in any given list is as simple as ..
.. modifying the Global Weight variable for that list before starting a new game; or before playing again after a clean save
.. modifying the variable live during the game using the console
Spoiler:  
Show
default console key is Tilde
~

set zAWeight01 to 0.04

--OR-- .. using the in-game GameMode Settings / Options Menu

The settings menu can be accessed by holding:
CTRL ]
.. (control right square bracket) .. until the first menu appears
Spoiler:  
Show
the length of time you need to hold the keys down depends on how much time was left until the next weight check


NOTICE
There is a very minor hiccup in the UI display because it's almost impossible to get the scripting to run fast enough to avoid it.
The exception might be writing new xml; but that would most likely end up creating more conflicts.
Injecting new xml with Command Extender might be a possibility, but seems like it might be a bit hard on processing, and maybe a tad bit of overkill considering the temporary nature of the display and the span of time typically spent looking at the weight.
Anyway .. here's to hoping at least this much works; and yes, all the other options are still there, with all the same restrictions to the display.
Spoiler:  
Show
A little bit of scripting knowledge and a FOSE+Command Extender Enabled GECK is all that's needed to change the hardcoded values that are displayed as the ammo weight.

The main "Name Suffix" display scripting is inside the Quest zAWQOptions stage 121 .. all existing values are already there.
They can be altered or added to, then reloaded with a clean save and a settings option.

The main UI display script is in zAWQUIScript .. and uses the existing lists to set the display values.
If the ammo is already in a list, the associated value for that list will be displayed.

The 4 "blank" lists included have already been written into that script with an arbitrary value.
That value is the only thing that needs to be changed for the correct weight associated with those lists to be displayed in the UI.

It doesn't seem to be possible to make these dynamic.
SetUIFloat less than 1 is displayed as zero ..
SetUIString is set as that string without interpretation or 'numeric' value.
setName works the same.

The only exception to this seems to be when using internal strings as the set value.


=============
Conflicts
It's not recommended to run multiple scripted 'ammo weight' mods together.
However, if a mod has the option to turn their ammo weight version off, it should work.

Not really a conflict .. but .. The "Supply Item Name" and "Ammo Name" options get applied live, in game, and will override any name change made by any other mod, regardless of load order; including your bashed/merge patch.

Also not really a conflict .. The UI ammo weight display can be stopped/disabled in the Options Menu under "Change Ammunition names"

==========
Permissions
Credit where credit is due.

This is meant to be a catch-all (mostly) easy method for anyone looking for a standalone ammo-weight mod they can modify by themselves.
It would be preferred to have suggestions for the Vanilla and CALIBR Library integrated here rather than having alternate versions uploaded.
If there's a better list than what I've come up with and modified from existing ideas .. I'll gladly have a look at it.

==========
credit / Inspiration

DAV - weighted AmmoWeight by poncratias
https://www.nexusmods.com/fallout3/mods/4049/?

AmmoWeight by AnT01
https://www.nexusmods.com/fallout3/mods/611/?

FWE's ammo weight version

Vicious Wastes - live name change idea

==================================================
Full Documentation
Spoiler:  
Show
This information can be found exactly as is in a dummy script in the esp itself
;;
;;-- All Globals can be set prior to starting a new game; before playing again after a clean save;
;;.. from the console in game; or from the in game options menu (except one)
;;
;;.. Global values changed via console, or settings menu, are immediately usable at that value,
;;.. which also gets stored in your next save game
;;----------------------------------------
;;- console: Tilde ~ :default
;;
;;-- set zAWeight01 to 0.04
;;
;;.. would change the single round weight for the ammo in zAWList01
;;.. unfortunately the weight suffix cannot be modified dynamically to include this value
;;----------------------------------------
;;-- In game GameMode options menu; accessible by holding
;;
;;-- CTRL ]
;;
;;--( control right square bracket )
;;
;;.. the time you need to hold the keys down until the first menu comes up
;;.. depends on how much time was left until the next weight check
;;----------------------------------------
;;
;;-- By default the Supply Item Name and the Ammunition names are left alone
;;
;;-- You can change the Supply Item name in the esp itself
;;.. or .. change the 'zAWSupplyItem' global in the esp to the number reflecting the name you'd like
;;.. or .. use the in game options menu
;;
;;-- If you'd like to see the default weight suffix (Wg 0.00) on the ammunition names
;;.. you can change the 'zAWAmmoName' global to (2) in the esp
;;.. or .. use the in game options menu
;;
;;-- Default ESP Supply Item and ESP Ammunition names will only be seen again
;;.. after saving and restarting the game if you've used an option other than default
;;.. this is a limitation of the engine ..
;;.. there is no way to store or use the ESP name to restore it dynamically
;;--
;;- FormID Lists and Global values are stored in the save file
;;.. a clean save is needed to refresh them properly if you've added any ammo to the lists,
;;.. or modified any of the Globals, using FO3Edit or G.E.C.K after saving with this mod active
;;----------------------------------------
;;----------------------------------------
;;
;;-- zAWAmmoName -short (0):default
;;-default: uses the name from the winning mod
;;(after you save and restart if an option was used)
;;
;;= 1 = protects the vanilla default name
;;= 2 = adds the default weight suffix from this mod to the name (Wg 0.00)
;;... any mod changes to the names will be overridden
;;
;;- these affect Vanilla (and CALIBR) ammuntion only
;;.. if you've added custom ammo to any of the lists, you would need to copy an override
;;.. from that mod and rename them yourself to see it in game.
;;----------------------------------------
;;
;;-- zAWSupplyItem -short (101):default
;;-default: add supply item: use ESP name
;;... if you modified it there that's what will be seen
;;(after you save and restart if an option was used)
;;
;;= 0 = no supply item
;;
;;= 1 = +-Munitions Weight
;;= 2 = +-Munitions Supply
;;= 3 = <Munitions Weight>
;;= 4 = <Munitions Supply>
;;= 5 = [Munitions Weight]
;;= 6 = [Munitions Supply]
;;= 7 = Munitions Weight
;;= 8 = Munitions Supply
;;
;;= 11 = +-Ammo Supply
;;= 12 = +-AmmoWeight
;;= 13 = <Ammo Supply>
;;= 14 = <Ammo Weight>
;;= 15 = [Ammo Supply]
;;= 16 = [Ammo Weight]
;;= 17 = Ammo Supply
;;= 18 = Ammo Weight
;;
;;= 21 = +-Munitions
;;= 22 = <Munitions>
;;= 23 = [Munitions]
;;= 24 = Munitions
;;
;;= 25 = +-Ammo
;;= 26 = <Ammo>
;;= 27 = [Ammo]
;;= 28 = Ammo
;;----------------------------------------
;;-- zAWMessage -short (1):default
;;... (0)=no : (1)=yes
;;...whether to display a message upon weight change during gamemode
;;----------------------------------------
;;-- zAWGMDelay -float (0):default
;;... GameMode quest script processing delay
;;... set to 0 processes at the game ini default setting
;;----------------------------------------
;;-- zAWMMDelay -float (1):default
;;... MenuMode quest script processing delay
;;... set to 1 processes once per second
;;----------------------------------------
;;-- zAWMult -float (1):default
;;-default: proper weight multiplier
;;
;;... Affects total ammunition weight.
;;-set to 0 : weight becomes zero
;;-set to 0.5 : weight is halved
;;-set to 2 : weight doubles .. etc.
;;----------------------------------------
;;-- zAWHotKey -short (27):default
;;-default: right square bracket
;;... Affects the Second Key required while holding CTRL
;;... It can be set to any of the "DirectX Scancodes" listed in the FOSE documentation
;;----------------------------------------

==================================================
FOSE requirement
Spoiler:  
Show
(isControlPressed 4) != 1
..to prevent calculations from being done while holding the Fire button

setweight :: getweight
.. to control the weight of the single mass packet used to simulate ammo weight

setname
.. to alter the name of the Supply Item and the Ammunition names

GetType
.. to narrow the focus of the UI display scripting

ListGetFormIndex
.. to check for existence in the list

Command Extender requirement
Spoiler:  
Show
GetSelectedItemBaseRef
.. required to read/recognize the hovered/selected Menu item