Recently, I started my own corporation and setup all the things that you would expect from a corporation. A goal what to do, ships to fly, a home with a structure, mapper etc. I had planned this out for a bit and mostly was working with tools I had already used in the past so it was pretty much smooth sailing. One thing however turned out to be a little bit more time consuming than initially expected: Setting up some way to get notifications to when our new beloved home was getting reinforced in a way that I would see it outside the game.

Current Solutions

After doing some research this kind of functionality is covered by both large Corporation / Alliance Management Frameworks Alliance Auth and SeAT with adding one or the other plugin. Now for a corp with just a few members having such a framework kinda felt like overkill, but I decided to install one anyway. SeAT happened to have docker support which matched how I have been running various discord bots and other things, so I went with that. After reading through the docs I managed to get it running after some time, and then had to spend some more time to install the right plugin.

During the process I thought there has to be an easier way to do this. And eventually I thought that I could just repurpose one of my current bot projects that reads the user’s hangar and tells you what cargo in ships is missing (maybe worth it’s own article at one point) could just as well read structure states, right?

Making my own

So I set off to create my own project for just this purpose, changing the authorization to request the right things for this project, making the ESI calls to get structure info and then showing the whole thing in discord. Until I had my first, badly mangled status message in discord it took less than an hour - less time than I had used to install SeAT in the first place. I was hooked to build my own thing now.

From there however there was still some things to do. The bot had to keep track of structure stats and tell me when something changed, as well as propperly refresh tokens so it wouldn’t break after some time. Eventually I realized that people also used the notification API to get info when a structure is actually getting shot at, and then proceeded to cause a lot of errors when trying to figure out how those notifications are formatted. A funny thing with those notifications is that they tell you precisely how much shield is left on your structure, but have a API cache time (and thus delay of up to) of 5 minutes - that info is completely worthless!

It all came around however, and I now had the fun task to shoot my own structure to see if it worked - somehow this is the 4th project where I end up shooting my own structure. A big thanks also to Disturbing Silence for betatesting this project by shooting my structure.

Obviously the project is open source and further improvements or bug reports are very welcome, either on github or on discord.

New Solution

So at this point I am able to offer this new solution for the same old problem, but hopefully in a way that is easier to set up. With some caveats that I will get into in a second, here is the most basic setup to get structure notifications:

  1. Invite the discord bot to your server with the following invite link

  2. Type !auth in a channel where the bot has access and get an link for ESI Authorization

  3. Authorize with a character in your corp that has the “Station Manager” role

  4. Type !info to see your structure(s) statuses and fuel

  5. Set the channel you want notifications in with !callback

Now with that out of the way, here are the caveats:

  • Since I host this discord bot I handle your structure and notification information.
    I claim to not use this information in any other way than to provide this service, but there is no way you can check this.

  • Availability of the service is only as good as the availability of my server. I claim that it is “pretty good” but again that is not really something I can guarantee you in any way.

If those two things are a problem for you, then please consider hosting the service yourself, the instructions for that are in the git repo.

Impressions