v0.2.6

  • Add expression: getaccounthash[]
  • Add expression: wobjectgetspellids[WorldObject]
  • Add expressions: getspellexpiration[id], getspellexpirationbyname[name]
  • Add expressions: getfreeitemslots[WorldObject? container], getfreecontainerslots[WorldObject? container]
  • Add expression: getcontaineritemcount[WorldObject? container]
  • Add expressions: vtgetsetting[setting], vtsetsetting[setting,value]
  • Fix issue where vTank profiles directory was not being detected properly
  • Add expressions: getcharburden[]
  • Add Looter
  • Fix Nullable settings in settings form (PlayerOptions stuff)
  • Fix issue where dungeonmaps would no longer draw after changing game resolution
  • Fix /ub igp/give commands to be non greedy when matching profile (fixes /ub ig test.utl to char with to in the name)
  • Add expressions: wobjectfindall[], wobjectfindallinventory[], wobjectfindalllandscape[], wobjectfindallbyobjectclass[objectclass], wobjectfindallbytemplatetype[templatetype], wobjectfindallbynamerx[namerx], wobjectfindallinventorybyobjectclass[objectclass], wobjectfindallinventorybytemplatetype[templatetype], wobjectfindallinventorybynamerx[namerd], wobjectfindalllandscapebyobjectclass[objectclass], wobjectfindalllandscapebytemplatetype[templatetype], wobjectfindalllandscapebynamerx[namerx]
  • Add expressions: listmap[list, expression], listreduce[list, expression], listfilter[list, expression]
  • Add expression: exec[string]
  • Add expression: listfromrange[start, end]
  • Add expression: listsort[list list, string expression]
  • Add expression: tostring[object]
  • Fix issue when comparing worldobjects of different instances but same Id (fixes listcontains when the list is wobjects as well)
  • Add expression: delayexec[number delay, string expression]
  • Add expression: ifthen[object valuetocheck, string trueexpression[, string falseexpression]]
  • Add command: /ub id
  • Fix /ub use|portal|select all take ids in decimal or hex format on top of string names. ie /ub portal 0x733D902D
  • Add expression wobjectfindallbycontainer[object container]
  • Add expression shorthand syntax for list/dict/string indice/slicing. $list[1:3]
  • Add support for storing dicts in global/persistent storage
  • Add expression hexstr[]
  • Add expression support for bitwise operators ~, &, |, and ^, and shift operators « and ».
  • Fix Expression conditions that are “truthy” in vtank will now return true, instead of having to specifically return 1.0 for expression conditions
  • Fix boolean operators now return the right-most executed operand
  • Fix quoted expression strings that had multiple backticks at the end, which would remove all ending backticks
  • Add expressions: ustadd[wobject], ustopen[], ustsalvage[]
  • Add expression regex operator # now supports named group capture, and sets group matches to $capturegroup_groupname
  • Fix /ub bct command now supports surrounding tag names with doubles quotes for tags that contain spaces
  • Add expression: getequippedweapontype[]
  • Fix Issue 156: shortcut for persistent variables not parsing correctly
  • Add expression: coordinategetheadingto[Coordinates obj]
  • Add expressions: spellname[number spellid], componentname[number componentid], componentdata[number componentid], getknownspells[], spelldata[number spellid]
  • Add commands: /ub setmotion, /ub getmotion, /ub clearmotion
  • Add expressions: setmotion[motions, state], getmotion[motion], clearmotion[]
  • Add expression: netclients[string tag?]
  • Add expression: wobjectlastidtime[wobject], getunixtime[]
  • Add expression: isportaling[]
  • Fix VTank.PatchForClassic now works on ACE Classic and is more reliable
  • Change /ub command match to a regex, so it accepts valid:tm: commands like /////////@@@@@@@@@@@@@@@@@@@/ub

