Würfel transparent

Bild: © Michael Schwarzenberger / Pixabay (modifiziert)

@RollButler – Online Dice App, nicht nur für Twitter

Please find the English instruction for @RollButler below.

Deutsche Anleitung zu @RollButler

@RollButler ist ein kostenloser Dienst, der über eine eigene Webseite, über Twitter und Telegram Würfelanfragen entgegen nimmt und beantwortet.

@RollButler eine Online Würfel App
Das Online Würfel Tool @RollButler

Es existieren zwei Möglichkeiten @RollButler über Twitter mit einem Würfelwurf zu beauftragen: Zum einen kann man eine private Direktnachricht an @RollButler mit der Würfelvorschrift senden. Zum anderen ist auch ein öffentlicher Tweet an @RollButler zusammen mit dem Kommando ‘roll' und dem gewünschten Würfelwurf möglich. @RollButler sollte üblicherweise binnen ca. 10 Sekunden auf dem gleichen Kanal mit dem Ergebnis des Würfelwurf antworten.

Ähnlich funktioniert dies bei dem @RollButlerBot bei Telegram. In einem Chat mit dem Bot können die Würfelvorschriften mit einem vorangestellten ‘/roll' oder einfach nur ‘roll' abgeschickt werden.

Auf der eigenen Webseite des RollButlers kann die Würfelinstruktion in das dafür vorgesehene Eingabefeld eingegeben werden. Daneben besteht hier die Möglichkeit eine eigene, geschützte Gruppe zu erstellen, innerhalb der nur die Gruppenmitglieder die Würfelergebnisse und Nachrichten sehen können. Auf der Webseite reagiert der @RollButler bei bestehender Internetverbindung unverzüglich und ist die empfohlene Verwendungsart.

Würfelvorschrift

Kern der Würfelvorschrift ist der Würfeltyp, der durch den Buchstaben ‘W' (für Würfel) und eine Zahl repräsentiert wird. Die Zahl gibt dabei die Zahl der Seiten an, die der Würfel haben soll, z.B. ‘W6' für einen sechsseitigen Würfel. Um mehrere Würfel des gleichen Typs zu werfen, gibt man deren Anzahl vor dem Buchstaben ‘W' an. ‘3W6' führt so zu einem Wurf von drei sechsseitigen Würfeln. Tatsächlich kann man die Ziffer 6 für einen sechsseitigen Würfel auch weglassen, da dies der Standardwürfel ist.

Um mehrere unterschiedliche Würfel miteinander zu kombinieren, können diese mit den üblichen Rechenoperatoren +, -, * und / verknüpft werden. Beispiel: ‘3W6+W10' liefert die Augensumme von drei sechsseitigen und einem zehnseitigen Würfel.

Möchte man mehrere Würfe realisieren, die nicht gemeinsam ausgewertet werden sollen, so gibt man die Vorschriften mit mehreren ‘roll' Kommandos voneinander getrennt ein: ‘roll 3W6 roll 2W10'. In dem Fall wird jede Vorschrift für sich alleine ausgewertet.

Oftmals wird jedoch nicht nur die Augensumme benötig, sondern es werden einzelne Resultate als Fehlschlag, Erfolg oder Trigger interpretiert. Der @RollButler kann auch diese zählen. Hierzu muss allerdings definiert werden, was ein Fehlschlag, Erfolg oder Trigger ist. Dies erfolgt durch Anhängen des Buchstabens ‘F' (Fehlschlag), ‘E' (Erfolg) oder ‘T' (Trigger) an die Würfelvorschrift, optional gefolgt von der Augenzahl ab, bzw. bis zu der der Wurf als Erfolg, Trigger, bzw. Fehlschlag zu werten ist. Wird kein Wert angegeben, wird jeweils der maximale Wert eines Würfels als Erfolg, bzw. Trigger und der kleinste mögliche Wert als Fehlschlag gewertet. ‘3W6E5F' lässt den @RollButler drei sechsseitige Würfel werfen und wertet Augenzahlen von fünf und mehr als Erfolg und einsen (kleinstmöglicher Wert) als Fehlschlag.

