Skip to content

Instantly share code, notes, and snippets.

@jessedc
Last active August 23, 2021 04:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jessedc/43a252c6c4c83affcec37c4dcd9b1172 to your computer and use it in GitHub Desktop.
Save jessedc/43a252c6c4c83affcec37c4dcd9b1172 to your computer and use it in GitHub Desktop.
VTankLoot File Annotated
------ Key Enums/Types -----
eLootRuleType
eLootAction
GameInfo
iLootRule (base class of all rules)
cLootItemRule
cLootRules
------ File Header (cLootRules:58) ------
UTL # File Header (static) --- New lines "\r\n"
1 # Version (static)
4 # Number of rules
------ Rule (cLootItemRule:77) ------ --- Note: No line breaks between rules or file header
Low wield Mele # name
# "custom expression" --- Blank in all cases from uTank2 Settings Editor app
0;1;7;2;12 # [priority]; --- Can't see a way to change this in the UI, always zero
# [action (eLootAction)];
# [lootRule.ruleType (eLootRuleType.ObjectClass)];
# [lootRule.ruleType (eLootRuleType.LongValKeyLE)];
# [lootRule.ruleType (eLootRuleType.LongValKeyE)]
# [Optional line] If eLootAction == KeepUpTo (10) write the value here (eg 6), else skip this line
3 # (7) ObjectClassE.Write() --- Each write function uses a variable number of read/writeLines
1 # CountedStreamWriter.Count --- Length of the values written to this point (excluding new lines).
# --- Seems to serve no purpose for known keys. see cLootItemRules:50-68
10 # (2) LongValKeyLE.Write() --- [implementation detail - key]
399 # (2) LongValKeyLE.Write() --- [implementation detail - value]
160 # CountedStreamWriter.Count
8 # (12) LongValKeyE.Write() --- [implementation detail - key]
0 # (12) LongValKeyE.Write() --- [implementation detail - value]
176 # CountedStreamWriter.Count
------ Salvage Combine (UTLFileExtraBlockManager:83) ------ Note: no line breaks between rules and salvage combine
SalvageCombine # UTLFileExtraBlockManagers.Write | fileBlock.BlockTypeID (URLBlockSalvageCombine.cs)
277 # CountedStremWriter.Count --- UTLFileExtraBlockManager.Write writes the file block below to a strem first, then inserts these two values at the top
1 # 1 --- static value
1-6, 7-8, 9, 10 # default combine string
25 # material combine strings.count --- count of overloaded material combine values
10 # materialID
1-10 # combine string
# repeated 24x
1 # materialValueModeValues.Count, overloaded material values [Can also be zero]
51 # materialID
390000 # Combine up to value
UTL
1
1
Rule Name Keep
0;1;7;1;0
3
6
22
string match name
1
13
spell match
SalvageCombine
277
1
1-6, 7-8, 9, 10
25
10
1-10
14
1-10
16
1-10
17
1-10
18
1-10
19
1-10
22
1-10
25
1-10
29
1-10
30
1-10
36
1-10
37
1-10
41
1-10
47
1-10
35
1-10
27
1-10
26
1-10
21
1-10
15
1-10
13
1-10
50
1-10
49
1-10
34
1-10
52
1-10
51
1-10
0
enum StringValueKey
{
Name = 1,
Title = 5,
Inscription = 7,
InscribedBy = 8,
FellowshipName = 10,
UsageInstructions = 14,
SimpleDescription = 15,
FullDescription = 16,
MonarchName = 21,
OnlyActivatedBy = 25,
Patron = 35,
PortalDestination = 38,
LastTinkeredBy = 39,
ImbuedBy = 40,
DateBorn = 43,
SecondaryName = 184549376,
}
enum DoubleValueKey
{
ManaRateOfChange = 5,
MeleeDefenseBonus = 29,
ManaTransferEfficiency = 87,
HealingKitRestoreBonus = 100,
ManaStoneChanceDestruct = 137,
ManaCBonus = 144,
MissileDBonus = 149,
MagicDBonus = 150,
ElementalDamageVersusMonsters = 152,
SlashProt = 167772160,
PierceProt = 167772161,
BludgeonProt = 167772162,
AcidProt = 167772163,
LightningProt = 167772164,
FireProt = 167772165,
ColdProt = 167772166,
Heading = 167772167,
ApproachDistance = 167772168,
SalvageWorkmanship = 167772169,
Scale = 167772170,
Variance = 167772171,
AttackBonus = 167772172,
Range = 167772173,
DamageBonus = 167772174,
}
enum ObjectClass
{
Unknown,
MeleeWeapon,
Armor,
Clothing,
Jewelry,
Monster,
Food,
Money,
Misc,
MissileWeapon,
Container,
Gem,
SpellComponent,
Key,
Portal,
TradeNote,
ManaStone,
Plant,
BaseCooking,
BaseAlchemy,
BaseFletching,
CraftedCooking,
CraftedAlchemy,
CraftedFletching,
Player,
Vendor,
Door,
Corpse,
Lifestone,
HealingKit,
Lockpick,
WandStaffOrb,
Bundle,
Book,
Journal,
Sign,
Housing,
Npc,
Foci,
Salvage,
Ust,
Services,
Scroll,
}
enum IntValueKey
{
Species = 2,
Burden = 5,
EquippedSlots = 10,
RareId = 17,
Value = 19,
TotalValue = 20,
SkillCreditsAvail = 24,
CreatureLevel = 25,
RestrictedToToD = 26,
ArmorLevel = 28,
Rank = 30,
Bonded = 33,
NumberFollowers = 35,
Unenchantable = 36,
LockpickDifficulty = 38,
Deaths = 43,
WandElemDmgType = 45,
MinLevelRestrict = 86,
MaxLevelRestrict = 87,
LockpickSkillBonus = 88,
AffectsVitalId = 89,
AffectsVitalAmt = 90,
UsesTotal = 91,
UsesRemaining = 92,
DateOfBirth = 98,
Workmanship = 105,
Spellcraft = 106,
CurrentMana = 107,
MaximumMana = 108,
LoreRequirement = 109,
RankRequirement = 110,
PortalRestrictions = 111,
Gender = 113,
Attuned = 114,
SkillLevelReq = 115,
ManaCost = 117,
Age = 125,
XPForVPReduction = 129,
Material = 131,
WieldReqType = 158,
WieldReqAttribute = 159,
WieldReqValue = 160,
SlayerSpecies = 166,
CooldownSeconds = 167,
NumberItemsSalvagedFrom = 170,
NumberTimesTinkered = 171,
DescriptionFormat = 172,
PagesUsed = 174,
PagesTotal = 175,
ActivationReqSkillId = 176,
GemSettingQty = 177,
GemSettingType = 178,
Imbued = 179,
Heritage = 188,
FishingSkill = 192,
KeysHeld = 193,
ElementalDmgBonus = 204,
ArmorSetID = 265,
ItemMaxLevel = 319,
CloakChanceType = 352,
WeaponMasteryCategory = 353,
SummoningGemBuffedSkillReq = 367,
SummoningGemLevelReq = 369,
DamRating = 370,
DamResistRating = 371,
CritRating = 372,
CritResistRating = 373,
CritDamRating = 374,
CritDamResistRating = 375,
HealBoostRating = 376,
VitalityRating = 379,
Type = 218103808,
Icon = 218103809,
Container = 218103810,
Landblock = 218103811,
ItemSlots = 218103812,
PackSlots = 218103813,
StackCount = 218103814,
StackMax = 218103815,
AssociatedSpell = 218103816,
Slot = 218103817,
Wielder = 218103818,
WieldingSlot = 218103819,
Monarch = 218103820,
Coverage = 218103821,
EquipableSlots = 218103822,
EquipType = 218103823,
IconOutline = 218103824,
MissileType = 218103825,
UsageMask = 218103826,
HouseOwner = 218103827,
HookMask = 218103828,
HookType = 218103829,
Model = 218103830,
Flags = 218103831,
CreateFlags1 = 218103832,
CreateFlags2 = 218103833,
Category = 218103834,
Behavior = 218103835,
MagicDef = 218103836,
SpecialProps = 218103837,
SpellCount = 218103838,
WeapSpeed = 218103839,
EquipSkill = 218103840,
DamageType = 218103841,
MaxDamage = 218103842,
Unknown10 = 218103843,
Unknown100000 = 218103844,
Unknown800000 = 218103845,
Unknown8000000 = 218103846,
PhysicsDataFlags = 218103847,
ActiveSpellCount = 218103848,
IconOverlay = 218103849,
IconUnderlay = 218103850,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment