This is an old revision of the document!


Roll20 General/Macro/Ability Tricks for Pathfinder

Offizielle Doku hier (Macros) und hier (Würfel). Vorweg: Die Roll20 Syntax kann nur rechnen, würfeln und Fragen stellen. Bedingungen und Schleifen sind nicht möglich.

Generell wird nur in doppelten eckigen Klammern [[ ]] gerechnet und gewürfelt. Diese können auch verschachtelt werden. Normale Mathe die geht:

  1. + Addition, - Subtraktion, * Multiplikation, / Division, % Modulo/Rest, ** Exponenzieren
  2. floor() Abrunden, ceil() Aufrunden, round() Runden, abs() Absolutwert

Es gibt kein max() oder min(), dies muss über “Grouped Rolls” behandelt werden. Aus max(a, b) wird {a, b}kh1 (keep higher one), aus min(a, b) wird '{a, b}kl1 (keep lower one).

Attribute können mit @{attribute} abgerufen werden.

Bedinungen können emuliert werden, indem 1 als wahr und 0 als falsch angesehen wird und man mit den entsprechenden Werten multipliziert:

  • Ein if @{attr} then VAL wäre dann [[ VAL * @{attr} ]]
  • Ein if @{attr} then T else F lässt sich dann so bauen: [[ [[{{@{attr},0}>1}*(T - F) + F]] ]]. T und F können selber weitere Ausdrücke sein.
  • Negation ist durch 1 - @{attr} machbar.
  • Logisches UND durch Multiplikation aller Attribute: @{attr1} * @{attr2}
  • Logisches ODER durch Addition und

Beispiel: Schadenswürfel ändern sich mit Buffs (z.B. durch Starker Kiefer und/oder Tierwachstum). Im Folgenden wird angenommen:

  1. Grundschadenswürfel 1w6
  2. mit Starker Kiefer: 2w6
  3. mit Tierwachstum: 1w8
  4. mit beiden: 3w6
  5. @{knowledge_history_bonus} ist 1 wenn Starker Kiefer aktiv ist, sonst 0 (siehe dazu auch Buffs)
  6. @{knowledge_local_bonus} ist 1 wenn Tierwachstum aktiv ist, sonst 0
[[ {{ @{knowledge_history_bonus},0 }>1 }*([[ 2 + @{knowledge_local_bonus} ]] - 1) + 1]]d[[ {{ 1-@{knowledge_history_bonus},0 }>1 }*([[6 + @{knowledge_local_bonus}*2 ]] - 6) + 6 ]]

Dies lässt sich z.B. in einem Attribut speichern und dann immer wieder abrufen und den aktuellen Würfel zu erhalten.

Fragen können mit ?{} gestellt werden. Hier gibt es mehrere Syntaxformen:

  1. ?{question} Beim ersten Auftreten wird ein leeres Freitextfeld erzeugt dessen Inhalt dann die Frage ersetzt. Diese Syntax wird auch benutzt um auf die Antwort später noch einmal zuzugreifen.
  2. ?{question|default} Erzeugt ein Freitextfeld welches mit default gefüllt ist.
  3. ?{question|label 1,value 1|label 2, value 2} Erzeugt ein Dropdownmenü dessen Optionen aus der angegebenen Liste erzeugt werden.

Beispiele:

  • Einen W20 würfeln: [[ 1d20 ]]
  • Einen W8 + meine Charakterstufe: [[ 1d8 + @{class1_level} ]]
  • Einen W8 + meine Charakterstufe aber maximal 5: [[ 1d8 + {@{class1_level}, 5}kl1 ]]
  • Einen Nachkampfangriffs und Schadenswurf:
    Angriffswurf: [[ 1d20 + @{class1_bab} + @{strength_mod} ]]
    Schaden: [[ 1d8 + @{strength_mod} ]]
  • Einen Nachkampfangriffs und Schadenswurf mit Abfrage für Heftiger Angriff:
    Angriffswurf: [[ 1d20 + @{class1_bab} + @{strength_mod} - (floor(@{class1_bab}/4) + 1) * ?{Heftig|ja, 1|nein, 0} ]]
    Schaden: [[ 1d8 + @{strength_mod} + ((floor(@{class1_bab}/4) + 1) * 2) * ?{Heftig} ]]

Dinge die man wissen sollte:

  1. 2 * (1d6) würfelt nicht 2d6 sondern einen 1d6 und verdoppelt das Ergebnis.
  2. Division ist keine Integerdivision, es können rationale Zahlen entstehen (3/2 = 1.5 und nicht 1)!
  3. Man kann Zahlen Namen geben. Dies ist nützlich da man sonst nicht weiß wie sich die “+ 5 + 1 + 0 - 3” sonst zusammensetzt. Namen werden durch einfache eckige Klammern hinter der Zahl angegeben, z.B.: [[ 1d20 + @{strengh_mod}[STR] + 1[MAGISCHEWAFFE] ]]

Entfernungen:

  1. Nah ([[ 7.5 + 1.5 * floor(@{class1_level}/2) ]] m / [[ floor([[ 7.5 + 1.5 * floor(@{class1_level}/2) ]]/1.5) ]] Felder)
  2. Mittel ([[ 30 + 3 * @{class1_level} ]] m)
  3. Lang ([[ 120 + 12 * @{class1_level} ]] m)

Buffs sind in Wirklichkeit kein Freitextfeld sondern parsen das was man dort einträgt (siehe hier unter “Buffs”)

Beispiel, der Buff Bärenstärke:

+4 enhancement to Strength

Stacking wird automatisch behandelt. Dies ist allerdings nicht immer gwünscht, z.B. gibt Tierwachstum einen Bonus auf die natürliche RK der explizit mit dem aktuellem stackt. Dieser Bonus darf also nicht als +2 natural to AC angegeben werden, sonder muss ungetypt angegeben werden: +2 to AC. Beispiel für Tierwachstum:

+8 size to Strength
+4 size to Constitution
+(2*@{class1_level}) to hit points
-2 size to Dexterity
# +2 natürlich stacked mit bisherigem
+2 to AC
# local = 1 -> wir haben TW
+1 to knowledge_local_bonus

Buffs können leider gewisse Attribute nicht verändern, z.B. nicht die Größe (und damit auch nicht den Größenmalus/bonus) oder einzelne Angriffe. Entweder Boni auf alle Angriffe einer Kategorie (Meele/Ranged) oder gar nicht. Dies lässt sich (für Tiergefährten z.B.) umgehen, indem man Boni auf Skills gibt, die man nicht benutzt und diese Boni dann zu einzelnen Angriffen dazurechnet.

Beispiel Mächtige Magische Fänge die nur auf Klauen gelten:

+[[floor(@{class1_level}/4)]] to knowledge_arcana_bonus

Hier wird ein Bonus auf Wissen (Arkanes) gegeben. Dieser Bonus kann dann mit @{knowledge_arcana_bonus} bei dem Klauenangriff dazugerechnet werden. Tiergefährten haben normalerweise überhaupt keine Wissensfertigkeiten wodurch man hier elf mögliche Variablen erhält.

Im Charakterbogen auf Attributes & Abilites klicken. Links ist eine Liste aller mit @{} abfragbaren Attribute. Rechts können Abilities erstellen werden, quasi Macros speziell für diesen Charakter.

Beispiel für eine Ability die den umgekehrten Reflexwurf für den Zauber “Blitzkugeln” durchführt:

=== Blitzkugel:
Reflexwurf: [[ 1d20 + 4[GRAD] + @{wisdom_mod}[WIS] ]] (gegen Metallrüstung +4) / keine Wirkung
Schaden: [[ 3d6 ]]

Templates

Abilities werden bei der Auswertung in den Chat gepostet. Das sieht potenziell hässlich aus. Man kann diese “stylen” wenn man ein Template anwendet. Offizielle Template Doku für Pathfinder ist hier, aber die ist ziemlich uff.

Dinge die man wissen sollte:

  1. Möchte man exakt einen Angriff visualisieren, dann würfelt man mit roll den Angriff, macht den Schaden aber mit dmg1flag, dmg1, etc. Erst wenn man mehr als einen Angriff hat, darf man rolldmg1, etc. für den Schaden benutzen. Siehe hier.
  2. Die gesamte Ability muss in eine Zeile wenn ein Template benutzt wird.

Beispiel für den Vollen Angriff einer Katze (Biss und 2 Klauen) mit potentiellen Mächtigen Magischen Fängen auf den Klauen und Abfrage für Heftiger Angriff, einem Wurf auf zu Fall bringen und dem Schadenswurfs des Talents Reißkrallen:

&{template:pc} {{showchar=[[1]]}} {{charname=Luna}} {{name=Voller Angriff}} {{type=attack damage}} {{attack=1}} {{roll=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] - @{_pa_attack_q}[HA]]]}} {{critconfirm=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] - @{_pa_attack}[HA]]]}} {{rolldmg1=[[ @{_bite_dmg_roll} + @{strength_mod}[STR] + @{_pa_dmg}[HA]]]}} {{rolldmg1type=Biss, Stich}} {{rolldmg1crit=[[ @{_bite_dmg_roll} + @{_bite_dmg_roll} + 2*(@{strength_mod}[STR] + @{_pa_dmg}[HA])]]}} {{rolldmg2=[[ 1d20 + @{cmb_mod}[CMB] ]]}} {{rolldmg2type=Zu Fall bringen}} {{roll1=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] - @{_pa_attack}[HA]]]}} {{critconfirm1=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] - @{_pa_attack}[HA]]]}} {{roll1dmg1=[[ @{_claw_dmg_roll} + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] + @{_pa_dmg}[HA]]]}} {{roll1dmg1type=Klaue, Hieb}} {{roll1dmg1crit=[[@{_claw_dmg_roll} + @{_claw_dmg_roll} + 2*(@{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] + @{_pa_dmg}[HA])]]}} {{roll2=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] - @{_pa_attack}[HA] ]]}} {{critconfirm2=[[ 1d20 + @{class1_bab}[BAB] + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] - @{_pa_attack}[HA] ]]}} {{roll2dmg1=[[@{_claw_dmg_roll} + @{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] + @{_pa_dmg}[HA] ]]}} {{roll2dmg1type=Klaue, Hieb}} {{roll2dmg1crit=[[@{_claw_dmg_roll} + @{_claw_dmg_roll} + 2*(@{strength_mod}[STR] + @{knowledge_arcana_bonus}[MAGFANGS] + @{_pa_dmg}[HA])]]}} {{roll2dmg2=[[1d6]]}} {{roll2dmg2type=Reißkrallen}}

Zur besseren Übersicht wurden hier die Schadenswürfel der Angriffe in eigene Attribute ausgelagert (@{_bite_dmg_roll} und @{_claw_dmg_roll}) genauso wie der Heftige Angriff (@{_pa_attack_q} @{_pa_attack} und @{_pa_dmg})

  • tutorial/roll20/tricks.1586007057.txt.gz
  • Last modified: 2020-04-04 15:30
  • by weichbr