Skip to content

Commands ​

Every command Pixel answers in Discord, grouped by who can use it. Each card shows the lowest tier it needs, how it replies, and any capability it needs on top.

Required options end in a colon, like device:. Optional ones are in brackets, like [topic:]. Discord lists the options as you type.

For everyone ​

/help​

Guest

The commands you can use. It only lists the ones your tier and capabilities allow.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.

/status​

Guest

Whether Pixelbar is open right now, and for how long. Pixel reads the switch in the space through the SpaceAPI.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.

/events​

Guest

What's coming up at Pixelbar, from the Discord server's scheduled events. Times are in the space's time zone.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.

/info [topic:]​

Guest

Short answers about Pixelbar: where it is, visiting, membership, the house rules and how to get in touch. Each answer links to the full page on pixelbar.nl.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.
[topic:]
Pick a topic, such as address, contact, membership, rules or visiting. Leave it out to see the list, which only you see.

/wiki [query:]​

Guest

Searches Pixelbar's wiki and lists the matching pages as links, with a button to see every result on the wiki. Words match whole words first, then as the start of a word, so clean finds Cleaning. Without a query, or when nothing matches, it replies privately with buttons for the wiki's top pages: the ones its main page links to.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.Discord suggests values as you type. Pixel still checks whatever you pick.
[query:]
What to look for. Start typing for page titles. Leave it out to see the top pages, which only you see.

/whoami​

Guest

What Pixel knows about you: your tier and your Discord ID.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.

/ping​

Guest

Checks that Pixel is alive.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.

/feedback message:​

Guest

Sends a message to Pixel's maintainers, with your Discord name and ID so they can follow up. Your message and username may be made public, so don't include anything private. You can send a few at once, then one every ten minutes. What Pixel keeps is in the privacy notice.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.
message:
What you'd like to tell the maintainers, 3 to 1000 characters.

Fishbot ​

A little QuakeNet nostalgia. Pixel keeps the original Fishbot replies, including their old-school language. These commands answer publicly; help and unknown phrases are private. Pixel only answers slash commands and does not read the channel's conversation.

/fishbot say [phrase:]​

Guest

Try a classic Fishbot phrase. Matching ignores case and extra spaces, but requires the whole phrase. Fish go m00!

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.Discord suggests values as you type. Pixel still checks whatever you pick.
[phrase:]
A classic phrase, such as fish, hello fishbot, spoon or moo?. Start typing for suggestions; leave empty for private help.

/fishbot trout user:​

Guest

Slap someone around a bit with a large trout. Purely theatrical.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.
user:
Pick the person (or bot) to trout. Nobody gets pinged.

/fishbot feed​

Guest

Feed Fishbot hundreds and thousands.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.

/fishbot pet​

Guest

Give Fishbot a friendly stroke.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.
Guest

Sneak a cookie away from Fishbot.

Pixel answers in the channel. Everyone there sees the reply, and that you used the command.

Members ​

For paid members. Commands marked Friend also work with a friend membership.

/closing-time​

Member

Posts the closing-time reminder in the closing-time channel. Pixel also posts it by itself when the space closes.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.

Home Assistant ​

Lights, switches and doors in the space. You only ever see the devices you're allowed to see, and you only get buttons for what you may change. Pixel checks again on every press, whatever the panel showed.

/ha [device:]​

Friend

Opens the Home Assistant devices you may see, with their state. Changing one needs the capability for that kind of device, or ha-admin. Doors are for members only, and only lock and unlock.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.A capability an admin grants on top of your tier. Any one of these will do.Discord suggests values as you type. Pixel still checks whatever you pick.
[device:]
Go straight to one device. Only the ones you may see are offered. Leave it out to choose from the list.

The list groups the devices by kind, with each one's state as Home Assistant reports it right now. Pick one from the menu to see more, or to change it.

The list: the devices you may see, grouped by kind, with a menu to pick one.

A device shows its live state, when it last changed and a few details for its kind. There's a button for each thing you may do to it. The one it's already at is greyed out.

A light that's on, for someone who may switch lights: On is greyed out, Off and Toggle are there.

Pressing one sends it once, then says what really happened above the device's fresh state: done, already there, still working, nothing changed, or that it couldn't confirm. Pixel never sends it again by itself.

After pressing Off: what happened, then the light's state now.

A door has Lock and Unlock, for members with ha-doors or ha-admin. Pixel never unlatches a door. While admins have switched door control off, a door shows no buttons and says why.

A locked door, for a member with ha-doors: Unlock is the only thing to do.

Scheduled posts ​

Messages, polls and attendance polls that Pixel posts in a channel, once or on a repeat. These need the schedule-posts capability, and you can only schedule in channels you can post in yourself. Times are in Europe/Amsterdam.

/schedule​

Member

