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 in this "Skinpool Fixes" section, is to cut out the middleman and move 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. There's even a registry page here at the wiki where mod authors can claim skinpools for use in their mods: Custom Skin and Head Pool Registry

The problem with Challenge Rewards

In general, using those freed skinpools works great, and many folks might never notice any problems. But it turns out that there's an unwanted side effect relating to how Borderlands hands out challenge rewards. It turns out to be related to the Probability sections inside the main Rewards pools. I abbreviated the dump up at the top, but the full dump for one of the items in the Rewards pool looks like this:

  BalancedItems(0)=( 
        ItmPoolDefinition=ItemPoolDefinition'GD_CustomItemPools_MainGame.Assassin.RedBoldAccent', 
        InvBalanceDefinition=None, 
        Probability=( 
            BaseValueConstant=1.000000, 
            BaseValueAttribute=None, 
            InitializationDefinition=AttributeInitializationDefinition'Transient.AttributeInitializationDefinition_10', 
            BaseValueScaleConstant=1.000000 
        ), 
        bDropOnDeath=True 
    )

The problem happens because of that InitializationDefinition attribute. This is something which Borderlands dynamically assigns to the skinpools. You can try changing the ID on these pools all you want, but the game will always silently overwrite your efforts with a new Transient ID. If you dig into those objects a bit with obj dump on the console, you'll eventually find that they reference the character class that they're associated with. For instance, if you dig into that one, you'll find this:

*** Property dump for object 'PlayerClassAttributeValueResolver Transient.AttributeInitializationDefinition_10:AttributeDefinition_21.PlayerClassAttributeValueResolver_10' ***
=== PlayerClassAttributeValueResolver properties === 
  PlayerClassId=PlayerClassIdentifierDefinition'GD_PlayerClassId.Assassin'

When giving out rewards for challenges, these Transient values end up resolving to 1 if they match the class you're currently playing, or 0 otherwise. The upshot being that when you complete a challenge to the required level, and the challenge rewards you from the Rewards pool, the only item which can drop is the one which matches your character. Nifty!

Well, not so nifty, because it turns out that actually using one of our freed skinpools ends up screwing up all these Transient attributes. Sometimes, the wrong Transient IDs end up getting assigned to the wrong characters' skinpools. So for instance if you're a Siren you might end up with a Gunzerker skin. In other cases, there might end up being no skin which can drop for your given class. Very frequently, this automatic Transient magic will even end up lopping off the very last entry in the Reward pool, which means that Mechromancers won't get any rewards at all!

Example

The UCP 4.0 section Add Captain Blades Midnight Star and Manly Man Shield to H3RL-E makes use of the skinpool GD_CustomItemPools_MainGame.Assassin.OrangeBoldAccent, which happens to have originally been part of the challenge reward for killing enemies with grenades. As with all Rewards pools, the order of characters inside its BalancedItems pool originally looks like this:

  1. Assassin
  2. Mercenary
  3. Siren
  4. Soldier
  5. Psycho
  6. Mechromancer

