Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Outgunned Dice: Matching Symbols from a Rollable Table

I'm trying to recreate the dice from Outgunned where you match sides. While I know I can just do that with a regular /r ?{Number of Dice}d6m. I wanted to use the symbols from the Outgunned dice. I made a rollable table with the dice faces and created this macro: /r ?{Number of Dice}t[outgunned-dice] It works but I was wondering if there is a way to use the matching function. Any help would be greatly appreciated.
1712758200
GiGs
Pro
Sheet Author
API Scripter
I don't think you can do that. As a Pro subscriber, you can write a custom script that rolls the dice and matches them, qand it might be possible with something like ScriptCards (if so, it's way easier than writing the script yourself), but I don't think you can do it without a script.
1712758807
timmaugh
Pro
API Scripter
I can think of a way to do it (sort of in reverse from what you're trying) using metascripts... with a couple possible outputs. Let me mock something up and I'll post screenshots...
1712773452

Edited 1712773499
timmaugh
Pro
API Scripter
OK, this turned out pretty cool... I had to render up my own dice images, but a google search showed me roughly what they were supposed to look like. This solution will work with any images, of course. Mine were uploaded at a size of 32px by 32px. First, the eye candy of what it looks like... I rolled 16d6 (trying to get enough to where every line would populate): But the way it's built, it will only populate the lines that actually have returns. In this example, I rolled 15d6, and no 6s (what I called "Events") were rolled, so that line isn't included: A couple of caveats about my approach... (1) I have no idea what each of these faces are actually called, but you can rename them in the macro so that they would actually match what they're called in system. The horned one was either going to be Bill the Cat, Side-Eye Bull, or Winking Droid. I went with Droid. The last one (the circle) was either going to be Pokemon or Event Horizon. I went with Event. (2) I have no idea what order these faces actually come on a die, but I doubt that it matters. For me, I associated 1-6 with each image as matches the first image, above (1=bullets, 2 = hearts, etc.). And a couple of points about my approach... (1) I included the "Plugger" line in the template just so you could easily see what was rolled. It's not necessary for you to include this for the macro to function, so once you're satisfied that this command is producing good rolls, you can remove this template element. (2) As mentioned, the template will only show lines for what was actually rolled. If you don't roll any "Hearts", that line won't show. Here is a smaller roll (6d6) to show that 2 faces weren't rolled, and both were left off: Command Line Here is the command line I am using for this: !&{template:default}{{name=Outgunned Roll}} [[?{Number of Dice}d6sa]] {\&global ([AllDice]{&eval}getDiceByVal($[[0]] 1-6 all list||){&/eval}) } {{Plugger 1={&eval}getDiceByVal($[[0]] 1-6 all list|-){&/eval} }} {\&if {\&eval}filter(--AllDice --1 --count){\&/eval} > 0} {{Bullets={\&eval}replace(--source|{\&eval}filter(--AllDice --1 --list){\&/eval} --find|1|'@\\(table.outgunned-dice.1.img) '){\&/eval} }} {\&end} {\&if {\&eval}filter(--AllDice --2 --count){\&/eval} > 0} {{Hearts={\&eval}replace(--source|{\&eval}filter(--AllDice --2 --list){\&/eval} --find|2|'@\\(table.outgunned-dice.2.img) '){\&/eval} }} {\&end} {\&if {\&eval}filter(--AllDice --3 --count){\&/eval} > 0} {{Spades={\&eval}replace(--source|{\&eval}filter(--AllDice --3 --list){\&/eval} --find|3|'@\\(table.outgunned-dice.3.img) '){\&/eval} }} {\&end} {\&if {\&eval}filter(--AllDice --4 --count){\&/eval} > 0} {{Skulls={\&eval}replace(--source|{\&eval}filter(--AllDice --4 --list){\&/eval} --find|4|'@\\(table.outgunned-dice.4.img) '){\&/eval} }} {\&end} {\&if {\&eval}filter(--AllDice --5 --count){\&/eval} > 0} {{Droids={\&eval}replace(--source|{\&eval}filter(--AllDice --5 --list){\&/eval} --find|5|'@\\(table.outgunned-dice.5.img) '){\&/eval} }} {\&end} {\&if {\&eval}filter(--AllDice --6 --count){\&/eval} > 0} {{Events={\&eval}replace(--source|{\&eval}filter(--AllDice --6 --list){\&/eval} --find|6|'@\\(table.outgunned-dice.6.img) '){\&/eval} }} {\&end} {&simple} Required Scripts This requires the MetaScript Toolbox, and specifically the new release that is currently pending (as of April 10) in the one-click. You can read about the updates here . These updates should be merged in early next week, at which point this will work for anyone.
1712773855
timmaugh
Pro
API Scripter
Oh, and setup... that matters, too. I created a table called "outgunned-dice" and added 6 entries, each at a "1" for weight. I associated each image with the appropriate level, and made sure players can roll from the table (we're actually returning the image via Fetch, but I think the "players can roll" setting is necessary for Fetch to function for a non-GM in this way):
Sorry, I've been away from my computer for a few days. Thank you for your work. Outgunned just uses matches so the sides don't have any meaning beyond their picture...although, as I've gone through the book, I've learned that the one that you called "Event" and I was calling "8 Ball" is actually supposed to be "Snake Eyes" and has an additional use of indicating something bad happening.