Um einige Würfel basierend auf ihrem Ergebnis erneut zu werfen, kann das Ausrufezeichen ‘!' verwendet werden. Bei ‘3W8!' werden alle geworfenen achten ein mal neu geworfen und das neue Ergebnis ebenfalls zur Augensumme hinzugefügt. Soll diese Option auch für die neu geworfenen Würfel gelten (explodierende Würfel), können zwei Ausrufezeichen ‘!!' verwendet werden. In diesem Fall werden die betroffenen Würfel so lange neu geworfen, bis die Augenzahl nicht mehr dem Auslösewert entspricht. Der (minimale) Auslösewert kann optional als Zahl hinter dem/den Ausrufezeichen angegeben werden. Wurde kein Wert angegeben, gilt der maximale Wert, der bei dem Würfel erzielt werden kann als Auslösewert für den Neuwurf, bzw. die Explosion. Beispiel: ‘4W6!!5' würfelt alle Würfel mit einer erzielten fünf oder sechs erneut. Sollte dabei eine weitere fünf oder sechs fallen, werden die entsprechenden Würfel erneut geworfen, bis keine fünf oder sechs mehr erscheint.

Modifikatoren

Hat man Gratiserfolge (oder Fehlschläge oder Trigger), können diese der Würfelvorschrift mitgegeben werden. ‘+2E' fügt zwei Erfolge dem Würfelergebnis hinzu. ‘-F' reduziert die Zahl der resultierenden Fehlschläge um eins. Vollständiges Beispiel: ‘3W6E5+E' lässt den @RollButler drei sechsseitige Würfel werfen und jede fünf oder sechs als Erfolg werten. Anschließend wird ein Erfolg hinzugefügt.

Variablen und Ergebnisauswahl

Um für weitere Berechnungen auch auf die Zahl der Trigger, Erfolge, Fehlschläge, etc. zugreifen zu können, kann die Würfelvorschrift mit speziellen Funktionen umgeben werden. Wichtig ist dabei allerdings, dass der Würfelvorschrift die zugehörigen Parameter (F, E und/oder T) mitgegeben wurden.

  • F(w), bzw. fehlschlaege(w) – liefert die Zahl der Fehlschläge des Würfelwurfs w
  • E(w), bzw. erfolge(w) – liefert die Zahl der Erfolge des Würfelwurfs w
  • T(w), bzw. trigger(w) – liefert die Zahl der Trigger des Würfelwurfs w
  • effektiv(w) – liefert die Zahl der effektiven Erfolge (Erfolge – Fehlschläge) des Würfelwurfs w
  • augensumme(w) – liefert die Zahl der Augen des Würfelwurfs w. Diese Funktion ist nicht erforderlich, da die Würfelvorschrift selber bereits die Augensumme liefert.
  • null(w) – liefert eine 0, unabhängig vom Ergebnis des Würfelwurfs

Möchte man also die Zahl der Erfolge eines 3W6 Würfelwurfs in der Berechnung verwenden, so verwendet man die Formel ‘E(3W6E5)'.

Um auf die Ergebnisse eines Würfelwurfs an einer anderen Stelle der Würfelvorschrift erneut zugreifen zu können, können diese in eine Variable zwischengespeichert werden. Variablen sind Textbezeichner, die mit einem ‘$' Zeichen beginnen, z.B. ‘$wurf'. Um der Variablen ‘$wurf' einen Wert zuzuweisen verwendet man beispielsweise das folgende Kommando: ‘$wurf=3W6FE5T'. Zur Vereinfachung werden allerdings automatisch auch alle Würfe in den Variablen $1, $2, $3, etc. in der Reihenfolge ihres Vorkommens gespeichert.

An einer anderen Stelle kann anschließend mit einer der oben beschriebenen Funktionen auf Ergebnisse des Wurfs zurückgegriffen werden. Beispiel: ‘$w=3W6T+T($w)' liefert als Ergebnis die Augensumme von drei sechsseitigen Würfeln plus die Anzahl der Trigger (hier: sechsen). Möchte man die Augensumme des Würfelwurfs unterdrücken, klammert man die Zuweisung in die Funktion null() ein, also ‘null($w=3W6E5T)+E($w)+T($w)', was gleichbedeutend mit ‘E($w=3W6E5T)+T($w)' die Summe der Erfolge und Trigger liefert.

Funktionen

