Introducing Shipmate!

Hey there! You may not know me, but I’m Jack - the site tech for KnightsMachine and the creator of the WMH (now Shipmate) bot that you may have seen if you’re present on some of the Warmachine-focused Discord servers.

You’re probably wondering “Why should I care?” and that’s a fair question - Mark asked me to write an introduction for our lovely little bot and an overview of some of the things it can, should, or will be able to do in the near future!

To start with we have the card library, I want to break this down into a few different steps: 

?card [faction] [model name or alias]

First off, we have ?card [faction] [model name] - where [model name] is the full card name of a model. As an example you have Karchev, who would be ?card khador karchev the terrible (note that it’s not case sensitive, and doesn’t include any punctuation outside of the initial ‘?’), not too hard, eh? 

The problem that can arise here is that it requires the full name of the model, which can get tricky when you have, say, Agathon. Their full title is Agathon, the Voice in the Darkness, which is a mouthful in and of itself - this brings me to our second command of note:

?alias [model name]

A learning library that creates aliases for models! For this aspect, we can get real creative for what we name the models, in Agathon’s case we would use: ?alias Agathon the Voice in the Darkness! 

?alias add [alias]

Once we have an alias attached via that command, you can use ?alias add [alias], where [alias] is the name of the model, say for Agathon’s case we stick it down as ‘Agathon’ to avoid having to write out the full name each time.

We can now take that same ?card command from before, and replace [model name] with [alias] - so to beat the same example into the ground (which I’m sure plenty of people would love to do for poor Aggy), we can go with ?card Infernals Agathon:


Using the same set of tables in Wartable can get quite dull over time, so as a result Shipmate (courtesy of Brad Park - Necrotyr18 on Discord, who makes these maps!) will draw a random entry from the map list and give you a (hopefully) fresh table every time!

?draft - WIP

This one’s slightly different; ?draft (once finished) will be able to allow you to choose between a team/solos format (and in the future the custom modes like Caster Draft), and enroll people in a tournament/event to decide the first round pairings.  

After typing the command a menu will appear with options that you can react with, these will allow you to navigate the menu which includes: 

  • Changing the format between team, solos, and custom; 
  • Setting a Registration Channel;
  • Enrolling and Starting an event/tournament;

If there is interest, we could also look into Discord managed results as well, to minimise your use of separate systems!  

And, if you like what you see, this bot is available to you right now - use the link below to get Shipmate on your community's server, and give it a whirl!

As a separate note, I will preface in saying that I am a hobbyist when it comes to programming - I like to think that I do good work (which he does; I've seen the amount of effort that went into this -Ed), but am always open to feedback and critique so I can work on refining my ability - as a result you can do so by sending an email to, or by looking for the #bot-feedback rooms in r/Warmachine or the up and coming Boarding Crew server, where I have it to compile for me to look over :) 

Interested in having your own feedback channel to pass to myself? Reach out and we can discuss how to do so!

On Discord you can reach out to me by tag of Brady#0545, if you wanted to talk about the bot, interesting ideas that you may have for it, or if you had any general words you wanted to fire my way!

Share this post