Looting in uTank2


A first profile

So...you got uTank, and now you want to set your character to loot that perfect item. How the heck does it work?

uTank's loot system works on the same principle that AC itself uses. In AC, there are a number of different properties that each item could have, and for each property there is a range of values. For instance, if I ID an item, AC might get the following information:



Property Value
Name Floating Candle
Burden 5
Value 10


...along with some other things which define various behaviors the object will exhibit for the client, such as what the object's 3d model ID is, what the object's icon is, etc. We can view this information using the ItemPropertyViewer plugin. Download the plugin and unzip it anyplace you'd like, then open Decal, click the add button, click browse, and select the itempropertyviewer .dll file that you just extracted. Finally, put a check next to the new plugin ("ItemPropertyViewer.PluginCore") in your plugin list to enable it. To use the property viewer, select an item and click the "Show Item Properties" button. You will get a listing that looks something like this:
IP: -----STRING VALUE KEYS-----
IP: Name : Floating Candle
IP: UsageInstructions : This item can be used on floor and yard hooks.
IP: -----LONG VALUE KEYS-----
IP: Burden : 5
IP: Value : 10
IP: CurrentMana : 0
IP: MaximumMana : 0
IP: Type : 34089
IP: Icon : 4181
IP: Container : 1343144260
IP: Slot : 32
IP: HookMask : 9
IP: Model : 0
IP: Flags : 16
IP: CreateFlags1 : 270549016
IP: Category : 128
IP: Behavior : 18
IP: Unknown10 : 1
IP: PhysicsDataFlags : 6145
IP: -----DOUBLE VALUE KEYS-----
IP: ------------------------------

Now, how does uTank fit into this? Well, uTank's loot system allows you to define a rule as a collection of parameters that an item must fit in order to be looted. For instance, one loot rule could be items worth 10,000 pyreal or more weighing less than 100bu. Let's set that up now.

First, we need to download the latest settings editor program. Unzip all of the files to a new directory and run "uTank2 Settings Editor.exe". The editor will start with a new loot ruleset; now we just have to add our loot rules. Click the 'new' button in the bottom left to create a rule, and type in a name for this rule in the box where it says rule name. I'm calling this "Stuff to sell".



Now, we need to add requirements to this rule. These requirements are ranges for a property that an item must have in order to be chosen to be looted. Click the 'new' button in the bottom center to create a new requirement.



Here, we see the different types of requirements available in the "Requirement Type" dropdown box. Each of these options (except spell name match and damage percentage) correspond to a type of property in the list given by itempropertyviewer. If we look at the item we identified earlier we will see where we can find the item pyreal value and burden:

...
IP: -----LONG VALUE KEYS-----
IP: Burden : 5
IP: Value : 10
...

We can see that both burden and pyreal value are long value keys. For pyreal value, we want our item to be greater than 10000, so change requirement type to "Long Value Key >=" and choose "Value" as the key, then type in 10000 into the key value box like this:



We also want burden to be less than or equal to 100, so add a new requirement by clicking the bottom center 'new' button again and add the information the same way:



Click File/Save to save your new profile, and now you should be able to enable it in utank!


Strange property values

Sometimes knowing what value you want for a given property is not as simple as it is with burden or pyreal value. In this case, you may have to do a little snooping; identifying a few items using the property viewer will give you an idea of what ranges you should be looking for. For instance, suppose we wanted to loot only bows that are +130% damage, +12 electrical, +15% melee defense. How does AC store these values? To find out, we need to check out the properties of a few items. Keys we want to look at are in bold.

Item one

IP: -----STRING VALUE KEYS-----
IP: Name : Copper Electric Bow
...
IP: -----LONG VALUE KEYS-----
IP: Burden : 716
IP: Value : 3409
IP: Workmanship : 8
...
IP: ElementalDmgBonus : 12
...
IP: MissileType : 1
...
IP: WeapSpeed : 40
IP: EquipSkill : 2
IP: DamageType : 64
IP: MaxDamage : 0
...
IP: -----DOUBLE VALUE KEYS-----
IP: MeleeDefenseBonus : 1.14
IP: MagicDBonus : 1.025
IP: SalvageWorkmanship : 8
IP: Scale : 0
IP: Variance : 0
IP: AttackBonus : 1
IP: Range : 27.3
IP: DamageBonus : 2.66
IP: ------------------------------


Item two

IP: -----STRING VALUE KEYS-----
IP: Name : Bronze Slashing Compound Bow
...
IP: -----LONG VALUE KEYS-----
IP: Burden : 595
IP: Value : 2729
IP: Workmanship : 7
...
IP: ElementalDmgBonus : 9
...
IP: MissileType : 1
...
IP: WeapSpeed : 36
IP: EquipSkill : 2
IP: DamageType : 1
IP: MaxDamage : 0
...
IP: -----DOUBLE VALUE KEYS-----
IP: ManaRateOfChange : -0.0555555555555556
IP: MeleeDefenseBonus : 1.2
IP: MissileDBonus : 1.015
IP: SalvageWorkmanship : 7
IP: Scale : 0
IP: Variance : 0
IP: AttackBonus : 1
IP: Range : 27.3
IP: DamageBonus : 2.3
IP: ------------------------------


From looking at these values, we can see that a Damage Modifier of +130% corresponds to a DamageBonus value of 2.3, an Elemental Damage Bonus of +12 corresponds to an ElementalDmgBonus of 12 (as you might expect), and a Melee Defense Bonus of +15 should probably correspond to a MeleeDefenseBonus value of 1.15. Here is a chart to make it easier to see how I came up with those values:

Item Damage bonus DamageBonus key Elemental Damage Bonus ElementalDmgBonus key Melee Defense Bonus MeleeDefenseBonus key
LR bow +166% 2.66 +12 12 +14% 1.14
CS bow +130% 2.3 +9 9 +20% 1.2


There other two requirements we can determine similarly: the item must be a bow (MissileType = 1) and the element must be lightning (DamageType = 64). We are now ready to input our new rule into the settings editor. Here is what we have worked out for requirements (note that to require a value be exactly equal to a value x, you create a requirement that it be less than or equal to x as well as greater than or equal to x):

+130% +12 electrical +15% melee bows

Requirement type Acts On Value
Double Value Key >= DamageBonus 2.3
Long Value Key >= ElementalDmgBonus 12
Long Value Key <= DamageType 64
Long Value Key >= DamageType 64
Double Value Key >= MeleeDefenseBonus 1.15
Long Value Key <= MissileType 1
Long Value Key >= MissileType 1


These are input into the loot editor the same way we did before. If you want to take a look at the resulting profile, it is available here. Remember that if you want to select this profile ingame, it must be located in your utank directory.

A more complete example profile is also available here.