-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Issues with Skinpools and Challenge Rewards
It turns out there's some strange interactions which go on between the stock Borderlands 2 Challenge Rewards (where, for instance, you are awarded a skin for killing N enemies with an Assault Rifle, etc), and the UCP "Skinpool Fixes" section which reassigns skin and head pools for use by mods. This page attempts to detail the situation for anyone who might be curious what happens.
Basically, Borderlands has a "Rewards" pool for each flavor of skin/head, which contains a BalancedItems
section, one for each character. For instance, here is a very abbreviated version of the BalancedItems
array for GD_CustomItemPools_MainGame.Rewards.RedBoldAccent
:
BalancedItems(0)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_MainGame.Assassin.RedBoldAccent',
InvBalanceDefinition=None,
)
BalancedItems(1)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_MainGame.Mercenary.RedBoldAccent',
InvBalanceDefinition=None,
)
BalancedItems(2)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_MainGame.Siren.RedBoldAccent',
InvBalanceDefinition=None,
)
BalancedItems(3)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_MainGame.Soldier.RedBoldAccent',
InvBalanceDefinition=None,
)
BalancedItems(4)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_Lilac.Psycho.RedBoldAccent',
InvBalanceDefinition=None,
)
BalancedItems(5)=(
ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_tulip.Mechro.RedBoldAccent',
InvBalanceDefinition=None,
)
Each of those sub-pools that it calls out to have a BalancedItems
array itself, but with just a single item in it, which uses InvBalanceDefinition
instead of ItmPoolDefinition
. For instance, GD_CustomItemPools_MainGame.Assassin.RedBoldAccent
looks like this:
BalancedItems(0)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Assassin_Items_MainGame.BalanceDefs.Assassin_Skin_RedB',
)
So what UCP does is cuts out the middleman and moves the InvBalanceDefinition
s up into the main Rewards
pool. Nothing ever calls those middle pools directly, so they become freed up for any mod to make use of. The main Rewards pool above, for instance, ends up looking like this after all the hotfixes:
BalancedItems(0)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Assassin_Items_MainGame.BalanceDefs.Assassin_Skin_RedB',
)
BalancedItems(1)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Assassin_Items_MainGame.BalanceDefs.Mercenary_Skin_RedB',
)
BalancedItems(2)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Assassin_Items_MainGame.BalanceDefs.Siren_Skin_RedB',
)
BalancedItems(3)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Assassin_Items_MainGame.BalanceDefs.Soldier_Skin_RedB',
)
BalancedItems(4)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Psycho_Items_Lilac.BalanceDefs.Psycho_Skin_RedB',
)
BalancedItems(5)=(
ItmPoolDefinition=None,
InvBalanceDefinition=InventoryBalanceDefinition'GD_Mechro_Items_Tulip.BalanceDefs.Mechro_Skin_RedB',
)
So all six of those original pools, from GD_CustomItemPools_MainGame.Assassin.RedBoldAccent
to GD_CustomItemPools_tulip.Mechro.RedBoldAccent
, are now free for use.