PrinterShameBot app tile: a molten-orange chat bubble
Discord bot · self-hosted · open source

PrinterShameBot

A Discord bot that spits shame like molten lava. Type !printquote in any channel it can read and it fires back a snarky 3D-printing put-down, with the occasional IT Crowd line for good measure.

Free and open source under GPL-3.0. Runs on your own machine with your own bot token; no hosted service to sign up for.

printer-fails  ·  3 members
V
VoronVictim Today at 21:14
!printquote
P
PrinterShameBot Bot Today at 21:14
Your stringing has formed a web of lies and broken promises.

A taste of the shame

Real lines from the bot's repertoire. Roughly three in four replies are pure 3D-printing snark; the rest are IT Crowd.

You printed a hairball with structural ambition.snark
You adjusted retraction distance? How brave. How utterly useless.snark
The nozzle is so clingy, it should come with a restraining order.snark
Your support interface layers are thicker than plot armor.snark
Have you tried turning it off and on again?IT Crowd
People. What a bunch of bastards.IT Crowd

By the numbers

442
snark lines
28
IT Crowd quotes
75 / 25
snark to IT Crowd odds
1
command to remember

How it works

Small, honest and dependency-light. One command, one job.

One command

Send !printquote in any channel where the bot can read and send messages. That is the whole interface.

Weighted randomness

Each call rolls the dice: about 75% of the time you get a 3D-printing snark line, otherwise an IT Crowd quote.

Quotes live in JSON

All lines sit in quotes.json under snark and it_crowd keys, so extending the bot is editing a text file, not the code.

Built on discord.py

A single small Python script using the message-content intent. No database, no web server, nothing to babysit.

Run it yourself

PrinterShameBot is code you host, not a hosted service. You will need a Discord application and bot token from the Discord Developer Portal.

  1. Create an application and a bot in the Discord Developer Portal, and enable the Message Content Intent.
  2. Clone the repo, create a Python environment and pip install discord.py python-dotenv.
  3. Put your bot token in a .env file as DISCORD_TOKEN, next to botmain.py and quotes.json.
  4. Invite the bot to your server with read and send message permissions, run python botmain.py, then try !printquote.

Why it exists

Every 3D-printing Discord has that channel full of failed prints, spaghetti, warped corners and heroic first layers that gave up halfway. Those failures deserve commentary.

So PrinterShameBot is a small pressure valve for the group chat: one command that produces a fresh put-down on demand, no moderation required. It pairs nicely with the wider 3D-printing knowledge base, one repo tells you how to fix the print, this one mocks it first.

Frequently asked questions

Can I just click a link to add it to my server?

No. PrinterShameBot is self-hosted open-source code rather than a public hosted bot, so you run your own instance with your own token. The setup takes a few minutes and is described above and in the repo.

How do I trigger it?

Send !printquote in any channel the bot can read and post in. It replies with a random snark or IT Crowd line.

Can I add my own quotes?

Yes. Edit quotes.json and add lines to the snark or it_crowd arrays. Restart the bot and they are in the pool.

Is it free?

Yes. It is free and open source under the GNU GPL-3.0 licence.

Is it mean?

Affectionately. It is aimed at friends who print together; keep it to channels where everyone is in on the joke.

PrinterShameBot is a free, open-source, self-hosted Discord bot for 3D-printing communities. Sending the command !printquote returns a random snarky 3D-printing put-down about 75% of the time and an IT Crowd quote the rest of the time, drawn from 442 snark lines and 28 IT Crowd quotes stored in a quotes.json file. It is a small Python script built on discord.py using the message content intent, with no database or web server, and is run on your own machine with your own Discord bot token. Released under the GPL-3.0 licence.