ROLL - An APRS Dice Rolling Service
Have you ever thought to yourself, “gee, rolling dice is fun, but I wish I could do it over RF!”
…yeah, I didn’t think so. But nevertheless, Dungeons & Dipoles is proud to present ROLL - an APRS service written in Python/aprslib which allows you to roll dice using standard notation. If you’ve ever used a dice bot on Discord or a VTT like Foundry, then this should be familiar territory, but if not, here’s a nifty guide to using ROLL:
Getting Started
- Open the APRS messaging feature on your radio or APRS app.
- Set the message recipient to ROLL.
- Enter
R, a space, and the dice you want to roll. For example:R 1d20. - Send the message. ROLL replies to the callsign and SSID you sent it from.
For example, sending R 1d20 might return Rolled 1d20: 17. Each die is randomized independently; the numbers below are examples, so your results will vary.
If you are using RF, your message must reach APRS-IS through an IGate, and a transmit-capable IGate must be able to deliver the reply back to your station. You can also use an APRS-IS-connected app.
Basic Dice Notation
The format is NdS: N is the number of dice, and S is the number of sides on each die. A six-sided die gives a result from 1 through 6, inclusive. Put R before the notation to request a roll.
R 1d20— roll one twenty-sided die.R 3d6— roll three six-sided dice and add their results.R d20— another way to request one twenty-sided die.R d%orR 1d100— roll a percentile die, giving a result from 1 through 100.
Commands are case insensitive, so r 3D6 works too. Spaces within the dice expression are accepted.
Modifiers and Multiple Dice
Use + or - to add or subtract a modifier. ROLL shows the individual dice, applies the modifier, and gives the final total.
R 1d20+1
Example reply:Rolled 1d20+1: 17 + 1 = 18R 3d6
Example reply:Rolled 3d6: 4 + 3 + 6 = 13R 3d6-2
Example reply:Rolled 3d6-2: 4 + 3 + 6 - 2 = 11R 1d8+1d4-2
Example reply:Rolled 1d8+1d4-2: 6 + 3 - 2 = 7
You can combine different dice in the same request. The reply spells out an omitted die count, and d% is displayed as 1d100.
Keep or Drop Dice
Add one of these suffixes to a dice term, followed by how many dice to keep or drop:
kh— keep the highest dice.R 2d20kh1rolls two d20s and keeps the higher result: advantage.kl— keep the lowest dice.R 2d20kl1keeps the lower of two d20s: disadvantage.dh— drop the highest dice.R 4d6dh1drops the highest of four d6s.dl— drop the lowest dice.R 4d6dl1drops the lowest of four d6s and adds the remaining three.
For example: Rolled 4d6dl1: 4 + 6 + 3 = 13; dropped 4d6dl1: 1. Dropped dice are listed separately and do not count toward the total. Modifiers work here too: try R 2d20kh1+5.
Long Replies and Repeat Messages
If a breakdown is too long for one APRS message, ROLL sends it in numbered parts such as (1/3), (2/3), and (3/3). Read the parts in order to see the complete roll.
Use numbered APRS messages if your radio or app supports them. Retransmissions of a numbered request use the same roll while the bot remembers that request. Replies may be repeated if their acknowledgments are lost; identical repeated results are not new rolls.
Identical requests without message numbers are suppressed for 30 seconds. If you want another identical roll, send a new numbered message or wait more than 30 seconds before repeating an unnumbered request.
Help and Limits
Send HELP to ROLL for a short usage reminder and a link to this website. An unrecognized command returns the same reminder. An invalid dice expression returns a short error explaining the problem.
- At most 100 dice total and 10 terms per request.
- Each die may have 1 to 1,000,000 sides; each numeric modifier may be at most 1,000,000.
- At most 40 characters in the dice expression after spaces are removed.
- A keep/drop count must be at least 1 and cannot exceed the number of dice in that term. Dropping every die makes that term contribute 0.
- Include at least one die. Multiplication, division, parentheses, exploding dice, rerolls, and Fate dice are not supported.
Join Our Discord
Come join the party!
Find Us on DMR
Join Dungeons & Dipoles on the BrandMeister network.
TG 3162213