Giter VIP home page Giter VIP logo

sidekick's People

Contributors

artemgr avatar naomimyselfandi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sidekick's Issues

doing math to determine how many dice to roll

I am trying to have Sidekick do math and use that result to determine how many dice to roll. some games have you subtract a number from the amount of dice you are rolling (like defense in world of darkness). If this is able to happen I could make a list of dice rolling formulas and have the players add them to their saved rolls using their stats and tell them what defense to set and all they would need to do is use a saved roll for an attack.

a basic example:
/r (4-1)d10
Using saved numbers:
/r $attack = ($str+$weaponry+$damage-$defense)d10! >=8

Being able to do this would really streamline gameplay and make the save function super useful for world of darkness. I do not know if there is a command for this already or how complicated this is to do.

Thanks for making a bot that is super useful! :)

Spelled out numbers rather than integers

Hi, I recently started using your bot for a new campaign and it's working great! However, my DM has dyscalculia (dyslexia with numbers) so I was hoping there could be a boolean added for accessibility so that rather than printing out, i. e., 10, it would return "ten". Thank you!

[Suggesstion] Option to sum up the repeated rolls

As the title says, my suggestion is the ability add pass in an option third parameter into the repeat method or another method that could take the repeat command as a parameter, and sum up the results. The reason for this suggestion is my DM looked into how Matthew Mercer did new characters and they did the standard /r 4d6 drop lowest 1 6 times but if their total rolls didn't add up to above 70, they got to roll again.

Fate Dice / Xdf

I't be nice to have Fate dice, my Discord channel us mostly about Fate games that use Fate/Fudge dice (+/0/-)

Critical counting for dice pool systems

For some oWoD games (namely Scion and Exalted) a roll of 10 counts as two successes instead of one. It would be nice to have a way to automatically count these extra successes.

Possible syntax: allow multiple success values on one pool and add them i.e. 10d10 >6 =10 f1

Currently adding multiple success criteria logically ANDs them together, if this is desired behavior you may need to add an OR designator i.e. 10d10 >6 || =10 f1

Thanks!

Bot Offline

Soo.... Yeah it's offline for me, anyone else having the same problem?
image

Bot Offline

Bot offline? I've been using this for quite awhile but it appears to be down as of 4:00 PM EST.

Source Code?

Hi there.. I wanted to ask if the source code for this project is available.. I would like to add some stuff for our online pen & paper group, if possible..

You added a MIT license here, so I was optimistic and posted this issue ;)

Deleting saved rolls

We can save dice rolls with /r $<nickname> = <dice roll>. I don't see a way to delete them and free up saved roll space.

I tried issuing "/r $<nickname> =" in hopes that it would "unset" the roll using that, to no luck.

Can you please either document the method in the readme, or add one (and document it)?

Thanks!

[Suggestion] Sound/Music player for RPG ambience

I already use it as a dice roller, but right now I'm looking for a new bot just for playing ambience music. Would be nice if sidekick could do that too, an all-around bot for rpg games.

And, thx for the bot.

Request: Fate Dice

Hey there, I love the dice bot.

What would make it even more fantastic for my group is the addition of 'Fate Dice' (also called Fudge dice). They're basically three sided dice with -1, 0 and +1 on their sides.

The syntax used elsewhere for that type of dice is 1dF (rather than 1d6, for example).

Cheers :)

Count the number of successes

There should be a modifier that makes the dice bot return the number of passed rolls instead of the sum of them.

https://www.reddit.com/r/discordapp/comments/4vfbqi/looking_for_a_dice_bot/d780297

  • improve the testing
  • -> unit test on build
  • -> mock rolls
  • test modifiers working with drops
  • test the real thing
  • recognize the modifiers
  • spew the modifiers => Instead of spewing back the last modifiers I made the parser take an inline modifier only when it's followed by a non-modifier op.
  • propagate the success
  • modify the printer
  • printer cleanup

=> Note that the number of successes might be negative in some cases. E.g. an oWoD botch.

Memory for Savage Worlds dice

The basic resolution mechanic for PCs in Savage Worlds is to roll a single trait (attribute/skill) die (d4 through d12) as well as a "Wild Die" (usually a d6), both of which explode; keep the highest of the two; and add any modifiers. There doesn't seem to be an official way to roll that in Sidekick, although I just learned about the undocumented "max" function from reading other issues. :) Still, "max(d10!,d6!)k1" "max(d10!,d6!)" is kind of a mouthful to type out for every roll.

There's a few special cases: for rapid fire, you roll one skill die for each shot, plus one Wild Die, and replace any one skill die with the Wild Die if it's better. A few abilities can make the Wild Die a different die type. Some other minor stuff, but...

Is adding abbreviations/macros for specific systems something you're willing to do? I would love something like "/r sw d10" being shorthand for "max(d10!,d6!)k1" "max(d10!,d6!)", with maybe "sw 3d10" for rapid fire and "sw d10w10" for an altered Wild Die. But I understand that you may not want to introduce special syntax for every system out there, and a robust macro system is not easy to engineer.

dicebot offline

the dicebot is appearing offline at the moment? is this another server issue or is it something else?
image
this is how it appears on both of the servers i use it on?

Abnormally high 10's In Cronicle of Darkness Rolls (/r 10d10>=8

Server Requiem for Greece

Hello we have a larp server with about 80 users. We use your bot for dice rolling and we are noticing a predisposition towards tens.

Maybe its nothing but can you look into into from our logs? Tell me what else you need to make the tests.

Thanks in advance for any help.

[Suggestion] Add notation to output dice in ascending numerical order rather than "as they are rolled"

Several games using die pools - most urgent for me being Exalted 3rd Edition - run on die pools of d10s where 7 and up are successes but 10 counts as 2. Adding additional notation to the end of the normal Xd10>=7 notation to define this behavior would make rolls excessively tedious.

Other games I play use a system called "One Roll Engine" where matching dice is significant with no significance at all to the sum of the roll or values above a given number. For example, out of 10d10, it may be significant if a user rolls three 8s, but there's no significance at all to the lone 10 or the lone 1 in the roll.

In both cases, the ideal behavior would be to be able to define a die pool of a given size, with dice of given shape, and simply have the results displayed in ascending order of die value with no sum given at the end. Perhaps the output could introduce a mark such as | at regular intervals to make it easier to manually count up the results.

Notation-wise, I think using "a" as a suffix could work. For example, "/roll 20d10a" could result in "@Username: 20d10a = (1, 1, 2, 3, 3 | 4, 4, 4, 5, 5 | 5, 5, 6, 7, 9 | 9, 9, 9, 10, 10)

This way users that care about counting up successes can count them up starting at whichever value is relevant for their system (as well as handle things like certain values counting for more than others), and users that care about matched sets can easily spot them in the output as well.

Poor randomisation function?

Loving the bot so far, but recently discovered that it's prone to 'streaks', batches of consecutive numbers or results within 1 of each other. I rolled 100dX a few times and every batch of rolls had 5+ such streaks, such as 100d20 resulting in +10+8+10+7+10+10+10+9+10+10+10 and later in the same batch +17+17+17+18+17. Far from impossible but it's statistically unlikely for this to happen more than once per 100dX batch of rolls. A pattern is clearly visible, which kind of defeats the point of randomization. I would recommend creating a more robust and varied seed function from which to derive numbers.
salty af on account of critically fumbling three times in a row due to this.

Thanks for considering this issue.

No limit to amount of dice?

I commanded a roll of 9,999,999 dice and it hung the bot for about 6 minutes. It doesn't appear to limit number of dice.

Use a license better suited to documentation

According to #32, the devs have no interest in making the code open source. Since this repo is apparently for documentation only, please use a license written for non-code creative works, such as CC-BY.

Print separate roll results on new lines?

For example when rolling multiple attacks with #14 or when using the repeat command (e.g. for ability scores), it would be helpful for the output to be formatted line-by-line.

Currently, this is the output:

repeat (4d6!1kh3, 6) = (3+3+5+5) = 13, (1+5+1+3+6+1+2) = 14, (6+2+2+3) = 11, (6+1+1+6+4+5) = 17, (4+4+5+2) = 13, (4+5+1+6+6) = 17

It would be easier to digest if I could either summarize to 13, 14, 11, 17, 13, 17 or print one output statement per line like so:

repeat (4d6!1kh3, 6)
(3+3+5+5) = 13
(1+5+1+3+6+1+2) = 14
(6+2+2+3) = 11
(6+1+1+6+4+5) = 17
(4+4+5+2) = 13
(4+5+1+6+6) = 17

d20 shorthand

Teach the parser to grok "d20" in place of "1d20".

Exploding dice

2d6e -- explode indefinitely
2d6e10 -- explode up to ten times
=> Will probably stick with the roll20 syntax: https://wiki.roll20.net/Dice_Reference#Exploding_Dice

cf. https://www.reddit.com/r/discordapp/comments/4vfbqi/looking_for_a_dice_bot/d6f4so8

  • Pick a parser. Nom or...
  • Install the selected library.
  • Refactor how the TargetNumber works. First, in the parser, separate the basic dice (4d6) specification from the target number specification. Next, roll the basic dice right there in the parser and remember the rolls. Now, when the parser finds the target number specification - it should apply it to the existing rolls, marking some of them as failed. The goal here is to a) make the position matter, e.g. "4d6!6>5" (explode then apply DC) is different from "4d6>5!6" (apply DC then explode), b) simplify the code (TargetNumber becomes a Dice function).
  • Implement something (a function? a nom macro?) to find and replace all the matches of a nom parser.
  • Instead of passing the entire dice expression as a string to the dice evaluation engine - pass a representative structure from the parser.
  • Refactor dice replacement into one-liner.
  • Implement the exploding dice parsing.
  • Implement the exploding dice calculation.
  • Tweak the output formatting.
  • Unit test the parser?
  • README update.

Allow for flavour text

Would it be possible to allow any text that comes after the die rolls to be copied into the result?
Ex.:

User: /r 1d20+7 intiative roll
Sidekick: @User: `1d20+7` = (14)+7 = 21 `initiative roll`

It's but a convenience, but a really convenient one.

Morrow Project dice.

Ok I need help as I cant figure this out on the bot.
Morrow project rolls 1D100 and your tens is successes. so if my skill is 45 and I roll 43 I succeeded with 4 successes.
But if I roll a 44 I succeeded with 8 successes as a double number is an Exceptional success and you add both numbers together.

/r (1d100) mod 10 does not work, so what do I use to get a modulus 10? and then how can I detect doubles?

Thanks!

Rolling d0s

If you /roll 1d0 on Sidekick, the answer is always 1.

If you /roll 1d0 on Roll20, the answer is always 0.

I don't rightly know why anyone might want to roll a d0, but since it's a valid input, I was wondering if there was a reason for this discrepancy?

Proper re-roll syntax

Like Elegant427 pointed out, our re-roll documentation is incorrect. We only have the exploding dice syntax. Re-roll is different from exploding dice in that it excludes the rerolled dice from the total sum.

To quote:


So, instead of getting exploding 1's
repeat(3d6[explode]1, 6) = (3+5+1+6) = 15, (1+3+2+4) = 10, (1+5+2+6) = 14, (1+6+4+5) = 16, (6+3+5) = 14, (4+2+1+2) = 9
A 're-roll' function would show something like
repeat(3d6[re-roll]1, 6) = (3+5+1+6) = 14, (1+3+2+4) = 9, (1+5+2+6) = 13, (1+6+4+5) = 15, (6+3+5) = 14, (4+2+1+2) = 8


As usual, roll20 has a syntax for us: https://wiki.roll20.net/Dice_Reference#Rerolling_Dice

Help command

Hey, this isn't an issue, more like a feature request.

I was thinking a simple /help command would be helpful.

Either it would display something like your readme file or even just point people to your readme file here on GitHub.

Just a thought.

Add labels to rolls

It would be nice to be able to label a roll in the actual roll command. One way to do this is by requiring that no spaces are used within the equation. Then you can separate the command by spaces, allowing anything after the second item to be a text label for the roll. For example:

The command:
/r 1d20+2 Con Save

The output:
Con Save: 1d20+2 = (20)+2 = 22

Not a necessity by any means, but it is nice to be able to say what your are rolling as you roll it rather than sending a separate message.

Private rolls

There's an idea from one of our Patreon backers.
To quote: "private rolls directly to the storyteller so only they and a single player can see it"

Deltas?

I've heard that Fantasy Flight Games (Warhammer?) has those d100 rolls where you calculate a delta from the target number. The larger the delta, the greater the degree of success is. Likewise for failure.

Need more info on this. Also need to think of a way to print the delta without disrupting the other games.

Roll with advantage / disadvantage?

In D&D 5e, it's common to roll dice with advantage or disadvantage. Advantage is rolling 2d20 and taking the higher of the two rolls, whereas disadvantage is rolling 2d20 and taking the lower of the two rolls. It would be great to be able to roll XdY dice, and then take the highest or lowest Z dice out of the X dice rolled. For example, /r 2>4d6 would be take the greatest 2 rolls of 4d6 and add them together, and /r 3<6d12 would be take the lowest 3 rolls of 6d12 and add them together. The command syntax is up to you, but the functionality should be there.

Ability to roll multiple dice without summing results

Would be nice to have a way to roll multiples and not have them summed. For example, if I want to roll 4d6k3 6 times, but want the results rather than the sum.

Maybe something like...
/r 4d6k3[6] might output (1+2+4+3)=9 (6+4+1+2)=12 (6+2+6+1)=14 (3+4+6+4)=14 (3+5+6+4)=15 (4+3+4+1)=10, or maybe just the results, 9, 12, 14, 14, 15, 10.

This could be used to quickly roll character abilities, for example.

Problem with exploding kept dice

Combining exploding dice and kept dice doesn't work the way I would expect. Extra dice rolled as a result of explosion aren't added to the "parent" die, but counted as separate keepable dice. e.g. if I do 2d6!k1, and one die rolls a 6 and explodes with a 4, I'd expect the final result to be 10, but instead it's 6.

I don't know if there are any systems that use that specific combination of mechanics, but I discovered the issue while I was trying to make Savage Worlds rolls work. :)

Star Wars Narrative Dice

This is a request to add the ability to roll Edge of the Empire/Age of Rebellion narrative dice as used in the Star Wars RPG system. The dice include 3 sets of D6s, 2 sets of D8s, and 2 sets of D12s that are color coded by whether they are positive or negative dice.

Diagram of all sides of dice: http://i1093.photobucket.com/albums/i421/thexder42x/SWDicestickers_zps4ce56750.jpg

Example of how the dice roller works on Orokos.com:
https://gyazo.com/0ca8e347bc7b72538b90fc439c8c819f

On there they use #eA for ability dice, #eP for proficiency, #eB for boost, #eC for challenge, #eS for setback, #eD for difficulty, and #eF for force dice then the system automatically calculates number of successes, failures, etc. and shows the final result.

Thanks for your consideration!

Counting fudge dice rather than summing them

Hey, I'm in a game where the number of pluses, the number of blanks, and the number of minuses are all mechanically useful, but the sum of the dice is not useful. Would it be possible to do something like

(+bbb+--b+b--, 3+ 5b 4-)

or some similar display to count how many dice of each type are available?

Thanks!

[WoD] A way to store/track WP spends

There is an idea from one of our patrons to make it possible to track the Willpower.
To quote: "Tracking initiative, some way to just store/track WP spends".

Tracking stuff was on my mind as well. Maybe design a generic system for that.

Variable failure condition?

I see that you have implemented oWoD (/r 3d10>=6f1) as one of the dice rolling variations. I have experimented with the command and whilst the size of the die can be varied I have been unable to adjust the failure condition sucessfully.

The whilst changing the number after the f will change the number that consititutes a failure I have been unable to get it to treat multiple results as a failure. For example I would like to be able to roll multiple d10s and treat 9 and 10 as a success, but 1,2 and 3 as failures (for example).

If this is not already implemented would it be possible to do this, or if it is (as I suspect) user error can you confirm the correct format for the command?

[Suggestion] Deleting command messages

Sidekick has been suggested to me since my favorite Discord bot has been taken offline for the time being, but my absolute favorite feature of it was what I called "cleaning up after itself" which is to say when you posed a commend, ie;
!roll 1d10
It would show you the results
@name: 1d10 (9) + 5 = 14
But it would delete the command line (!roll 1d10) and it just made the games feel less cluttered and busy, you'd get the roles without all the unnecessary visual commands.
I would very much like to see an option like this for Sidekick, visual clutter is very distracting to me.

Roll without specifying number of die

When you use the command /r d20, the bot ignores the d and just spits out the number, 20. Instead of needing to specify /r 1d20, shouldn't a roll without a number just roll one of that die?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.