v0.2.5

  • Add expressions: wobjectgetdoubleprop[], wobjectgetboolprop[], wobjectgetstringprop[], wobjecthasdata[], wobjectrequestdata[]
  • Add commands: /ub logout, /ub quit
  • Fix jump/face commands to accept decimals instead of just whole numbers for heading
  • Fix dictadditem expression to properly overwrite existing keys
  • Add support for @ symbol in unquoted expression strings
  • Fix getcharskill_traininglevel, getcharskill_base, and getcharskill_buffed expressions to support summoning
  • Add commands /ub use[li][p] <item name> and /ub use[li][p] <item1 name> on <item2 name> for using items
  • Add commands /ub select[li][p] <item name> for selecting items
  • Add expressions getcharattribute_base[int] and getcharattribute_buffed[int]
  • Fix autotinker bug where skill lowered hangs up autotinker and requires relog. Stop button now fixes.
  • Add expressions: getdatetimelocal[], getdatetimeutc[]
  • Add command: /ub close [<corpse|chest>]
  • Add expression: getinventorycountbytemplatetype[double templateType]
  • Add support for wands with built in spells with actiontryapplyitem and ub use (thanks aquafir)
  • Add [m] flag to ub mexec command for disabling chat output (thanks aquafir)
  • Add expressions: uboptset[name, newValue], uboptget[name]
  • Fix [p] flag on give command, [P] was setting both target/item to partial matches. now [P] is for target, [p] is for item.

v0.2.4

  • Fix classic server vtank patch, no longer patches non-itemenchantment auras
  • Fix unary minus in meta expressions
  • Fix Autotinker to handle retail bug with items that contain a material in the name
  • Fix /ub face extended pause when in route
  • Fix quest flag expressions are no longer case sensitive
  • Fix autovendor race condition with small autovendor profiles
  • Add warning when using ub tools that require loot profiles, and vit has a profile loaded.
  • Add ability to tag characters, and broadcast commands to specific tags with /ub bct command
  • Fix getobjectinternaltype[] to return 0 for invalid world objects
  • Add ChatFilter settings with CLI toggles
  • Add NetworkUI tool for visually showing/controlling network connected clients.
  • Add /ub follow command now enabled vtank navigation as well (since it uses it internally)
  • Fix EquipmentManager now equips items in order of lowest lore req first
  • Fix coordinategetz[] to be compatible with vtank z values
  • Fix ub jump command lockup issue after failing to jump, adjusted timeouts
  • Fix ub videopatch is now disabled when logging out
  • Add expressions getfellowids[] and getfellownames[] to get a sorted list of fellowship members
  • Fix issue with wobject physics position distances, could cause expressions that return nearest items to return stale items after portalling
  • Add commands /ub vendor {addbuy[p] [count] <item name>, addsell[p] [count] <item name>} for manually adding buy/sell items to vendors
  • Add vtgetmetastate[] expression to return current vtank meta state as a string
  • Fix isfalse and istrue expressions to accept any object

v0.2.3

  • Fix cleargvar[] expression wasn’t actually clearing vars
  • Add list expressions: listlastindexof, listreverse, listinsert
  • Add expressions: uiviewvisible and uiviewexists
  • Add dictionary support to expression, see expression documentation
  • Add chatboxpaste expression
  • Fix issue where alias text was getting trimmed before regex match
  • Add getregexmatch expression
  • Fix AutoTinker now allows gold to be added to Armor/Clothing
  • Fix bug where newly inscribed items were not seen by ub, allowing them to be sold/salvaged
  • Fix landscape maps icon no longer shows when disabled
  • Add questtracker list headers are now clickable, to modify sorting
  • Add ability to patch vtank for classic (pre-tod) servers. enable with setting VTank.PatchForClassic.
  • Fix InventoryManager.WatchLootProfile to wait until vtank is loaded to setup filewatcher

