Skip to content

Issues with Skinpools and Challenge Rewards

CJ Kucera edited this page Jun 30, 2018 · 9 revisions

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.

Reward Pools, and How UCP Tweaks Them

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 InvBalanceDefinitions 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.

Clone this wiki locally