From d4c93da7e71920a731a466dd64c7d1b704177248 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Thu, 20 Mar 2025 03:25:21 +0100 Subject: [PATCH] Configurable trash removal chance modifier --- mod/Unfound Loot.esp | Bin 139247 -> 140894 bytes src/EULxDelootifyCellItems.gek | 4 ++-- src/EULxDelootifyContainer.gek | 4 ++-- src/EULxDelootifyNPC.gek | 4 ++-- src/EULxINILoadSettings.gek | 1 + src/EULxINISaveSettings.gek | 1 + src/EULxOnGameLoad.gek | 1 + src/EULxPresetSetterFUNCTION.gek | 3 +++ src/EULxQuestScript.gek | 10 +++++++++- 9 files changed, 21 insertions(+), 7 deletions(-) diff --git a/mod/Unfound Loot.esp b/mod/Unfound Loot.esp index a7f5f36afe5deebbddb7302f7a8afa940c5d0434..519a1a0ed62dced9679b75aa91bfce6cf2d3fc2a 100644 GIT binary patch delta 5296 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 delta 4742 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 Q3hZKr&=Ycagbx(|2A 0 - DebugPrint "%n is trash, cutting removal chance in half." rBase - set fRemovalChance to fRemovalChance / 2 + DebugPrint "%n is trash, applying multiplier %.1f" rBase EULxWorldTrashRemovalMod + let fRemovalChance *= EULxWorldTrashRemovalMod endif endif diff --git a/src/EULxDelootifyNPC.gek b/src/EULxDelootifyNPC.gek index c243b19..4eb3523 100644 --- a/src/EULxDelootifyNPC.gek +++ b/src/EULxDelootifyNPC.gek @@ -147,8 +147,8 @@ begin function { rNPC, bDisintegrated } continue endif if GetWeight rBase > 0 - DebugPrint "%n is trash, cutting removal chance in half." rBase - set fRemovalChance to fRemovalChance / 2 + DebugPrint "%n is trash, applying multiplier %.1f" rBase EULxWorldTrashRemovalMod + let fRemovalChance *= EULxWorldTrashRemovalMod endif endif diff --git a/src/EULxINILoadSettings.gek b/src/EULxINILoadSettings.gek index 7e78424..918228e 100644 --- a/src/EULxINILoadSettings.gek +++ b/src/EULxINILoadSettings.gek @@ -40,6 +40,7 @@ begin function {} set EULxWorldMedsRemovalMod to GetINIFloat "World:MedsRemovalMod" $sFile set EULxWorldFoodRemovalMod to GetINIFloat "World:FoodRemovalMod" $sFile set EULxWorldMiscRemovalMod to GetINIFloat "World:MiscRemovalMod" $sFile + set EULxWorldTrashRemovalMod to GetINIFloat "World:TrashRemovalMod" $sFile ; Actors diff --git a/src/EULxINISaveSettings.gek b/src/EULxINISaveSettings.gek index 2c76fb5..3195954 100644 --- a/src/EULxINISaveSettings.gek +++ b/src/EULxINISaveSettings.gek @@ -34,6 +34,7 @@ begin function {} SetINIFloat "World:MedsRemovalMod" EULxWorldMedsRemovalMod $sFile SetINIFloat "World:FoodRemovalMod" EULxWorldFoodRemovalMod $sFile SetINIFloat "World:MiscRemovalMod" EULxWorldMiscRemovalMod $sFile + SetINIFloat "World:TrashRemovalMod" EULxWorldTrashRemovalMod $sFile ; Actors diff --git a/src/EULxOnGameLoad.gek b/src/EULxOnGameLoad.gek index 7a9e6bb..7834f00 100644 --- a/src/EULxOnGameLoad.gek +++ b/src/EULxOnGameLoad.gek @@ -52,6 +52,7 @@ begin function { iSuccess } SetINIFloat "World:ContRemovalChance" EULxWorldContRemovalChance "Unfound Loot.ini" SetINIFloat "World:OwnedRemovalMod" EULxWorldOwnedRemovalMod "Unfound Loot.ini" SetINIFloat "World:LockedRemovalMod" EULxWorldLockedRemovalMod "Unfound Loot.ini" + SetINIFloat "World:TrashRemovalMod" EULxWorldTrashRemovalMod "Unfound Loot.ini" endif endif endif diff --git a/src/EULxPresetSetterFUNCTION.gek b/src/EULxPresetSetterFUNCTION.gek index 91c1e06..a97f9fc 100644 --- a/src/EULxPresetSetterFUNCTION.gek +++ b/src/EULxPresetSetterFUNCTION.gek @@ -37,6 +37,7 @@ begin function { iPreset, bAll } set EULxWorldFoodRemovalMod to 1.3 set EULxWorldMiscRemovalMod to .60 ; keep interiors pretty + set EULxWorldTrashRemovalMod to .5 set EULxWorldAmmoRemovalMod to 1.0 set EULxWorldCurrencyRemovalMod to 1.2 @@ -86,6 +87,7 @@ begin function { iPreset, bAll } set EULxWorldContRemovalChance to 95 set EULxWorldArmorRemovalMod to 1.0 set EULxWorldMiscRemovalMod to .80 ;sparse interiors + set EULxWorldTrashRemovalMod to .5 set EULxWorldAmmoRemovalMod to 2.0 ;too much ammo as is set EULxWorldCurrencyRemovalMod to 1.0 @@ -119,6 +121,7 @@ begin function { iPreset, bAll } set EULxWorldWeaponRemovalMod to 1.5 set EULxWorldArmorRemovalMod to 0.6 set EULxWorldMiscRemovalMod to 0.33 ; junk doesnt get picked up + set EULxWorldTrashRemovalMod to .5 set EULxWorldAmmoRemovalMod to 1.3 set EULxWorldCurrencyRemovalMod to 1.5 diff --git a/src/EULxQuestScript.gek b/src/EULxQuestScript.gek index 0d0ecaa..4804b7c 100644 --- a/src/EULxQuestScript.gek +++ b/src/EULxQuestScript.gek @@ -158,7 +158,7 @@ begin MenuMode 1013 call EULxMCMAddElement 2.5 "Meds" EULxWorldMedsRemovalMod call EULxMCMAddElement 2.5 "Food" EULxWorldFoodRemovalMod call EULxMCMAddElement 2.5 "Misc items" EULxWorldMiscRemovalMod - + call EULxMCMAddElement 2.5 "Trash" EULxWorldTrashRemovalMod elseif iSubMenu == 3 @@ -290,6 +290,8 @@ begin MenuMode 1013 set EULxWorldFoodRemovalMod to fValue elseif iOption == 21 set EULxWorldMiscRemovalMod to fValue + elseif iOption == 22 + set EULxWorldTrashRemovalMod to fValue endif elseif iSubMenu == 3 @@ -438,6 +440,8 @@ begin MenuMode 1013 elseif iOption == 21 call EULxMCMAddScale "Misc items multiplier" EULxWorldMiscRemovalMod "x" 0 10 1 0.1 + elseif iOption == 22 + call EULxMCMAddScale "Trash multiplier" EULxWorldTrashRemovalMod "x" 0 10 1 0.1 endif elseif iSubMenu == 3 @@ -534,6 +538,8 @@ begin MenuMode 1013 elseif iOption == 21 ; misc SetUIFloat "StartMenu/MCM/_Value" 0.3 + elseif iOption == 22 ; trash + SetUIFloat "StartMenu/MCM/_Value" 0.5 endif @@ -651,6 +657,8 @@ begin MenuMode 1013 elseif iMouseover == 21 SetUIString "StartMenu/MCM/*:9/string" "Removal chance multiplier for misc items. Higher = greater chance of these items being removed." + elseif iMouseover == 22 + SetUIString "StartMenu/MCM/*:9/string" "Removal chance multiplier for trash (junk items < 5 caps and non-zero weight). Higher = greater chance of these items being removed." else SetUIFloat "StartMenu/MCM/*:9/visible" 0