Opens your scheduled posts. Everything else is buttons, menus and forms in Pixel's reply, so there's nothing to remember. The buttons stop working after 15 minutes or when Pixel restarts: run /schedule again.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.A capability an admin grants on top of your tier.

Every scheduled post is in the menu, soonest first, with its channel, its next post and how often it repeats. Pick one to see it, or make a new one.

The list: a menu of every scheduled post, and New message, New poll and New attendance poll.

New message, New poll and New attendance poll open a form. When is a day, a time or both, such as wed 1900, 14 oct 19:00, tomorrow 9am, now or now+1h. A poll's form asks for the question and its answers, one per line (2 to 10), instead of the message. Date tokens like {{date}} are filled in when it's posted.

The form for a new message: the channel, when, how often, and the text.

Nothing is saved yet. Pixel shows a draft: the time it understood, and exactly what it will post. Settings that only sometimes apply are on the draft, and only when they do: the days for a weekly repeat; how long a poll stays open, whether it allows several answers and its daily Reminders; and Pings, only where you could ping everyone yourself. If something's wrong, the draft says what and Edit details opens the form again with what you typed.

A draft: the post as it will look, when it goes out, the days for a weekly repeat, and Schedule to save it.

Schedule saves it and shows it. A schedule shows what it will post next and its next few times. If you made it, you can Edit it (the same form and draft, with Save changes), Pause or Resume it, and Delete it (Pixel asks first). Someone else's is read-only.

One of your schedules: what it will post next, with Edit, Pause and Delete.

Attendance polls ​

An attendance poll is for "who's coming?". A Discord poll always ends by announcing a winner ("the winner is No with 30%"). Pixel counts an attendance poll itself, so it ends with how many are coming instead. Its form asks for the question and 1 to 5 answers, one per line, such as Coming and Not coming, or just I'm coming. Each answer becomes a button.

On the draft, choose which answers count as coming (the first one does to begin with) and how long it's open. Colours picks each answer's button colour: grey (the default), blue, green or red. Results picks a channel for the totals: the totals so far at a time on the day it closes (say 17:00 for a poll open until midnight), and the final totals when it closes. You write what they say, with {{count}}, {{names}}, {{question}}, {{link}} and the date tokens, for example Poll is closed - {{count}} people are coming to the Pixelbar! In the poll's own channel they're posted as replies to the poll; in another channel, use {{link}} to point back to it. Leave Results off and the totals only show on the poll. Reminders work as for a poll.

The poll in the channel: each answer's total and who picked it, with a button per answer.

Anyone in the server can answer, once: pressing another answer switches, and pressing yours again takes it back. Pixel tells you privately what you picked. Your name shows on the poll and in its results, like a Discord poll's voters. The buttons keep working when Pixel restarts, and go when the poll closes.

Parking ​

Getting a parking spot at the gate. These need the parking capability. Every reply is private, and every booking ends at 23:59.

/park [for:]​

Member

Opens your parking panel. Everything else is buttons. /park for: books straight away, for when you're at the gate and know how long.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.A capability an admin grants on top of your tier.Discord suggests values as you type. Pixel still checks whatever you pick.
[for:]
How long, such as 30m, 2h, 2h30 or rest of day. Books straight away. Leave it out to choose on buttons.

When you're not parked, pick how long. The lengths come from the parking settings, and ones that won't fit right now are greyed out. Another length… takes any other. Pixel gives you a spot that's free for that whole time, opens the gate and says where to park: Pixelbar's own spot first, then the borrowed spot that fits most tightly. If nothing fits, the gate stays shut and Pixel offers the longest stay that would. Every panel shows who's in which spot.

Not parked: a button for each length, and which spots are free, taken or closed.

Once you're parked, the panel says where. Open the gate opens it again, if it didn't open or you need it again. Leave frees your spot when you go. The Stay … longer buttons only offer what fits before the spot closes, or 23:59.

Parked: where to park, the gate, staying longer, a taken spot and leaving.

If someone else is in your spot, Someone's in my spot shows what Pixel will do before it does it. If another spot is free for the rest of your time, it moves you there. If none is, it ends your booking and reports it to the board. Either way your spot is closed until the end of the day, so nobody else is sent there.

Someone's in my spot: Pixel offers a free spot before moving you.

Pixel DMs you 15 minutes before your time is up, saying how much longer you could stay, and ends your booking 5 minutes after it if you haven't left or stayed longer, so keep DMs from server members on.

Doors ​

The building's doors, through OpenR. This needs the openr capability. The parking gate isn't here: /park opens it.

/openr open door:​

Member

Opens one of the building's doors. Pixel asks once: if it doesn't open, try again in a moment. Refused while admins have switched door control off.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.A capability an admin grants on top of your tier.Discord suggests values as you type. Pixel still checks whatever you pick.
door:
Which door.

Space state ​

Sets whether Pixelbar shows as open or closed. This needs the spacestate capability.