Einige mathematische und logische Funktionen erlauben zusätzliche Komplikationen:

  • abs(a) – der Absolutbetrag (vorzeichenlose Wert) von a wird zurückgeliefert
  • abrunden(a) – der Wert a wird auf die nächste ganze Zahl abgerundet
  • aufrunden(a) – der Wert a wird auf die nächste ganze Zahl aufgerundet
  • runden(a) – der Wert a wird kaufmännisch gerundet
  • max(a; b;…) – der größte Wert aus a, b,… wird zurückgeliefert
  • xmax(v; a; b;…) – der v-größte Wert aus a, b,… wird ermittelt
  • min(a; b;…) – der kleinste Wert aus a, b,… wird zurückgeliefert
  • xmin(v; a; b;…) – der v-kleinste Wert aus a, b,… wird ermittelt
  • zufall(min; max) – eine Zufallszahl zwischen min und max wird ermittelt
  • über(a; b) – liefert die Differenz von a-b, wenn a größer ist als b, sonst 0
  • unter(a; b) – liefert die Differenz von b-a, wenn a gleiner ist als b, sonst 0
  • mod(a; b) – berechnet den Rest bei einer ganzzahligen Divison von a durch b
  • div(a; b) – ganzzahlige Division von a und b
  • wenn(a; b; c) – wenn a wahr oder ungleich 0 ist, dann b, ansonsten c
  • wurzel(a) – berechnet die Quadratwurzel von a (\sqrt{a})
  • mincollate(v; a; b;…) – ermittelt die maximale Anzahl an Gruppen, die man aus a, b,… bilden kann mit einer Augensumme von mindestens v
  • exactcollate(v; a; b;…) – ermittelt die maximale Anzahl an Gruppen, die man aus a, b,… bilden kann mit einer Augensumme von exakt v
  • maxcollate(v; a; b;…) – ermittelt die maximale Anzahl an Gruppen, die man aus a, b,… bilden kann mit einer Augensumme von höchstens v
  • exp(a) – berechnet ea
  • hoch(a; b) – berechnet ab

Mengen (Ziehen mit und ohne Zurücklegen)

Um irreguläre Würfel oder Lostrommeln abbilden zu können, können dem Würfel (und den Parametern) anstelle einer Zahl auch Mengen mitgegeben werden. Mengen werden in Klammern, mit Semikolon getrennt als einzelner Wert oder mit einem Faktor beschrieben. ‘(a;2xb;3xc)' beschreibt eine Menge, bei der a ein mal, b zwei mal und c drei mal vorhanden ist, also: {a, b, b, c, c, c}.

Für den Würfel kommen zwei verschiedene Möglichkeiten in Frage: Eine Klammerung in eckigen Klammern ‘[]' stellt eine Menge dar, die im Sinne von Ziehen mit Zurücklegen genutzt wird. Die Klammerung in geschweiften Klammern ‘{}' stellt eine Menge dar, bei der das gewählte Element aus der Menge entfernt wird, also Ziehen ohne Zurücklegen.

Für die Parameter F, E, T und ! werden die Werte in runden Klammern ‘()' angegeben, da hier eine Unterscheidung nicht relevant ist. Das erste Element der Menge bei der Würfelbeschreibung wird als kleinstes Element interpretiert, das letzte Element in der Beschreibung ist das “größte” Element.

Mathematische Funktionen können auf die Mengen nur dann angewandt werden, wenn es sich bei den Elementen der Menge um Zahlen handelt.

‘W[1;2;3;4;5;6]E(5;6)T(6)' ist nichts anderes wie ‘W6E5T'. Ein Fate Würfel könnte allerdings wie folgt definiert werden: ‘W[minus;o;plus]F(minus)E(plus)'.

Logische Verknüpfungen und Vergleichsoperatoren

Der @RollButler vermag auch Vergleiche auszuführen. Will man beispielsweise wissen, ob ein Würfelergebnis größer als ein vorgegebener Wert ist, so ist dies wie folgt ‘W100>48' möglich. Die angegebene Instruktion wirft einen hundertseitigen Würfel und prüft, ob das Resultat größer als 48 ist. Ebenso sind die Vergleichsoperatoren kleiner ‘<‘, kleiner oder gleich ‘<=', größer oder gleich ‘>=', gleich ‘==' sowie ungleich ‘!=' möglich.

Mehrere logische Ergebnisse können zudem mit und ‘&' und oder ‘|' verknüpft werden. Beispiel: ‘W6=6&W6>5' erfordert, dass das erste Ergebnis eines Würfelwurfs gleich sechs ist und das zweite Ergebnis mindestens fünf beträgt. Anstelle von ‘&' und ‘|' kann auch ‘und' oder ‘oder' verwendet werden.

Komplexe Beispiele