v0.2.2

  • Revert Fix - character must now be escaped in expression strings
  • Fix hotkeys not working
  • Fix misc exceptions
  • Add Global.LogDirectory setting for chaning where log files are stored
  • Fixed autotinkering cloth armor with AL
  • Add missing vtank meta view expressions: uigetcontrol, uisetlabel, uisetvisible
  • Fix InventoryManager.WatchLootProfile not always watching for changes / double loading
  • Add settings to Nametags to adjust text sizes
  • UB expression patch now properly patches VTOptGet and VTOptSet meta actions
  • Add Nametags for allegiance members now have a unique color
  • Add getworldname[] expression to return the name of the currently connected world / server
  • Add Alias tool for manipulating chat input. See https://utilitybelt.gitlab.io/docs/tools/aliases/
  • Add GameEvents tool for running actions when certain game events happen
  • Fix issue that was causing vtank funkiness (broken autovendor / keep # loot rules)

v0.2.0

  • Fix issue where calling get[gp]var expression would set an invalid value to the cache, causing test[gp]var to have incorrect results
  • Add Landscape Maps marker for current Arrow target
  • Fix getitemcountininventorybyname and getitemcountininventorybynamerx expressions now count containers and equipped items
  • Fix wobjectfindininventorybynamerx and wobjectfindininventorybyname to use generated ingame names, rather than the weenie name
  • Add Iron/Granite (max damage) to AutoTinker
  • Fix p(partial) flag on swearallegiance and breakallegiance commands
  • Add exposed global settings to plugin settings ui and ub opt commands
  • Fix corrupt db no longer breaks the plugin from loading, it is deleted and remade
  • Add new settings ui
  • Fix coordinates parsed from strings now read in Z data
  • Add shared settings profiles, check the new profiles tab
  • Add client ui profiles, for managing shared client ui window positions.
  • Add /ub (get|set)ui to get/set the client ui window positions as a string
  • Add profile support for player options
  • Add list support to expressions, see expression documentation
  • Add shortcut for getting expression variables ie $myVariable, see expression documentation
  • Fix /ub tinkcalc not showing output
  • Fix getcharquadprop[] luminance properties
  • Add friendlier error messages for expressions
  • Add && and || expression operators now short-circuit (incompatible with vtank boolean operators)
  • Fix a number of expression parse issues
  • Fix - character must now be escaped in expression strings
  • Add hexadecimal number format support to expressions, ie 0xff
  • Fix issue where plugin was not loading after creating a new character
  • Fix issue where plugin could load multiple times if another character was already in world
  • Fix issue where huds would stop rendering after a resolution change
  • Fix AutoTinker no longer tries to tinker untinkerable items
  • Add Networking - Now spellcast attempts / success are shared with vtank (vuln/imp overlapping)
  • Add /ub bc [msDelayBetweenClients] <command> for broadcasting commands to all open clients
  • Add Exceptions are now uploaded to the mothership by defualt, set Global.UploadExceptions to false to disable (pls dont, i want to fix bugs)

v0.1.8

  • Add expression isrefreshingquests[]
  • Add command /ub myquests - runs /myquests command and hides chat output
  • Fix issue where plugin could load multiple instances of itself
  • Fix issue where Plugin.VideoPatch could break physics

v0.1.7

  • Fix salvage name check in autotinker
  • Add basic landscape maps (visualnav capable)
  • Fix ColorPicker view in settings
  • Fix issue where ItemGiver could get in a bugged state and prevent usage between relogs
  • Add pointable arrow. By default it will look for coordinates in the chatbox and make them clickable.
  • Add command /ub arrow point <coordinates> for pointing the arrow
  • Add command /ub arrow face to face your character in the same direction as the arrow
  • Add UtilityBelt version watermark to character selection screen
  • Fix bug in persistent expression variables where they could be serialized to settings
  • Add DerethTime hud that shows day/night cycles
  • Add DerethTime expressions: getgameyear[], getgamemonth[], getgamemonthname[i], getgameday[], getgamehour[], getgamehourname[i], getminutesuntilday[], getminutesuntilnight[], getgameticks[], getisday[], getisnight[]
  • Fix bug where multiple instances of the plugin could be loaded on ACE servers
  • add a very rudimentary frame rate limiter UBHelper.SimpleFrameLimiter
  • add /ub globalframerate <frameRate> and FrameRate in utilitybelt.dll.config, to globally limit frame rate (including login screen)
  • add /ub bgframerate <frameRate> and setting Plugin.BackgroundFrameRate, to limit frame rate while the client does not have focus