/spacestate set state:​

Member

Tells the space's state API that Pixelbar is open or closed. /status and the open and closed announcements follow once the change shows up on SpaceAPI. If the API doesn't accept it, Pixel says nothing changed.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.A capability an admin grants on top of your tier.
state:
open or close.

Admin ​

For Pixel's operators. Every reply is private, and every change is recorded. How to use them is in the runbook.

/admin​

Admin

Opens the admin panel: Pixel's health, with sections for people and their access levels, capabilities, Discord roles, announcements, the closing-time reminder, doors, OpenR and parking.

Only you see Pixel's answer. Nobody else in the channel sees it, or that you used the command.

/admin has no subcommands or options. Everything is buttons, menus and forms in its reply. The first panel shows Pixel's version, where it runs, its uptime, how many admins, members and friends there are, and the state of Discord roles, Home Assistant, OpenR and door control. From there:

  • Go to… opens one of the sections below.
  • Reload the access lists re-reads the member and admin lists and the Home Assistant devices after someone edited them by hand, and says what changed.
  • Refresh shows the status again.

Changes that are hard to undo ask first. Changes to a person's level or capabilities, and to what a level gets, ask for an optional reason for the audit log. ← Admin in every section goes back to the first panel.

People ​

One person's level, capabilities and Discord roles. Look someone up… asks who, then shows their level, where it comes from, what they hold and their roles.

  • Change level…: make them a member, a friend or a guest. Guest keeps their entry but gives no access. Admins can't be changed from Discord.
  • Grant capabilities… and Revoke capabilities…: menus of the capabilities they don't hold, and the ones they do. Revoking one they get from their level takes it away from them alone. Pixel DMs them about a grant or revoke.
  • Grant every capability…: every capability in one change.
  • Sync their Discord roles: sets their roles to match their level.
  • Capabilities in detail: the capabilities they hold, in full.

Capabilities ​

Every capability, what it is for, how many people hold it and which levels get it. What friends get and What members get show what a level grants, with menus to grant a capability to everyone at that level, or take it back. What friends get, members get too. A level change DMs nobody.

Discord roles ​

Whether Pixel's levels are mirrored to Discord roles. Sync everyone sets the roles to match Pixel's lists for everyone in them. People who hold a role but aren't listed aren't touched.

Announcements ​

The channels where Pixel announces that the space opened or closed, and whether each is posting. Add a channel… picks a channel you can post in and a style:

  • Live: one post per opening, edited when it closes.
  • Timeline: a new post for every open and close.
  • Single: only the latest; the old post is deleted.

Stop announcing in… removes a channel. Changes take effect at once.

Closing time ​

The reminder Pixel posts when the space closes, and by /closing-time. Change the message… opens the text, prefilled with the saved one. Markdown and date tokens like {{date}} work. With no message set, Pixel posts its own. It's posted in public, so never put door codes or other secrets in it.

Doors ​

Door control from Pixel, on or off. Switch door control off… (Pixel asks first) stops every door action from Pixel at once, for everyone: Home Assistant's doors, OpenR's doors and the parking gate. Switch door control on brings it back. It stays as set across restarts. It doesn't lock a physical door.

OpenR ​

Only shown where OpenR is set up. Whether Pixel is logged in to OpenR, and each door's status.

  • Log in: Pixel logs in, and OpenR emails a code.
  • Enter the code…: finishes logging in with that code. It's never logged.
  • Log out… (Pixel asks first): nobody can open a door through OpenR until an admin logs in again.

Parking ​

Every spot, whether it's open, until when, and who's in it, 25 spots to a page.

  • Manage a spot…: opens one spot, below.
  • Open spots…: opens borrowed spots, from and until a time (now until the reset, unless you change it).
  • Close spots…: ends a borrowed spot's opening for today, or closes Pixelbar's own spot until a time you pick.
  • Add a spot: a name, a description shown to people who park, and its kind: Permanent (Pixelbar's own, open every day until the reset) or Borrowed (closed until an admin opens it).
  • Settings: how many minutes before the end Pixel reminds people, how long after the end it ends a booking, the daily reset when every booking ends, and the lengths /park offers.

One spot's panel has:

  • Open… and Close for today for a borrowed spot, or Close… and Open again for Pixelbar's own.
  • Edit…: where it is (shown to people who park) and its kind.
  • Remove… (Pixel asks first): the spot and its opening times go. This can't be undone.
  • Free the spot…: ends the booking of someone who left without pressing Leave.
  • Give it to someone…: books it for the person who is parked there, for how long you say (such as 2h or rest of day), or until the spot closes if you leave it empty. They get a DM, and a booking they had elsewhere ends. Pixel won't take a spot from someone still booked into it unless you go ahead when it asks.

How to use these day to day is in the runbook.

A Pixelbar community project.