Hier werden drei sechsseitige Würfel geworfen, eins als Fehlschlag, fünf und sechs als Erfolg und sechs zusätzlich als Trigger gewertet. Ferner explodieren alle Würfel mit einer sechs, werden also jeweils so lange neu geworfen, bis keine sechs mehr fällt. Ein Erfolg ist gratis enthalten. Anschließend wird auf die Augensumme des ersten Wurfs noch das Ergebnis eines achtseitigen Würfels hinzugefügt.

Dies ist die Umsetzung einer Probe im Rollenspiel Infected! mit Attributs und Fertigkeitswerten von 5. Geworfen werden hier zwei zehnseitige Würfel zu deren Augensumme der Fertigkeitswert addiert wird, sofern der zugehörige Würfelwurf größer als eins ist. Relevant sind die aus den beiden Summen resultierenden Werte oberhalb von 10. Sollte der reine Würfelwurf eine eins sein, wird die zugehörige Summe nicht ausgewertet und das Gesamtergebnis um eins geschmälert. Eine geworfene 10 erhöht das Gesamtergebnis um 1. Als Gesamtergebnis wird mindestens 0 zurückgeliefert.

Vordefinierte Würfelregeln – derzeit deaktiviert

Zur Vereinfachung wurden einige Würfelregeln mit einer Kurzbezeichnung hinterlegt. Die Kurzbezeichnungen beginnen mit einem Unterstrich “_”. Die Vordefinierten Regeln können noch erweitert oder gelegentlich modifiziert werden.

Call of Cthulhu (CoC)

_COC(a), bzw. _COC(a; b) führt eine Probe mit einem W100 gegen den Wert a aus. Wird der optionale zweite Wert mit 1, 2, -1 oder -2 angegeben, werden Bonus-, bzw. Strafwürfel hinzugefügt. Das Ergebnis ist eine wahr/falsch Aussage

Das schwarze Auge (DSA)

_DSA(a;b;c) führt drei Proben mit W20 gegen die drei übergebenen Werte a, b und c durch. Das Gesamtergebnis ist eine wahr/falsch Aussage. Achtung! Ein Erfolg wird hier nur beschieden, wenn alle drei Proben einzeln erfolgreich waren.

Degenesis

_DEG, bzw. _DEG(a), bzw. _DEG(a;b) wirft sechsseitige Würfel der Vorschrift D6E4F1T6. Die Anzahl der Würfel kann wahlweise vor das Kommando oder in Klammern mit einem oder zwei Parametern an das Kommando angehängt werden.

Fate

_FATE wirft vier Fate, bzw. Fudge Würfel und weist die Erfolge und Fehlschläge aus

Poker

_POKER liefert Karten aus einem Satz Pokerkarten (S=Spades/Pik, H=Herz/Heart, D=Karo/Diamonds, C=Kreuz/Clubs)

Savage Worlds

_SAV(a,b) führt eine Probe mit einem Wa sowie einem W6 durch. Falls b als Zahlenwert angegeben wurde, wird b zum Ergebnis hinzugerechnet, bzw. bei negativen Werten als Malus subtrahiert. Der höhere Wert wird gegen die 4 geprüft. Das Ergebnis ist eine wahr/falsch Aussage. Ein Ass liegt dabei vor, wenn ein Wert für einen Trigger (1 oder 2) ausgegeben wird.

Shadowrun

_SR, bzw. _SR(a) wird durch D6E5F1T6 ersetzt. Die Anzahl der Würfel kann wahlweise vor das Kommando oder in Klammern an das Kommando angehängt werden.

Kommandos

Der @RollButler interpretiert eingegebene Befehle in der Regel als Würfelvorschriften. Optional kann (bzw. bei öffentlichen Tweets muss) diesen das Kommando “roll” vorweggestellt werden. Beispiel:

Daneben existieren weitere Kommandos:

chat – nicht auf Twitter und Telegram

Auf der Webseite des @RollButler kann man sich kostenfrei und ohne Verpflichtungen eigene Gruppen erschaffen. Innerhalb dieser Gruppen werden den Teilnehmern alle Würfelvorgänge innerhalb dieser Gruppe angezeigt. Möchte man darüber Hinaus eine reine Textnachricht senden, so ist dies mit dem Kommando ‘chat' möglich:

sendet die Nachricht “Hallo, Welt!” an alle Teilnehmer der Gruppe. Möchte man die Nachricht nur an einen speziellen Teilnehmer versenden, so ist dies unter Angabe seines Namens wie folgt möglich:

Hierbei erhält nur der Benutzer mit dem Namen User in dieser Gruppe die Nachricht.

