Some developers use Shmeppy, and while Shmeppy will certainly never have the extensibility of a tool like Foundry Tabletop which was built from the ground-up to be great for that, there’s certainly some neat things you could do with Shmeppy with even a basic API.
Indeed, I’m starting this thread because TWebberX on Discord has made Shmeppy’s (probably) first bot by reverse engineering Shmeppy’s client-server protocol.
Can bots be stopped? (Can judgement day be stopped?)
Stopping bots from being built like this by making it technically impossible is… very hard, and is the same difficult goal that DRM attempts to achieve. I’d have to rely on heuristics most likely, and though it’s maybe possible to use DRM-supportive-hardware on users’ computers to do it in a more-sure-fire way I don’t want to go down any of these roads really.
So… let’s just say no: bots can’t be stopped.
What’s the question then?
There’s still a question even if I’m not trying to make bots impossible to make.
Should Shmeppy support an API that allows developers to create bots? Should Shmeppy say “we’re not going to stop you from making bots, but we won’t help either: use at your own risk?” Shmeppy could even say “bots aren’t allowed, they’re against our Terms of Service, and we may throw pie at you if we notice you’re using one.”
In essence: should Shmeppy take a stance for or against bots?
The main concern I have is that allowing random developers to essentially add features (and therefore UI) to Shmeppy seems dangerous. These bots will become part of the “Shmeppy experience” to whoever uses them, and they’re likely to be pretty bad experiences (even with an official API keeping them somewhat stable at least).
And I definitely don’t want to start seeing people say to new users “oh well you’ve gotta use bots X and Y to really get the full Shmeppy experience.” That is not going to be a good experience for new users, and I fear it could be very bad for Shmeppy’s future.
A quick plea…
Since I know developers are the most likely ones to respond here… A quick plea: let’s not talk about the technical details of what an API might look like, it’s not relevant to the question at hand and would be better off happening in another thread.