Once UCP adds some things to the Assassin.OrangeBoldAccent pool, however, the Reward pool ends up looking like this:

  1. Assassin (but will drop if you're a Mercenary)
  2. Mercenary (but will drop if you're a Siren)
  3. Siren (but will drop if you're a Soldier)
  4. Soldier (but will drop if you're a Psycho)
  5. Psycho (but will drop if you're a Mechromancer)

Note the absence of a Mechromancer skin in there! It got totally lopped off. And all the other skins end up "offset" by one, so you don't actually get the skin which you should be getting.

What To Do About It

Unfortunately, not much, apart from try not to use the skinpools involved in Challenge rewards. Since Challenge rewards seem to be the only thing actually affected by this, it may not be a super huge deal, but it's probably worth avoiding if possible.

Affected Reward Pools

Here are the master "Reward" pools affected by this, and the challenges they're associated with:

Pool Name Level Description
GD_CustomItemPools_MainGame.Rewards.BanditEpic Knee-Deep in Brass 5 Fire a lot of rounds.
GD_CustomItemPools_MainGame.Rewards.BanditUncommon Marauder? I Hardly Know 'Er! 3 Kill marauders.
GD_CustomItemPools_MainGame.Rewards.BlueBold Open Pandora's Boxes 3 Open lootable crates, lockers, and other objects.
GD_CustomItemPools_MainGame.Rewards.BlueBoldAccent Longshot 3 Kill enemies with sniper rifles.
GD_CustomItemPools_MainGame.Rewards.BluePale Fisticuffs! 3 Kill enemies with melee attacks.
GD_CustomItemPools_MainGame.Rewards.BluePattern This Is No Time for Lazy! 5 Revive a co-op partner.
GD_CustomItemPools_MainGame.Rewards.CyanBold Aggravated Assault 3 Kill enemies with assault rifles.
GD_CustomItemPools_MainGame.Rewards.DahlEpic Crouching Tiger, Hidden Assault Rifle 5 Kill enemies with assault rifles while crouched.
GD_CustomItemPools_MainGame.Rewards.Gray Not Full of Monkeys 3 Kill enemies with stationary barrels.
GD_CustomItemPools_MainGame.Rewards.GreenBold It's Not Easy Looting Green 3 Loot or purchase green-rarity items.
GD_CustomItemPools_MainGame.Rewards.GreenBoldAccent Whaddaya Buyin'? 3 Purchase items with Eridium.
GD_CustomItemPools_MainGame.Rewards.GreenPale Super Novas 3 Kill enemies with a Nova shield burst.
GD_CustomItemPools_MainGame.Rewards.Head1 ...To Pay the Bills 5 Kill enemies while using your Action Skill.
GD_CustomItemPools_MainGame.Rewards.HyperionEpic Eviscerated 5 Kill shielded enemies with one shot using sniper rifles.
GD_CustomItemPools_MainGame.Rewards.HyperionUncommon Load and Lock 3 Kill loaders.
GD_CustomItemPools_MainGame.Rewards.JakobsEpic Quickdraw 5 Kill enemies shortly after aiming down the sights with a pistol.
GD_CustomItemPools_MainGame.Rewards.MaliwanEpic I Just Want to Set the World on Fire 5 Deal damage with incendiary DoT (damage-over-time) effects.
GD_CustomItemPools_MainGame.Rewards.MaliwanUncommon Slag-Licked 3 Deal bonus damage to slagged enemies.
GD_CustomItemPools_MainGame.Rewards.OrangeBold The Killer 3 Kill enemies with pistols.
GD_CustomItemPools_MainGame.Rewards.OrangeBoldAccent Pull the Pin 3 Kill enemies with grenades.
GD_CustomItemPools_MainGame.Rewards.OrangePale For the Hoard! 3 Save a lot of money.
GD_CustomItemPools_MainGame.Rewards.PinkPandoracorn Nothing Rhymes with Orange 5 Loot or purchase legendary items.
GD_CustomItemPools_MainGame.Rewards.PurpleBold Badass Bingo 5 Get Second Winds by killing badass enemies.
GD_CustomItemPools_MainGame.Rewards.RedBold Rocket and Roll 3 Kill enemies with rocket launchers.
GD_CustomItemPools_MainGame.Rewards.RedBoldAccent Hail of Bullets 3 Kill enemies with SMGs.
GD_CustomItemPools_MainGame.Rewards.RedPale EXPLOOOOOSIONS! 3 Kill enemies with MIRV grenades.
GD_CustomItemPools_MainGame.Rewards.TedioreEpic Boomerbang 5 Kill enemies with Tediore reloads.
GD_CustomItemPools_MainGame.Rewards.TorgueEpic Catch-a-Rocket! 5 Kill enemies with direct hits from rocket launchers.
GD_CustomItemPools_MainGame.Rewards.TorgueUncommon Boom. 3 Kill enemies with explosive damage.
GD_CustomItemPools_MainGame.Rewards.VladofEpic Ammo Eater 5 Absorb enemy ammo with an Absorption shield.
GD_CustomItemPools_MainGame.Rewards.YellowBold Shotgun! 3 Kill enemies with shotguns.
GD_CustomItemPools_MainGame.Rewards.YellowPale Blue Sparks 3 Kill enemies by power-sliding over them in a vehicle.

Skinpools To Avoid

Or at least, you should avoid these if you're concerned about the possibility of interfering with challenge reward drops. As I said above, that seems to be the only side effect (that we're aware of, anyway) with using these skinpools.

  • GD_CustomItemPools_Lilac.Psycho.BanditEpic
  • GD_CustomItemPools_Lilac.Psycho.BanditUncommon
  • GD_CustomItemPools_Lilac.Psycho.BlueBold
  • GD_CustomItemPools_Lilac.Psycho.BlueBoldAccent
  • GD_CustomItemPools_Lilac.Psycho.BluePale
  • GD_CustomItemPools_Lilac.Psycho.BluePattern
  • GD_CustomItemPools_Lilac.Psycho.CyanBold
  • GD_CustomItemPools_Lilac.Psycho.DahlEpic
  • GD_CustomItemPools_Lilac.Psycho.Gray
  • GD_CustomItemPools_Lilac.Psycho.GreenBold
  • GD_CustomItemPools_Lilac.Psycho.GreenBoldAccent
  • GD_CustomItemPools_Lilac.Psycho.GreenPale
  • GD_CustomItemPools_Lilac.Psycho.Head1
  • GD_CustomItemPools_Lilac.Psycho.HyperionEpic
  • GD_CustomItemPools_Lilac.Psycho.HyperionUncommon
  • GD_CustomItemPools_Lilac.Psycho.JakobsEpic
  • GD_CustomItemPools_Lilac.Psycho.MaliwanEpic
  • GD_CustomItemPools_Lilac.Psycho.MaliwanUncommon
  • GD_CustomItemPools_Lilac.Psycho.OrangeBold
  • GD_CustomItemPools_Lilac.Psycho.OrangeBoldAccent
  • GD_CustomItemPools_Lilac.Psycho.OrangePale
  • GD_CustomItemPools_Lilac.Psycho.PinkPandoracorn
  • GD_CustomItemPools_Lilac.Psycho.PurpleBold
  • GD_CustomItemPools_Lilac.Psycho.RedBold
  • GD_CustomItemPools_Lilac.Psycho.RedBoldAccent
  • GD_CustomItemPools_Lilac.Psycho.RedPale
  • GD_CustomItemPools_Lilac.Psycho.TedioreEpic
  • GD_CustomItemPools_Lilac.Psycho.TorgueEpic
  • GD_CustomItemPools_Lilac.Psycho.TorgueUncommon
  • GD_CustomItemPools_Lilac.Psycho.VladofEpic
  • GD_CustomItemPools_Lilac.Psycho.YellowBold
  • GD_CustomItemPools_Lilac.Psycho.YellowPale
  • GD_CustomItemPools_MainGame.Assassin.BanditEpic
  • GD_CustomItemPools_MainGame.Assassin.BanditUncommon
  • GD_CustomItemPools_MainGame.Assassin.BlueBold
  • GD_CustomItemPools_MainGame.Assassin.BlueBoldAccent
  • GD_CustomItemPools_MainGame.Assassin.BluePale
  • GD_CustomItemPools_MainGame.Assassin.BluePattern
  • GD_CustomItemPools_MainGame.Assassin.CyanBold
  • GD_CustomItemPools_MainGame.Assassin.DahlEpic
  • GD_CustomItemPools_MainGame.Assassin.Gray
  • GD_CustomItemPools_MainGame.Assassin.GreenBold
  • GD_CustomItemPools_MainGame.Assassin.GreenBoldAccent
  • GD_CustomItemPools_MainGame.Assassin.GreenPale
  • GD_CustomItemPools_MainGame.Assassin.Head1
  • GD_CustomItemPools_MainGame.Assassin.HyperionEpic
  • GD_CustomItemPools_MainGame.Assassin.HyperionUncommon
  • GD_CustomItemPools_MainGame.Assassin.JakobsEpic
  • GD_CustomItemPools_MainGame.Assassin.MaliwanEpic
  • GD_CustomItemPools_MainGame.Assassin.MaliwanUncommon
  • GD_CustomItemPools_MainGame.Assassin.OrangeBold
  • GD_CustomItemPools_MainGame.Assassin.OrangeBoldAccent
  • GD_CustomItemPools_MainGame.Assassin.OrangePale
  • GD_CustomItemPools_MainGame.Assassin.PinkPandoracorn
  • GD_CustomItemPools_MainGame.Assassin.PurpleBold
  • GD_CustomItemPools_MainGame.Assassin.RedBold
  • GD_CustomItemPools_MainGame.Assassin.RedBoldAccent
  • GD_CustomItemPools_MainGame.Assassin.RedPale
  • GD_CustomItemPools_MainGame.Assassin.TedioreEpic
  • GD_CustomItemPools_MainGame.Assassin.TorgueEpic
  • GD_CustomItemPools_MainGame.Assassin.TorgueUncommon
  • GD_CustomItemPools_MainGame.Assassin.VladofEpic
  • GD_CustomItemPools_MainGame.Assassin.YellowBold
  • GD_CustomItemPools_MainGame.Assassin.YellowPale
  • GD_CustomItemPools_MainGame.Mercenary.BanditEpic
  • GD_CustomItemPools_MainGame.Mercenary.BanditUncommon
  • GD_CustomItemPools_MainGame.Mercenary.BlueBold
  • GD_CustomItemPools_MainGame.Mercenary.BlueBoldAccent
  • GD_CustomItemPools_MainGame.Mercenary.BluePale
  • GD_CustomItemPools_MainGame.Mercenary.BluePattern
  • GD_CustomItemPools_MainGame.Mercenary.CyanBold
  • GD_CustomItemPools_MainGame.Mercenary.DahlEpic
  • GD_CustomItemPools_MainGame.Mercenary.Gray
  • GD_CustomItemPools_MainGame.Mercenary.GreenBold
  • GD_CustomItemPools_MainGame.Mercenary.GreenBoldAccent
  • GD_CustomItemPools_MainGame.Mercenary.GreenPale
  • GD_CustomItemPools_MainGame.Mercenary.Head1
  • GD_CustomItemPools_MainGame.Mercenary.HyperionEpic
  • GD_CustomItemPools_MainGame.Mercenary.HyperionUncommon
  • GD_CustomItemPools_MainGame.Mercenary.JakobsEpic
  • GD_CustomItemPools_MainGame.Mercenary.MaliwanEpic
  • GD_CustomItemPools_MainGame.Mercenary.MaliwanUncommon
  • GD_CustomItemPools_MainGame.Mercenary.OrangeBold
  • GD_CustomItemPools_MainGame.Mercenary.OrangeBoldAccent
  • GD_CustomItemPools_MainGame.Mercenary.OrangePale
  • GD_CustomItemPools_MainGame.Mercenary.PinkPandoracorn
  • GD_CustomItemPools_MainGame.Mercenary.PurpleBold
  • GD_CustomItemPools_MainGame.Mercenary.RedBold
  • GD_CustomItemPools_MainGame.Mercenary.RedBoldAccent
  • GD_CustomItemPools_MainGame.Mercenary.RedPale
  • GD_CustomItemPools_MainGame.Mercenary.TedioreEpic
  • GD_CustomItemPools_MainGame.Mercenary.TorgueEpic
  • GD_CustomItemPools_MainGame.Mercenary.TorgueUncommon
  • GD_CustomItemPools_MainGame.Mercenary.VladofEpic
  • GD_CustomItemPools_MainGame.Mercenary.YellowBold
  • GD_CustomItemPools_MainGame.Mercenary.YellowPale
  • GD_CustomItemPools_MainGame.Siren.BanditEpic
  • GD_CustomItemPools_MainGame.Siren.BanditUncommon
  • GD_CustomItemPools_MainGame.Siren.BlueBold
  • GD_CustomItemPools_MainGame.Siren.BlueBoldAccent
  • GD_CustomItemPools_MainGame.Siren.BluePale
  • GD_CustomItemPools_MainGame.Siren.BluePattern
  • GD_CustomItemPools_MainGame.Siren.CyanBold
  • GD_CustomItemPools_MainGame.Siren.DahlEpic
  • GD_CustomItemPools_MainGame.Siren.Gray
  • GD_CustomItemPools_MainGame.Siren.GreenBold
  • GD_CustomItemPools_MainGame.Siren.GreenBoldAccent
  • GD_CustomItemPools_MainGame.Siren.GreenPale
  • GD_CustomItemPools_MainGame.Siren.Head1
  • GD_CustomItemPools_MainGame.Siren.HyperionEpic
  • GD_CustomItemPools_MainGame.Siren.HyperionUncommon
  • GD_CustomItemPools_MainGame.Siren.JakobsEpic
  • GD_CustomItemPools_MainGame.Siren.MaliwanEpic
  • GD_CustomItemPools_MainGame.Siren.MaliwanUncommon
  • GD_CustomItemPools_MainGame.Siren.OrangeBold
  • GD_CustomItemPools_MainGame.Siren.OrangeBoldAccent
  • GD_CustomItemPools_MainGame.Siren.OrangePale
  • GD_CustomItemPools_MainGame.Siren.PinkPandoracorn
  • GD_CustomItemPools_MainGame.Siren.PurpleBold
  • GD_CustomItemPools_MainGame.Siren.RedBold
  • GD_CustomItemPools_MainGame.Siren.RedBoldAccent
  • GD_CustomItemPools_MainGame.Siren.RedPale
  • GD_CustomItemPools_MainGame.Siren.TedioreEpic
  • GD_CustomItemPools_MainGame.Siren.TorgueEpic
  • GD_CustomItemPools_MainGame.Siren.TorgueUncommon
  • GD_CustomItemPools_MainGame.Siren.VladofEpic
  • GD_CustomItemPools_MainGame.Siren.YellowBold
  • GD_CustomItemPools_MainGame.Siren.YellowPale
  • GD_CustomItemPools_MainGame.Soldier.BanditEpic
  • GD_CustomItemPools_MainGame.Soldier.BanditUncommon
  • GD_CustomItemPools_MainGame.Soldier.BlueBold
  • GD_CustomItemPools_MainGame.Soldier.BlueBoldAccent
  • GD_CustomItemPools_MainGame.Soldier.BluePale
  • GD_CustomItemPools_MainGame.Soldier.BluePattern
  • GD_CustomItemPools_MainGame.Soldier.CyanBold
  • GD_CustomItemPools_MainGame.Soldier.DahlEpic
  • GD_CustomItemPools_MainGame.Soldier.Gray
  • GD_CustomItemPools_MainGame.Soldier.GreenBold
  • GD_CustomItemPools_MainGame.Soldier.GreenBoldAccent
  • GD_CustomItemPools_MainGame.Soldier.GreenPale
  • GD_CustomItemPools_MainGame.Soldier.Head1
  • GD_CustomItemPools_MainGame.Soldier.HyperionEpic
  • GD_CustomItemPools_MainGame.Soldier.HyperionUncommon
  • GD_CustomItemPools_MainGame.Soldier.JakobsEpic
  • GD_CustomItemPools_MainGame.Soldier.MaliwanEpic
  • GD_CustomItemPools_MainGame.Soldier.MaliwanUncommon
  • GD_CustomItemPools_MainGame.Soldier.OrangeBold
  • GD_CustomItemPools_MainGame.Soldier.OrangeBoldAccent
  • GD_CustomItemPools_MainGame.Soldier.OrangePale
  • GD_CustomItemPools_MainGame.Soldier.PinkPandoracorn
  • GD_CustomItemPools_MainGame.Soldier.PurpleBold
  • GD_CustomItemPools_MainGame.Soldier.RedBold
  • GD_CustomItemPools_MainGame.Soldier.RedBoldAccent
  • GD_CustomItemPools_MainGame.Soldier.RedPale
  • GD_CustomItemPools_MainGame.Soldier.TedioreEpic
  • GD_CustomItemPools_MainGame.Soldier.TorgueEpic
  • GD_CustomItemPools_MainGame.Soldier.TorgueUncommon
  • GD_CustomItemPools_MainGame.Soldier.VladofEpic
  • GD_CustomItemPools_MainGame.Soldier.YellowBold
  • GD_CustomItemPools_MainGame.Soldier.YellowPale
  • GD_CustomItemPools_tulip.Mechro.BanditEpic
  • GD_CustomItemPools_tulip.Mechro.BanditUncommon
  • GD_CustomItemPools_tulip.Mechro.BlueBold
  • GD_CustomItemPools_tulip.Mechro.BlueBoldAccent
  • GD_CustomItemPools_tulip.Mechro.BluePale
  • GD_CustomItemPools_tulip.Mechro.BluePattern
  • GD_CustomItemPools_tulip.Mechro.CyanBold
  • GD_CustomItemPools_tulip.Mechro.DahlEpic
  • GD_CustomItemPools_tulip.Mechro.Gray
  • GD_CustomItemPools_tulip.Mechro.GreenBold
  • GD_CustomItemPools_tulip.Mechro.GreenBoldAccent
  • GD_CustomItemPools_tulip.Mechro.GreenPale
  • GD_CustomItemPools_tulip.Mechro.Head1
  • GD_CustomItemPools_tulip.Mechro.HyperionEpic
  • GD_CustomItemPools_tulip.Mechro.HyperionUncommon
  • GD_CustomItemPools_tulip.Mechro.JakobsEpic
  • GD_CustomItemPools_tulip.Mechro.MaliwanEpic
  • GD_CustomItemPools_tulip.Mechro.MaliwanUncommon
  • GD_CustomItemPools_tulip.Mechro.OrangeBold
  • GD_CustomItemPools_tulip.Mechro.OrangeBoldAccent
  • GD_CustomItemPools_tulip.Mechro.OrangePale
  • GD_CustomItemPools_tulip.Mechro.PinkPandoracorn
  • GD_CustomItemPools_tulip.Mechro.PurpleBold
  • GD_CustomItemPools_tulip.Mechro.RedBold
  • GD_CustomItemPools_tulip.Mechro.RedBoldAccent
  • GD_CustomItemPools_tulip.Mechro.RedPale
  • GD_CustomItemPools_tulip.Mechro.TedioreEpic
  • GD_CustomItemPools_tulip.Mechro.TorgueEpic
  • GD_CustomItemPools_tulip.Mechro.TorgueUncommon
  • GD_CustomItemPools_tulip.Mechro.VladofEpic
  • GD_CustomItemPools_tulip.Mechro.YellowBold
  • GD_CustomItemPools_tulip.Mechro.YellowPale
Clone this wiki locally