set

Die Funktion zum setzen von Parametern wird aktuell überarbeitet. Interessant kann jedoch derzeit das Kommando

sein, mit der die Ausgabe der Würfelergebnisse in deutscher Sprache erfolgt. Dieses Kommando muss aktuell jedoch mit jedem Würfelwurf mitgegeben werden, also z.B.

help

Wie der Name vermuten lässt, bietet der @RollButler mit dem help Kommando eine kleine Hilfe für Funktionen. Beispiel:

liefert eine kurze Beschreibung hinsichtlich der Anwendung der Funktion max.

test

Mit dem Kommando test kann eine Würfelinstruktion abgesetzt werden, die auf dem Server 100.000 mal ausgeführt wird. Als Ergebnis wird dann die ermittelte Verteilung der Häufigkeiten angegeben, die einen Indiz hinsichtlich der Wahrscheinlichkeiten der einzelnen Ereignisse gibt.

test 3d6

gibt die eher unspektakuläre Häufigkeitsverteilung der Augensumme von drei sechsseitigen Würfel aus:

2017-03-01 21:36:12:
anonymous testete 3d6 und das Ergebnis ist 3: 0.4%, 4: 1.4%, 5: 2.8%, 6: 4.6%, 7: 7%, 8: 9.7%, 9: 11.6%, 10: 12.5%, 11: 12.5%, 12: 11.6%, 13: 9.6%, 14: 6.9%, 15: 4.6%, 16: 2.9%, 17: 1.4%, 18: 0.4%

Verifizierung: 163

Vergleiche, wie z.B. 3W6>12 werden ebenfalls ausgewertet. Da das Ergebnis nur zutreffend (wahr) oder falsch sein kann, sieht die Ausgabe entsprechend anders aus:

2017-03-01 21:38:34:
anonymous testete 3d6>12 und das Ergebnis ist Erfolge mit 25.6% und Fehlschläge mit 74.4%

Verifizierung: 166

create

Das create Kommando führt Sonderfunktionen im @RollButler aus. Hierzu zählen die Erzeugung zufälliger Daten (Datum) und Zeiten. Aber auch die autonome Erstellung von Charakteren für ausgewählte Rollenspielsysteme ist möglich. Dem create Kommando ist die gewünschte Funktion mit ggf. erforderlichen Parametern mitzugeben.

oder

Das erste Kommando erzeugt ein zufälliges Datum wie z.B. Samstag 7. April 1973. Das zweite Kommando generiert eine zufällige Uhrzeit, wobei die Stunde mit 11 Uhr vorgegeben ist. Ein Resultat könnte also 11:37:12 sein.

Parameter der create Funktionen müssen innerhalb der Klammern stehen und der Darstellung name=wert entsprechen. Wenn der Wert nach dem Gleichheitszeichen nicht in Anführungszeichen steht, versucht @RollButler diesen als Würfelvorschrift (vgl. Kommando roll) zu interpretieren. Mehrere Parameter sind mit Semikolon (;) zu separieren. Die Reihenfolge, in der die Parameter angegeben werden ist dabei unerheblich. Wird ein Parameter mehrfach gesetzt, wird das letzte Vorkommen verwendet.

Das folgende Beispiel erzeugt ein zufälliges Datum im Februar 1928:

Während der Parametername nur Buchstaben enthalten darf, ist der Wert nahezu beliebig. Es ist sogar möglich hier eine Würfelinstruktion zu verwenden. Beispiel:

Mit diesem Kommando wird eine Uhrzeit ermittelt, deren Stunde durch die Augensumme zweier sechsseitiger Würfel bestimmt wird.

Eine weitere Funktion des create Kommandos ist die Funktion name().

erzeugt dabei einen zufälligen Namen (ein bis drei Vornamen und ein Nachname) aus unterschiedlichen Sprachräumen.

erstellt einen deutschsprachigen Namen entsprechend der Häufigkeitsverteilung der Geburtsjahrgänge von 1920.

Derzeit sind folgende Namensräume hinterlegt: Deutschland (DE), Österreich (AT), USA (US), Italien (IT).

Unterschiedliche Geburtsjahrgänge sind allerdings nur für Deutschland und Österreich in der Datenbank berücksichtigt.

Möchte man eine ganze Person erschaffen, bietet sich der Befehl

an. Auch hier können Parameter übergeben werden, wie z.B. country für das Land, year, month, day für das Geburtsjahr, den -monat und -tag.

Diese Funktion ruft intern auch die Funktion

