Sunday, 21 July 2019

Optimization and polish time

Hi everyone,

It's more of a maintenance release this time with focus on better resource usage, performance and bugfixes/polish. This time the goal was to fix as many of the UI engine issues as possible, starting with text rendering to many context-menu related bugs. This new build should give a more seamless in-game experience.
You can get the new build here.

  • Added 1500 range circle
  • Decreased memory overhead caused by the big font pack (for non-latin text only glyphs found in the language files and marker packs are loaded)
  • Decreased memory use of POI data by around 45% (not including raw image data)
  • Fixed a potential crash in non-latin text rendering
  • Fixed text width calculation for non-latin text rendering
  • Fixed some tokens not showing up as translated
  • WvW objective names now change instantly when changing languages, not just after TacO restart.
  • Fixed a context menu sizing issue 
  • Optimized excess CPU usage a bit
  • Bugfix: Submenu text will no longer revert when reopened after toggling marker category
  • Bugfix: Context menus should no longer get stuck when toggling elements

Sunday, 14 July 2019

Minor fixes for yesterday

Hello again,

as expected, a number of small issues have been reported by the community since yesterday's build. A hotfix build is out, it brings full utf-8 support so now non-latin text can also be displayed, but the font is limited to the font that the GW2 client can display in the chat box.