auf, mit der zufällig eine Stadt ausgewählt wird.

Derzeit beinhaltet die Datenbank Städte aus folgenden Ländern, die über den Parameter country auch angegeben werden können: Deutschland (DE), Italien (IT), Österreich (AT), Schweiz (CH), Großbritannien (UK) und die USA (US).

Multiple create Funktionen

Zur Vereinfachung können diverse create Funktionen auch mit einem Faktor versehen werden um diese mehrfach auszuführen. Wer also drei Namen benötigt, kann dies mit dem Befehlt

veranlassen. Diese Funktionalität ist für die Funktion person() derzeit nicht möglich.

Übersicht der create Funktionen
SystemKommandoModusweitere OptionenAnmerkung
Call of Cthulhu 7create cthulhu()nsc;version="coc7"age= Alter in Jahren; year=Jahr des Spielsrudimentäre Erzeugung eines NSCs für Call of Cthulhu
Cthulhu et. alcreate cthulhu()disorderzufällige Generierung einer Zwangsstörung
Cthulhu et. alcreate cthulhu()phobiazufällige Erzeugung einer Phobie (Angststörung)
Trail of Cthulhucreate cthulhu()nsc;version="toc"points_general= Punkte für die Allgemeinen Attribute; players= Anzahl der Spieler; points_investigative= explizite Angabe der Punkte für investigative Fertigkeiten; age= Alter des Charakters; year= Jahr des Spiels; occupation= Berufsbezeichnung des CharaktersErzeugung eines NSCs oder SCs für Trail of Cthulhu
Numenéracreate numenera()cypherzufällige Generierung eines Cyphers
create name()country= Ländercode (z.B. DE); gender= Geschlecht des Charakters; year= Jahr des Spielszufällige Erzeugung eines Namens
create date()year= Jahr; month= Monat; day= Tag als Vorgabezufällige Generierung eines Datums
create city()city= Stadt als Vorgabe; country= Ländercode (z.B. DE)zufällige Generierung eines Ortsnamens
create time()hour= Stunde; minute= Minute als Vorgabezufällige Uhrzeit
NSC erzeugen mit der create Funktion

Interessanter wird das create Kommando möglicherweise mit dem Modus nsc, der zur Erzeugung von Nichtspielercharakteren genutzt werden kann. Der Aufruf erfolgt wie folgt:

Zu Beachten ist hier, dass für verschiedenen Spielsysteme eigene Funktionen hinterlegt sind. Im obigen Beispiel wird die Funktion “cthulhu” aufgerufen, in der verschiedene Cthulhu Spielsysteme (Call of Cthulhu, Trail of Cthulhu) gebündelt sind. Der erste Parameter in der Funktion muss dann den gewünschten Modus angeben (hier: nsc für Nichtspieler Charakter). Weitere Parameter können dann noch mit Semikolon getrennt angegeben werden.

Als Resultat liefert der @RollButler zum Beispiel folgendes:

2017-03-24 02:31:28:
anonymous created cthulhu(nsc;version=”coc7″) which resulted in { “age”: 53, “apperance”: 40, “build”: -1, “constitution”: 40, “damage bonus”: -1, “dexterity”: 55, “education”: 84, “hit points”: 9, “intelligence”: 45, “luck”: 85, “move rate”: 6, “power”: 45, “sanity”: 45, “size”: 55, “strength”: 10, “year”: 2017 }.

Verification: 423

coc7 steht in diesem Fall für Call of Cthulhu in der 7. Edition. Als weitere Parameter können dann einzelne Werte des Charakters vorgegeben werden, z.B. “age=27”, wenn man das Alter des Charakters nicht gänzlich dem Zufall überlassen möchte.

Für Trail of Cthulhu (“toc”) ist die Ausgabe umfangreicher:

2017-03-24 02:07:15:
anonymous created cthulhu(nsc;version=”toc”;occupation=”criminal”) which resulted in { “accounting”: 1, “age”: 43, “astronomy”: 1, “athletics”: 2, “chemistry”: 1, “conceal”: 1, “cop talk”: 2, “cryptography”: 1, “cthulhu mythos”: 1, “disguise”: 5, “drive”: “In The Blood”, “driving”: 1, “electrical repair”: 4, “evidence”: 1, “explosives”: 4, “fattery”: 1, “filch”: 2, “firearms”: 2, “first aid”: 8, “fleeing”: 1, “geology”: 1, “health”: 2, “hit threshhold”: 3, “hypnosis”: 1, “intimidation”: 2, “languages names”: “”, “mechanical repair”: 3, “medicine”: 1, “occupation”: “criminal”, “oral history”: 1, “photography”: 2, “physics”: 1, “pillars of sanity”: “Family honour; Staunch moral principles”, “piloting”: 2, “preparedness”: 2, “psychoanalysis”: 2, “riding”: 2, “sanity”: 6, “scuffling”: 10, “sense trouble”: 4, “shadowing”: 4, “social stratum”: “Pauper \/ Charity Case”, “stability”: 4, “stealth”: 4, “streetwise”: 4, “weapons”: 6, “year”: 1937 }.

Verification: 422

Die Ausgabe erfolgt derzeit noch im JSON Format, das sowohl für Mensch, als auch Maschine passabel lesbar ist. Die Ausgabesprache ist derzeit Englisch. Beides kann und wird sich in kommenden Versionen des @RollButlers möglicherweise noch ändern.

Folgende Rollenspielsysteme sind aktuell hinterlegt:

SystemEditionCodeAnmerkungen/Remarks
Call of Cthulhu7coc7

Hinweise

In dieser Referenz wurden die deutschsprachigen Bezeichner verwendet. Es ist auch möglich die englischen Pendants zu nutzen:

  • Würfel: D entspricht W
  • Erfolg: S entspricht E
  • Funktionen:
    • floor() entspricht abrunden()
    • ceil() entspricht aufrunden()
    • round() entspricht runden()
    • rand() entspricht zufall()
  • Logik:
    • and entspricht und
    • or entspricht oder
  • create Funktionen:
    • date() entspricht datum()
    • time() entspricht zeit()
    • npc() entspricht nsc()

English Instruction for @RollButler

This documentation is currently under review due to the version 3 of @RollButler with major changes

@RollButler is a free service to roll virtually some dice via Twitter or its own webpage.

There are two ways to call @RollButler: You may send @RollButler a private/direct message with your roll instruction in it. Otherwise also a public Tweet with @RollButler, the command ‘roll' and your roll instruction in it will work, too. @RollButler will answer usually within the next ten seconds to your request.

Roll Instruction

Basically a roll instruction consists in the kind of the dice to be rolled which is represented by the character ‘D' (for dice) and a number. The numer represents the amount of sides of the die, e.g. ‘D6' stands for a six-sided dice. If you would like to roll several dices of the same kind, add the amount in front of the letter ‘D'. ‘3D6' results in a roll of three six-sided dices.

To roll several different dices use just the regular mathematical operators +, -, *, /, e.g. ‘3D6+D10'.

If you would like to roll some dice without calculating a sum etc., just enter them separated by a blank: ‘3W6 2W10'. In that case each instruction is evaluated separately.

Often you would like to have more than just the sum of your diceresults. Single results may be inte^rpreted as failure, success or trigger. @RollButler will count these results for you to, if you define them in the roll instruction. To do this add the character ‘F' (failure), ‘S' (success) and ‘T' (trigger) to the roll instruction optionally followed by the number from or up to which the result should be handled as failure, success or trigger. Without a number the lowest possible value of the dice is used for failures, the highest number for successes and triggers. ‘3D6E5F' will let @RollButler roll three six-sided dices and count everything from five and above as result and each one as failure.

To automatically reroll some dices with given values use the exclamation mark ‘!' option. With ‘3D8!' all dices with the result eight will be rolled once again and the new result added to the total value. If you would like to use this option infinite (also reroll dices with special values after they already have been reroledl), use a double exclamation mark ‘!!'. The minimal relevant value to start a reroll can be given next to the exlamation mark(s). Without a given number the highest possible value of the dice will be used. For example: ‘4D6!!5' will roll four six-sided dices. Every time a five or six is rolled the dice will be rolled again until it shows no more five or six.

Modifications

If you have free successes (or failures or triggers) you may add them to your instruction. ‘+2S' will add two successes to the total amount of successes from your roll. ‘-F' reduces your failures by one. Full example: ‘3D6S5+S' rolls three six-sided dice, counts every five and six as success and adds one success on top.

Function