You can download the new build here.


  • Fixed some minor localization related issues (tokens not converted to text, some text missing its first letters, typos in the English translation)
  • Fixed an issue with utf-8 text rendering that would render glyphs with an ID over 32768 render incorrectly
  • Added the complete font set from the client to the UI skin. This will increase startup and shutdown time a bit, but allows for translations into non-latin languages. Not all glyphs are supported, but if it works in the in-game chat box, it will work with TacO. I've been told that the simplified chinese glyph set is incomplete (it's incomplete in GW2 too), use traditional chinese instead. (Note: this only affects the default font for the TacO menu used to display most things. The debug line, update text and large locational timer fonts don't have non-latin characters.)
  • Added an outline to the debug text and the new build available text
  • Updated the new build text to show how many new builds are available
  • Files with the .taco extension are now loaded by the overlay on startup to help with the "should I unpack the .zip" confusion
  • Individual events on the map timer can now refer to the Hero's choice API events as well through the WorldBossAPIID property
  • Settings data will now also be saved 10 seconds after the last change in the settings instead of only on exit
  • Fixed a stack corruption error
  • Fixed a possible crash that could occur in rare occasions when multi-clienting. A reminder: multi-clienting is not supported by TacO because the GW2 client and the Mumble API doesn't support it either.
  • Added an on-screen warning if multiple GW2 clients are detected
This update brings some changes to the localization strings, non-English translations must be updated by their maintainers.

Saturday, 13 July 2019

World Boss Tracking, Map Timer Update and Localization Support

Hi, everyone!

First of all thank you for the number of donations and kind messages I received after the last update, it's nice to see that TacO has such a cool following :)

It's also been brought to my attention that I missed an interesting API endpoint that allows you to see which world bosses you've already slain today. There also happens to be such an endpoint for the daily hero's choice chests for the expansion maps (not available for living world maps yet it seems, sorry). So I present to you a map timer update: the world boss kill and daily meta chest tracker! Also it turns out that the next major community event is a Boss Rush event, so the timing is pretty good too :)
Finished daily hero's choice chests and bosses will have a yellow highlight
This feature requires that you have your API key set up. If you don't, the map timer will function as before.

The built-in map timer descriptor has also been updated to include the PoF and Living World Season 4 maps.

Also good news for those who have been experiencing instant crashes on startup: the culprit has finally been identified, turns out it had to do with non-latin text input. There may be some lingering issues that pop up later, but if you're using Japanese/Chinese/Korean text input on windows, this should at least allow you to run TacO now.

Something else also happened, people started hacking the TacO executable itself to try to add localization support. This is not something that I feel good about since it probably won't ever result in a fully translated overlay but on the other hand if not done right, it'll introduce instability into the program. I pride myself on the stability and robustness of my work, so yeah... This made me bite the bullet and thus I give you the long awaited Localization Support. TacO now comes with a language file, and most of the visible text (aside of marker editing functionality and copyright info) in the overlay comes from this file. The file supplied with the TacO package is called TacO_Language_en.xml, however the overlay will try to load all TacO_Language_*.xml files on startup and let the user select between their contents in the overlay settings submenu. The intent is that content creators can go ahead and translate the language file and distribute their own TacO_Language_fr.xml or TacO_Language_de.xml or similar without having to edit or overwrite the English original. Changing languages in the overlay has a small limitation, WvW location names will only update after the overlay has been restarted. Text that hasn't been translated in a specific language file will show up as a token name between [brackets] and the log file will contain any missing tokens that need to be translated, to help with such efforts. Non-latin text is not supported as the TacO fonts are missing these characters, and utf-8 support in the ui engine is still a bit dodgy.
Language selector and the new submenu for overlay settings
The localization feature can also be used to have WvW location names appear different than they are in the API. This was a request I had way back when WvW support was first added.

  • Map timer config context menu doesn't close now when toggling a map
  • Updated map timer info for PoF and later maps
  • Map timer can now track your daily boss kills for those bosses that have an API endpoint (world bosses and hardcore world bosses, requires API key)
  • Map timer can now track your daily map metas that have an API endpoint (Maps that have a hero's choice chest, requires API key)
  • TacO should no longer crash on startup when non-latin input methods are used (Disabling the IME altogether for TacO seems to have fixed it)
  • Marker distance text now has a slight outline for better visibility
  • Marker distance text is now faded out with the marker to remove clutter
  • Even faster start-up and significant memory use improvements by on-demand loading of POI graphics.
  • Hidden windows should no longer hold up clicks to GW2. Hopefully. I couldn't reproduce the original issue to test it.
  • Range circle toggles will now keep the menu open like the marker filters
  • Added "IsSeparator" attribute to marker category descriptions. If it's value is 1, the category will act as a separator in the marker category filter and won't have an [x] toggle
  • Moved [x] toggles to the beginning of the line in the marker category filter menu
  • Highlighted some toggled features of the menu system
  • Rearranged the TacO menu to hide overlay-related settings and make things a bit cleaner
  • Added localization support. The default TacO install will only come with an English language pack though, it's up to you guys to create (and update) other translations.

Sunday, 7 July 2019

Minor update

Hi everyone,

it's been a while. Work and real life stuff etc mean that I don't have as much energy to focus on TacO as before. But Tekkit and people like him keep the overlay filled with fresh content even so :)

At any rate, a couple days ago I added a minor update to help me with some collections - but I had to realize that it's not too practical without the 2D maps on Dulfy (due to her absence of late) to give some general idea of how far the markers are. So I added an optional feature to display the distance of all markers.

The distance numbers are small, but can make a big difference.

And while I was at it I poked around a bit in the TacO code to streamline some other stuff that's been bugging me for a while. Some of it is optimization, but the most interesting part might be that TacO is now throttled to the framerate of GW2 by default in order not to overtax the system. This can be disabled in the config file.

So without further ado, here's the change log, and of course you can get the latest version from HERE.

Change notes:

  • Added option to toggle marker distance display
  • Added framerate throttling so that TacO rendering is keeping pace with GW2. TacO will still maintain a minimum 5fps framerate. This setting can be disabled by editing TacOConfig.xml's "FrameThrottling" option. It's on by default.
  • The contents of TacOConfig are now alphabetically sorted to make it easier to find stuff in there
  • Optimized the loading of marker packs, TacO should start up noticeably faster now when loading large zipped marker packs, like Tekkit's stuff
  • Fixed some on-exit resource leaks

Tuesday, 3 April 2018

When Silence Dims The Stars Above - or why TacO lacks updates from time to time


This is an off-topic post for TacO, but I'm proud of the accomplishment and it also gives you guys some insight into why sometimes there's no update for TacO for a while.

Besides playing GW2 on and off and developing the overlay for fun, I have a big chunk of my free time allocated to a hobby known as the Demoscene. Every Easter there's a huge event taking place in Germany that me and my demogroup called Conspiracy do a lot to prepare for. We participate in a category named 64k intro, which means that we create audiovisual presentations that run in real-time from a single executable (no additional data or files allowed for anything) that can be no more than 65536 bytes large. This program, when run, generates music and visuals in real-time, just like a game engine does, the difference is, that here the displayed content is also completely procedural.

So. We went to Revision this past weekend, and are very proud to have not only won the 1st prize in the 64k intro competition, but we were also awarded the Crowd Favorite prize, which was selected from all the entries in all the competitions by the attendees.

So, without further ado, here's a video of our production. There's a link to the actual executable in the description, but at this point many antivirus programs will probably mark it as a false positive (just like it happens a lot with new TacO releases), so I don't blame you if you're a bit paranoid and stick with watching the video.

Sunday, 18 February 2018



Yesterday's build had a memleak in it that has been causing crashes and performance issues with trails. This update should hopefully fix it.

You can download the new build here.

  • Fixed a memleak with trail texture loading
  • Package loading now tries https first and http if that fails

User friendliness update


And now for something completely different.
This update doesn't bring any new functionalities, but instead focuses on making it much easier to distribute and install marker packs.

First off: marker packs can now be distributed as zip files as well. Any zip file inside the POIs folder next to TacO will be parsed, and all xml files inside there will be imported as markers. This should help out a lot for those of you who don't really like messing around decompressing downloaded stuff.

But wait, there's more!
There's a very interesting thing in windows where it's possible to register an application to handle its own protocol, similar to how file extensions can be assigned a default application. This means that when you click on a non-standard link in your browser, it'll look up the appropriate application and ask you if you want the link opened in that application. Steam uses this mechanic to start games when you click on them in the browser, and now TacO can do something similar too: the overlay now supports one click, on-the-fly installation of marker packs straight from a browser, just by following a link. Of course you first need to download and run the new build in order for the protocol to be registered.

In short: tab out of GW2, go to a website, click a link, tab back to the game and enjoy the markers.
Important: you need to run the new build of TacO once before the links will start to work.

So here's the technical stuff: any website hosting markers can now also link to them using the gw2taco://markerpack/* formula, where the * part should be the actual download URL of the zipped up marker pack without the http:// part (TacO will try to download the zip file through http, and https if that fails).
Here's an example link:
this will tell TacO to download the file, save it to the POIs folder and load it as a marker pack. Some tests are performed to make sure that the file is actually a zip and that it can be loaded before storing it in the POIs folder.

Oh, and also, I registered the domain :)

You can download the new build here.

  • GW2 TacO will no longer be fooled by other windows called "Guild Wars 2"
  • Added "toggleCategory" attribute to markers. These markers will toggle the specified category on or off when triggered with the action key.
  • Turning off the tactical display will now also hide trails
  • Zip compressed marker pack support for easier distribution
  • Trail textures will now also be found under the POIs folder (like marker textures are)
  • I caved. is now official :)
  • Added gw2taco:// url scheme support for one click, on-the-fly marker pack installation from any website