Some mathematical functions allow more complex instructions:

  • abs(a) – returns the value of a without sign
  • floor(a) – returns the next integer below or equal a
  • ceil(a) – returns the next integer above or equal a
  • round(a) – rounds a to an integer
  • max(a; b;…) – selects the largest number of a, b,…
  • min(a; b;…) – selects the lowest number of a, b,…
  • rand(min; max) – returns a random integer between min and max
  • above(a; b) – returns the difference a-b if a is greater than b, otherwise returns 0
  • below(a; b) – returns the difference b-a i a is smaller than b, otherwise returns 0
  • mod(a; b) – returns the remain after integer division of a and b
  • div(a; b) – result of integer division of a and b
  • if(a; b; c) – if a is true or not zero, this returns b, c otherwise

Sets (Draw with and without cover)

To simulate irregulary dice or lottery wheels the dice description allows also sets instead of numbers. Sets are described within brackets and their values are separated by semicolon and optionally given with a factor. ‘(a;2xb;3xc)' describes a set with on ‘a', two ‘b' and three ‘c', so: {a, b, b, c, c, c}.

A dice description allows two possibilities for sets: Square brackets ‘[]' represent a set for drawing with cover. Curved clips ‘{}' define a set for drawing without cover, so their elements are removed after a draw.

The parameters F, S, T und ! require round brackets ‘()'. The first element of a set will be interpreted as smallest, the last element as largest element of that list.

Mathematicalfunctions can only be used, if the set contains numerical values.

‘D[1;2;3;4;5;6]S(5;6)T(6)' is the same as ‘D6S5T'. A Fate/Fudge die might be: ‘D[minus;o;plus]F(minus)S(plus)'.

Complex Example

Three six-sided dices will be rolled. Each one is a failure, five and sixes count as success. Additionally each six is a trigger and each six will be rerolled until that dice does not show a six anymore. One success is for free and finally a eight-sided dice will be thrown and its result added to the sum.

Logical and Comparing Operators

@RollButler can compare dice results. If you would like to know, if your dice result is above a given value, so this might be possible ‘D100>48'. This instruction rolls a die with hundered sides and compares the result with 48. The following operators are also possible: less than ‘<‘, less or equal ‘<=', larger or equal ‘>=', equal ‘==' and not equal ‘!='.

Logical results can also be combined by and ‘&' and od ‘|'. Example: ‘D6=6&D6>5' requires the first result of a dice has to be six and the second result has to be at least five. Instead of ‘&' and ‘|' also ‘and' or ‘or' can be used.

Commands

@RollButler understands instructions usually as  roll instruction. You can optional (on public Tweets mandantory) use the command “roll” in the beginning of your instruction. Example:

Beside this there are more commands:

help

This will let @RollButler send you a short help regarding the requestet function. For example:

will briefly describe the usage of the max() function.

create

The create command executes special functions within @RollButler. This might be the generation of a random date or time. But also an autonomous creation of characters for some roleplaysing systems is possible. Add the desired function to the create command with neccessary parameters:

or

The first command creates a random date, like Saturday 7. April 1973. The second command generates a random time, where the hour is given with 12. A possible result might be 12:37:12.

Parameters of a create funktionen have to be encapsulated within the brackets in double quotes and have to look like name=value. Parameters are each separated by semicolon (;). The order of the parameters is not relevant. In case of a duplicate definition of a parameter only the last one will be used.

The following example creates a random date for February 1928:

While the name of a parameter may only accept letters, the value is nearly open for everything. It's even possible to add a roll instruction if the command roll is used. For example:

This command generates a random time with an hour, which is build by the sum of two D6.

As a special feature the create command can be used with the function npc() to randomly generate non-player characters. Call the function like:

The result by @RollButler might look like:

The parameter “system” is mandantory to decide, for which roleplay system the character should be generated. In this case “coc7” stands for the 7th edition of Call of Cthulhu. Additional parameters can contain predefined statistics for the character, e.g. “age=27”, if you would like to set the age for your character.

The result is currently given in the JSON format, which is readable as well for human beings as also for machines. This might be changed within one of the next versions of @RollButler.

For the time being the following role playing systems are supportet:

SystemEditionCodeAnmerkungen/Remarks
Call of Cthulhu7coc7

Language notes

In this reference are english commands used. @RollButler understands als the germand pendants:

  • Dice: D equals W
  • Success: S equals E
  • Functions:
    • floor() equals abrunden()
    • ceil() equals aufrunden()
    • round() equals runden()
    • rand() equals zufall()
  • Logic:
    • and equals und
    • or equals oder
  • create Functions:
    • date() equals datum()
    • time() equals zeit()
    • npc() equals nsc()

 

Changelog for @RollButler

Schreibe einen Kommentar

%d Bloggern gefällt das: