Mod-Skripte: Objekte

Es gibt verschiedene Arten von Objekten, die in Mod-Skripten verwendet werden. Hier ist eine kurze Übersicht über die einzelnen Elemente, was sie sind und welche Eigenschaften sie enthalten (zusammen mit den Standardwerten). Als Faustregel gilt: Eigenschaften, die mit einem Unterstrich (_) beginnen, sind schreibgeschützt und können nicht geändert werden. Du musst auf Eigenschaften von Objekten mit obj.get("property") zugreifen und neue Werte mit obj.set("property", newvalue) oder obj.set({property: newvalue, property2: newvalue2}) festlegen.

Hinweis: Die Eigenschaft id eines Objekts ist eine global eindeutige ID: Keine zwei Objekte sollten dieselbe ID haben, auch nicht bei Objekten unterschiedlicher Typen. Da die ID eines Objekts häufig abgerufen wird und sich nie ändert, gibt es außerdem eine Abkürzung: Du kannst sie mit obj.id anstelle von obj.get("_id") abrufen, wenn du möchtest (beides funktioniert).

Nur Mod-Skript-Sandkasten v1.5. Objekte unterstützen außerdem obj.type, was gleichbedeutend ist mit obj.get("type") oder obj.get("_type").

if ('graphic' === obj.type) {
  // irgendwas machen
}

Pathv2 (auf der neuesten VTT-Engine verfügbar)

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "pathv2" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_pageid ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt.
Form "" pol, free, eli oder rec Legt fest, ob der Pfad als Polylinie, Freihand, Ellipse oder Rechteck angezeigt wird.
Punkte Ein JSON-String mit einem Array von x,y-Punkten, die zum Erstellen des Pfades verwendet werden.
füllen "transparent" Füllfarbe. Verwende die Zeichenfolge transparent oder eine Hex-Farbe als Zeichenfolge, zum Beispiel #000000
Strich "#000000" Strichfarbe.
Rotation 0 Drehung (in Grad).
Ebene "" Aktuelle Ebene, entweder gmlayer, objects, map, walls oder foreground. Pfade auf der Ebene walls blockieren Licht.
Strichbreite 5
y 0 Y-Koordinate für den Mittelpunkt des Pfades
x 0 X-Koordinate für den Mittelpunkt des Pfades
kontrolliert von "" Komma-getrennte Liste der Spieler-IDs, die den Pfad kontrollieren können. Kontrollierende Spieler/innen können den Pfad löschen. Wenn der Pfad von einem Spieler/einer Spielerin erstellt wurde, wird dieser/diese automatisch in die Liste aufgenommen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
barrierType "Wand" Zu den Optionen für Dynamische-Beleuchtung-Barrieren gehören wall, oneWay und transparent
oneWayReversed "false" Boolescher Wert
fadeOnOverlap WAHR Wenn auf true gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend.
fadeOpacity 0.3 Dieser Wert bestimmt die Deckkraft des Objekts, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf true gesetzt ist
renderAsScenery "false" Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt.
interactionManualReset "false" Wenn du dies auf „true“ setzt, werden die Interaktionen des Objekts zurückgesetzt.
interactionTriggered "false" Wird auf „true“ gesetzt, wenn eine Interaktion ausgelöst wird.

Die Eigenschaft Form hat die folgenden Werte:

  • pol – Polylinie. Zwischen jedem aufeinanderfolgenden Punkt wird eine gerade Linie gezogen. Wenn der Anfangs- und der Endpunkt gleich sind, entsteht eine geschlossene Form.
  • free – Freihand. Es wird eine Kurve gezeichnet, wobei die Punkte als Hilfslinien dienen. Wenn der Anfangs- und der Endpunkt gleich sind, entsteht eine geschlossene Form.
  • eli – Ellipse. Eine Ellipse wird mit Hilfe der Punkte gezeichnet, um einen Begrenzungsrahmen festzulegen. Nur die ersten beiden Punkte werden verwendet.
  • rec – Rechteck. Ein Rechteck wird mit Hilfe der Punkte gezeichnet, um einen Begrenzungsrahmen festzulegen. Nur die ersten beiden Punkte werden verwendet.

Die Eigenschaft points ist ein JSON-String, der ein Array von Punkten enthält. Die Punkte werden als ein Array mit zwei Positionen dargestellt, das eine x- und eine y-Position enthält. Ein Dreieck von (0,0) über (0,70) nach (70,0) und zurück nach (0,0) würde als [[0,0],[0,70],[70,0],[0,0]] dargestellt werden. Die Eigenschaften x und y legen die Position des PathV2-Objekts auf der Seite fest. Sie geben an, wo die Mitte der Zeichnung sein soll. Für einige Formen (Ellipsen und Rechtecke) ist das ziemlich einfach herauszufinden. Bei komplexeren Formen (Polylinien und Freihandzeichnungen) musst du die Minimal- und Maximalwerte aus der Eigenschaft points ermitteln und den Punkt verwenden, der genau in der Mitte zwischen ihnen liegt.

Nur für Mod-Skript-Sandkasten v1.5. Instanzmethoden: toFront(), toBack(), toAbove(target), toBelow(target). target kann ein Grafik-, Text-, Pfad- oder pathv2-Objekt sein oder die ID eines solchen Objekts.

Pfad (Klassischer Spieltisch)

Eigenschaft Standardwert Anmerkungen
_id Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "pfad" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_pageid ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt.
_path JSON-Array mit Zeichenbefehlen. Jeder Befehl hat das Format ["M", x, y] oder ["L", x, y] (Bewegung oder Linie) oder ["C", ...] für eine Kurve. x und y sind Versätze vom oberen linken Eckpunkt des Pfades. Gib path beim Erstellen an. Danach ist es schreibgeschützt.
füllen "transparent" Füllfarbe. Verwende die Zeichenfolge transparent oder eine Hex-Farbe als Zeichenfolge, zum Beispiel #000000
Strich "#000000" Strichfarbe.
Drehung 0 Drehung (in Grad).
Ebene "" Aktuelle Ebene, entweder gmlayer, objects, map, walls oder foreground. Pfade auf der Ebene walls blockieren Licht.
Strichbreite 5
Breite 0
Höhe 0
Oben 0 Y-Koordinate für den Mittelpunkt des Pfades
Links 0 X-Koordinate für den Mittelpunkt des Pfades
ScaleX 1
SkalaY 1
kontrolliert von "" Komma-getrennte Liste der Spieler-IDs, die den Pfad kontrollieren können. Kontrollierende Spieler/innen können den Pfad löschen. Wenn der Pfad von einem Spieler/einer Spielerin erstellt wurde, wird dieser/diese automatisch in die Liste aufgenommen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
barrierType "Wand" Zu den Optionen für Dynamische-Beleuchtung-Barrieren gehören wall, oneWay und transparent
oneWayReversed false Boolescher Wert
fadeOnOverlap WAHR Wenn auf true gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend.
fadeOpacity 0.3 Dieser Wert bestimmt die Deckkraft des Objekts, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf true gesetzt ist
renderAsScenery false Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt.
interactionManualReset false Wenn du dies auf „true“ setzt, werden die Interaktionen des Objekts zurückgesetzt.
interactionTriggered false Wird auf „true“ gesetzt, wenn eine Interaktion ausgelöst wird.

Übergib path (gespeichert als _path) beim Erstellen eines klassischen Pfads. Das Format wird in der Zeile _path oben beschrieben.

Nur für Mod-Skript-Sandkasten v1.5. Instanzmethoden: toFront(), toBack(), toAbove(target), toBelow(target). target kann ein Grafik-, Text-, Pfad- oder pathv2-Objekt sein oder die ID eines solchen Objekts.

Fenster

Hinweis: Fenster und Tür verwenden im Vergleich zu anderen Objekttypen eine invertierte Achse. Zum Beispiel: Eine Variable für oben, die bei einem anderen Objekt den Wert 100 hätte, ist bei einem Fenster oder einer Tür y -100.

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "fenster" Schreibgeschützt.
_pageid Seite, zu der dieses Fenster gehört. Gib beim Erstellen pageid an. Danach ist es schreibgeschützt.
Farbe "#ff0000" Eine hexadezimale Farbangabe für das Fenster.
X 0 Koordinatenmittelpunkt des Fensters auf der x-Achse.
y 0 Koordinatenmittelpunkt des Fensters auf der y-Achse.
ist offen FALSCH Bestimmt, ob sich ein Spieler durch dieses Fenster bewegen kann.
ist gesperrt "false" Verhindert, dass Spieler mit dem Fenster interagieren können.
Pfad Zwei Handles, handle0 und handle1, jeweils mit x und y. Diese Koordinaten sind Versätze gegenüber x/y dieses Objekts, und zwar auf derselben umgekehrten y-Achse.

Beispiel

on('chat:message', function(msg) {
  if (msg.type === 'api' && msg.content === '!cw') {
    const currentPageID = Campaign().get('playerpageid');
    const win = createObj('window', {
      x: 70,
      y: -70,
      pageid: currentPageID,
      path: {
        handle0: {
          x: -70,
          y: 0,
        },
        handle1: {
          x: 35,
          y: 0,
        },
      },
      color: '#000000'
    });
  }
  if (msg.type === 'api' && msg.content === '!mw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.set({
      x: 240,
      y: -139
    });
  }
  if (msg.type === 'api' && msg.content === '!dw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.remove();
  }
});

Tür

Hinweis: Fenster und Tür verwenden im Vergleich zu anderen Objekttypen eine invertierte Achse. Zum Beispiel: Eine Variable für oben, die bei einem anderen Objekt den Wert 100 hätte, ist bei einem Fenster oder einer Tür y -100.

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "door" Schreibgeschützt.
_pageid Seite, zu der diese Tür gehört. Gib beim Erstellen pageid an. Danach ist es schreibgeschützt.
Farbe "" Eine Hexadezimal-Farbangabe für die Tür.
x 0 Koordinatenmittelpunkt der Tür auf der x-Achse.
y 0 Koordinatenmittelpunkt der Tür auf der Y-Achse.
isOpen "false" Bestimmt, ob sich ein Spieler durch diese Tür bewegen kann.
isLocked FALSCH Verhindert, dass Spieler mit der Tür interagieren können.
isSecret FALSCH Entfernt ein Türsymbol aus der Spieleransicht und fungiert als Barriere.
Pfad Zwei Handles, handle0 und handle1, jeweils mit x und y. Diese Koordinaten sind Versätze gegenüber x/y dieses Objekts, und zwar auf derselben umgekehrten y-Achse.

Text

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "Text" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_pageid ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt.
oben 0
Links 0
Breite 0
Höhe 0
Text ""
Schriftgröße 16 Um optimale Ergebnisse zu erzielen, halte dich an die voreingestellten Größen im Bearbeitungsmenü: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300.
Drehung 0
Farbe "rgb(0, 0, 0)"
Strich "transparent"
Schriftfamilie "Arial" Wenn dies nicht festgelegt ist, wird font_size auf 8 verkleinert, sobald du später den Wert der Eigenschaft text änderst. Mögliche Werte (Groß-/Kleinschreibung spielt keine Rolle): Arial, Patrick Hand, Contrail One, Shadows Into Light und Candal. Wenn du einen ungültigen Namen angibst, wird eine unbenannte Serifenschrift mit fester Zeichenbreite verwendet.
Ebene "" Aktuelle Ebene, entweder gmlayer, objects, map, walls oder foreground.
kontrolliert von "" Durch Kommas getrennte Liste der Spieler-IDs, die den Text steuern können. Kontrollierende Spieler dürfen den Text löschen. Wenn der Text von einem Spieler erstellt wurde, wird dieser Spieler automatisch in die Liste aufgenommen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
fadeOnOverlap WAHR Wenn auf true gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend.
fadeOpacity 0.3 Dieser Wert bestimmt die Deckkraft des Objekts, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf true gesetzt ist
renderAsScenery FALSCH Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt.
interactionManualReset FALSCH Wenn du dies auf „true“ setzt, werden die Interaktionen des Objekts zurückgesetzt.
interactionTriggered FALSCH Wird auf „true“ gesetzt, wenn eine Interaktion ausgelöst wird.

Nur für Mod-Skript-Sandkasten v1.5. Instanzmethoden: toFront(), toBack(), toAbove(target), toBelow(target). target kann ein Grafik-, Text-, Pfad- oder pathv2-Objekt sein oder die ID eines solchen Objekts.

Markierungen

Das pin-Objekt steht für Kartenmarkierungen, also interaktive Markierungen, die direkt auf der Karte angezeigt werden. Markierungen können Bilder anzeigen, Kurzinfos zeigen, SL-Notizen enthalten und mit Notizen in deinem Journal verknüpft werden. Sie können sichtbar oder versteckt sein, was dramatische Enthüllungen ermöglicht, Licht auf einen entdeckten Ort wirft oder als Informationsmarkierungen für ein interaktiveres Spiel genutzt werden kann. Weitere Infos zu Markierungen findest du im Hilfezentrum.

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID, wie sie auch andere Roll20-Objekte haben. Schreibgeschützt.
_Typ "pin" Der Typ für die Markierung. Schreibgeschützt.
_pageid "" Die ID der Seite, zu der diese Markierung gehört. Schreibgeschützt.
x 0 Die X-Koordinate der Markierung auf der Seite.
y 0 Die Y-Koordinate der Markierung auf der Seite.
bgColor "#242424" Hintergrundfarbe der Markierung (Hex-Wert oder transparent). Unterstützt HTML-Farbstrings entweder im Format #RRGGBB oder #RRGGBBAA (Transluzenz).
Form "teardrop" Form der Markierung. Gültige Werte sind teardrop, circle, diamond, square
icon "base-dot" Integriertes Symbol, wenn customizationType icon ist
pinImage "" Bild-URL, die angezeigt wird, wenn customizationType image ist
customizationType "icon" Legt fest, ob die Markierung das Symbol oder pinImage anzeigt. Setz pinImage auf eine gültige Bild-URL, wenn du customizationType: image verwendest. Wenn du bei customizationType zwischen icon und image umschaltest, wird pinImage nicht gelöscht; die URL bleibt erhalten
useTextIcon "false" Wenn useTextIcon auf true gesetzt ist, zeigt die Markierung statt einem Symbol oder Bild eine Textbeschriftung an. Diese Beschriftung stammt aus iconText; es werden nur die ersten 3 Zeichen angezeigt
iconText "" Textbeschriftung (die ersten 3 Zeichen werden verwendet), wenn useTextIcon true ist
tooltipImageSize "mittel" Größe des Bildes in der Kurzinfo der Markierung. Gültige Werte sind small, medium, large, xl
link "" ID der Notiz, mit der diese Markierung verknüpft ist. linkType akzeptiert nur handout oder "".
linkType "" Die Art des verknüpften Objekts. Gültige Werte: handout, "" (leere Zeichenfolge).
subLink "" Überschrift, zu der du in der verknüpften Notiz scrollst. Wird zusammen mit subLinkType (headerPlayer oder headerGM) verwendet.
subLinkType "" Die Art des Unterlinks. Gültige Werte: headerPlayer, headerGM, "" (leere Zeichenkette).
betreff "" Der Titeltext, der auf der Markierung angezeigt wird.
anmerkungen "" Eine ganz normale Zeichenkette. Keines der Blob-Felder für Charaktere oder Notizen.
gmNotes "" Einfache Zeichenfolge, nur für SL. Keines der Blob-Felder für Charaktere oder Notizen.
tooltipImage "" Roll20-Bildkennung für das Kurzinfo-Bild, das auf der Markierung angezeigt wird.
visibleTo "" all zeigt die Markierung allen an. "" verbirgt sie vor Spielern.
autoNotesType "" Format für automatisch erstellte Notizen. Gültige Werte: "" (leere Zeichenfolge), blockquote.
tooltipVisibleTo "all" Legt fest, wer die Kurzinfo sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
tooltipTitleVisibleTo "all" Legt fest, wer den Titel der Kurzinfo sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
nameplateVisibleTo "all" Legt fest, wer das Namensschild sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
imageVisibleTo "all" Legt fest, wer das Bild sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
notesVisibleTo "all" Legt fest, wer die Notizen sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
gmNotesVisibleTo "all" Legt fest, wer SL-Notizen sehen kann. Gültige Werte: all, "" (leere Zeichenfolge).
maßstab 1.0 Skalierungsfaktor für die Markierung. Muss zwischen 0,25 und 2,0 liegen.
imageDesynced FALSCH Ob das Bild der Markierung nicht mehr mit dem verknüpften Objekt synchron ist. Wenn du eine nicht synchronisierte Eigenschaft einstellst, werden alle drei auf denselben Wert gesetzt.
notesDesynced "false" Ob die Notizen der Markierung nicht mehr mit dem verknüpften Objekt synchronisiert sind. Wenn du eine nicht synchronisierte Eigenschaft einstellst, werden alle drei auf denselben Wert gesetzt.
gmNotesDesynced "false" Ob die SL Notizen der Markierung nicht mehr mit dem verknüpften Objekt synchronisiert sind. Wenn du eine nicht synchronisierte Eigenschaft einstellst, werden alle drei auf denselben Wert gesetzt.

Hinweis 1: Wenn du benutzerdefinierte Inhalte in Markierungen verwenden möchtest (um Bild, Notizen und SL Notizen der Notiz zu überschreiben), musst du mindestens eine der nicht synchronisierten Eigenschaften auf true setzen (dadurch werden alle gesetzt).

Hinweis 2: Gültige Icon-Werte: base-dot, base-castle, base-skullSimple, base-spartanHelm, base-radioactive, base-heart, base-star, base-starSign, base-pin, base-speechBubble, base-file, base-plus, base-circleCross, base-dartBoard, base-badge, base-flagPin, base-crosshair, base-scrollOpen, base-diamond, base-photo, base-fourStarShort, base-circleStar, base-lock, base-crown, base-leaf, base-signpost, base-beer, base-compass, base-video, base-key, base-chest, base-village, base-swordUp, base-house, base-house2, base-church, base-government, base-blacksmith, base-stable, base-gear, base-bridge, base-mountain, base-exclamation, base-question.

Grafik (Spielmarker/Karte/Karte etc.)

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "Grafik" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_subtyp "Token" Kann token (Spielmarker und Karten), card oder dicetoken sein. Schreibgeschützt.
_kartenid Wenn die Grafik eine Karte ist, auf eine ID setzen. Schreibgeschützt.
_pageid ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt.
imgsrc Die URL des Bildes der Grafik. Lies dir den Hinweis zu den Einschränkungen bei imgsrc und avatar weiter unten durch.
bar1_link Auf eine ID setzen, wenn Bar 1 mit einem Charakter verknüpft ist.
bar2_link
bar3_link
bar4_link
repräsentiert ID des Charakters, den dieser Spielmarker represents.
Links 0 Anzahl der Pixel vom linken Rand der Karte bis zur Mitte der Grafik.
Oben 0 Anzahl der Pixel vom oberen Rand der Karte bis zur Mitte der Grafik.
Breite 0 Breite der Grafik in Pixel.
Höhe 0 Höhe der Grafik in Pixel.
Rotation 0 Die Ausrichtung des Spielmarkers in Grad.
Ebene "" Aktuelle Ebene, entweder gmlayer, objects, map, walls oder foreground.
istzeichnen FALSCH Diese Eigenschaft kann über das Kontextmenü „Erweitert“ geändert werden.
disableSnapping FALSCH Deaktiviere das Einrasten der Grafik am Raster.
disableTokenMenu FALSCH Deaktiviere die grafischen Spielmarker-Menüeinstellungen (Spielmarker-Blasen und Radialmenü).
flipv "false" Vertikal spiegeln.
fliph FALSCH Horizontal spiegeln.
Name "" Der Name des Spielmarkers.
gmnotes "" Nur SL-Notizen. Eine synchrone Zeichenfolge, oft URL-kodiertes HTML (sie kann mit %3Cp%3E beginnen). Das ist kein Blob-Feld für Charaktere oder Notizen.
kontrolliert von "" Durch Kommas getrennte Liste der Spieler-IDs, die die Grafik steuern können. Kontrollierende Spieler können die Grafik löschen. Wenn die Grafik von einem Spieler erstellt wurde, wird dieser Spieler automatisch in die Liste aufgenommen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
bar1_value „“ Aktueller Wert von Leiste 1. Dies kann eine Zahl oder ein Text sein.
bar2_value „“
bar3_value ""
bar4_value ""
bar1_max "" Maximalwert von Leiste 1. Wenn sowohl _value als auch _max festgelegt sind, wird möglicherweise eine Leiste über dem Spielmarker angezeigt, die den Prozentsatz von Leiste 1 anzeigt.
bar2_max ""
bar3_max ""
bar4_max ""
aura1_radius "" Radius der Aura, unter Verwendung der in den Einstellungen der Seite festgelegten Einheiten. Kann eine Ganzzahl oder eine Gleitkommazahl sein. Auf die leere Zeichenfolge setzen, um die Aura zu löschen.
aura2_radius ""
aura1_color „#FFFF99“ Eine hexadezimale Farbangabe für die Aura.
aura2_color „#59E594“
aura1_options "circle" Legt die Form einer Aura fest. Gültige Optionen sind circle oder square Hinweis: Wird mit aura1_square synchronisiert
aura2_options "circle" Legt die Form einer Aura fest. Gültige Optionen sind circle oder square Hinweis: Wird mit aura2_square synchronisiert
aura1_square FALSCH Ist die Aura ein Kreis oder ein Quadrat?
aura2_square FALSCH
tint_color "transparent" Hexadezimaler Farbcode oder transparent. Tönt die Farbe der Grafik.
Statusmarker "" Eine durch Kommas getrennte Liste der derzeit aktiven Statusmarkierungen. Benutzerdefinierte Marker verwenden das Stichwort name::id aus Campaign _token_markers. Siehe die Anmerkungen unten.
Name anzeigen "false" Ob das Namensschild des Spielmarkers angezeigt wird.
showplayers_name FALSCH Zeigen Sie allen Spielern das Namensschild.
showplayers_bar1 FALSCH Zeige allen Spielern Leiste 1.
showplayers_bar2 FALSCH
showplayers_bar3 FALSCH
showplayers_bar4 "false"
showplayers_aura1 FALSCH Zeige Aura 1 allen Spielern.
showplayers_aura2 FALSCH
Spieleredit_name WAHR Ermögliche kontrollierenden Spielern das Bearbeiten des Namens des Spielmarkers. Zeigt kontrollierenden Spielern auch das Namensschild, selbst wenn showplayers_name false ist.
Spieleredit_bar1 WAHR Ermögliche kontrollierenden Spielern das Bearbeiten der Leiste 1 des Spielmarkers. Zeigt kontrollierenden Spielern auch Leiste 1, selbst wenn showplayers_bar1 false ist.
Spieleredit_bar2 WAHR
Spieleredit_bar3 WAHR
playersedit_bar4 WAHR
bar1_num_permission "" Lege fest, wie das Overlay von „bar1“ angezeigt wird. Gültige Werte: everyone, hidden. "" bedeutet, dass nur Bearbeitende den Wert sehen
bar2_num_permission ""
bar3_num_permission ""
bar4_num_permission ""
Spieleredit_aura1 WAHR Ermögliche kontrollierenden Spielern das Bearbeiten von Aura 1 des Spielmarkers. Zeigt kontrollierenden Spielern auch Aura 1, selbst wenn showplayers_aura1 false ist.
Spieleredit_aura2 WAHR
licht_radius "" VERALTET Altsystem-Dynamische Beleuchtung: Radius des hellen Lichts. Siehe bright_light_distance.
light_dimradius "" VERALTET Altsystem-Dynamische Beleuchtung: Beginn des Dämmerlicht-Radius. Wenn light_dimradius die leere Zeichenfolge ist, sendet der Spielmarker helles Licht bis zur Entfernung light_radius aus. Wenn light_dimradius einen Wert hat, sendet der Spielmarker helles Licht bis zum Wert light_dimradius aus und Dämmerlicht von dort bis zum Wert light_radius. Siehe low_light_distance in der Dokumentation zur Dynamischen Beleuchtung
light_otherplayers FALSCH VERALTET Altsystem-Dynamische Beleuchtung: Zeigt allen Spielern das Licht dieses Spielmarkers an. Das ist nicht has_night_vision.
light_hassight "false" VERALTET Altsystem-Dynamische Beleuchtung: Dieses Licht gibt kontrollierenden Spielern Sicht für „Sichtlinie erzwingen“. Siehe has_bright_light_vision.
light_angle „360“ VERALTET Altsystem-Dynamische Beleuchtung: Winkel in Grad. 180 zeigt Licht über die vordere Hälfte des Feldes. Siehe has_directional_bright_light, directional_bright_light_center und directional_bright_light_total.
light_losangle „360“ VERALTET Altsystem-Dynamische Beleuchtung: Winkel (in Grad) des Sichtfelds der Grafik (vorausgesetzt, light_hassight ist auf true gesetzt). Siehe has_limit_field_of_vision, limit_field_of_vision_center und limit_field_of_vision_total in der Dokumentation zur Dynamischen Beleuchtung
sides "" Durch Pipe-Zeichen getrennte Liste von Seitenbildern. Jeder Eintrag ist URL-kodiert. Nach | aufteilen, dann mit decodeURIComponent dekodieren.
currentSide 0 Index in sides. Nur für Mod-Skript-Sandkasten v1.5. Wenn du currentSide festlegst, wird imgsrc automatisch aktualisiert, einschließlich Marktplatz-Bildern. Wenn dasselbe .set() auch einen gültigen imgsrc enthält, wird stattdessen dieser imgsrc verwendet.
letzter Zug "" Der letzte Zug des Spielmarkers. Es ist eine durch Kommas getrennte Liste von Koordinaten. „300,400“ würde beispielsweise bedeuten, dass der Spielmarker seine letzte Bewegung bei left=300, top=400 begonnen hat. Es wird immer davon ausgegangen, dass die aktuellen top- und left-Werte des Spielmarkers den „Endpunkt“ der letzten Bewegung darstellen. Wegpunkte werden durch mehrere Koordinatensätze angezeigt. Beispielsweise würde „300,400,350,450,400,500“ bedeuten, dass der Spielmarker bei left=300, top=400 begann, dann einen Wegpunkt bei left=350, top=450 und einen weiteren Wegpunkt bei left=400, top=500 setzte und dann die Bewegung an seinen aktuellen top- und left-Koordinaten beendete.
light_multiplier "1" VERALTET Altsystem-Dynamische-Beleuchtung-Multiplikator. 1 steht für normale Sicht. Die aktuelle Dynamische Beleuchtung verwendet light_sensitivity_multiplier, wobei 100 normal ist.
adv_fow_view_distance "" Der Radius um einen Spielmarker, in dem Erweiterter Kriegsnebel aufgedeckt wird.
light_sensitivity_multiplier 100 Multiplikator für die Wirksamkeit von Lichtquellen. Ein Multiplikator von 200 würde es dem Spielstein ermöglichen, bei gleicher Lichtquelle doppelt so weit zu sehen wie ein Spielstein mit einem Multiplikator von 100.
night_vision_effect null Nachtsicht-Effekt. null ist der Standardeffekt. Weitere Werte sind Dimming und Nocturnal.
bar_location null Wo die Spielmarker-Leisten sitzen. null ist die Standardplatzierung. Andere Werte: overlap_top, overlap_bottom, bottom.
compact_bar null Leistenstil. null ist der Standardwert. compact verwendet die kompakte Leiste.
bewegung_sperren FALSCH Eine Option zum Fixieren einer Grafik. Wert ist entweder wahr oder falsch.
fadeOnOverlap WAHR Wenn der Wert true ist, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert in fadeOpacity annimmt. Wenn der Wert false ist, bleibt sie unabhängig von Überlappungen bei der eingestellten baseOpacity.
fadeOpacity .3 Dieser Wert bestimmt die Deckkraft des Objekts, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf true gesetzt ist
renderAsScenery FALSCH Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt.
baseOpacity 1.0 Anfängliche Deckkraft der Grafik, auf jeder beliebigen Ebene.
interactionManualReset FALSCH Wenn du dies auf „true“ setzt, werden die Interaktionen des Objekts zurückgesetzt.
interactionTriggered FALSCH Wird auf „true“ gesetzt, wenn eine Interaktion ausgelöst wird.

Aktuelle Eigenschaften der Dynamischen Beleuchtung (zusätzlich zu den oben genannten Altsystem-light_*-Feldern):

Eigenschaft Standard
has_bright_light_vision FALSCH
has_night_vision FALSCH
night_vision_tint null
night_vision_distance 0
emits_bright_light "false"
bright_light_distance 0
emits_low_light FALSCH
low_light_distance 0
dim_light_opacity 0
lightColor "transparent"
has_limit_field_of_vision FALSCH
limit_field_of_vision_center 0
limit_field_of_vision_center 0
has_limit_field_of_night_vision FALSCH
Feld der Nachtsicht in der Mitte begrenzen 0
Feld der Nachtsicht insgesamt begrenzen 0
hat_gerichtetes_helles_Licht FALSCH
gerichtetes helles Licht in der Mitte 0
gerichtetes helles Licht insgesamt 0
hat gerichtetes gedimmtes Licht FALSCH
gerichtetes gedimmtes Licht in der Mitte 0
gerichtetes gedimmtes Licht insgesamt 0
kurzinfo ""
show_tooltip FALSCH
gm_only_tooltip FALSCH
renderAsDarkness FALSCH

Nur für Mod-Skript-Sandkasten v1.5. Wenn du currentSide festlegst, wird imgsrc automatisch aktualisiert:

const setRandomSide = (obj) => {
  if ('graphic' === obj.type) {
    obj.set({
      currentSide: randomInteger(obj.get('sides')?.split('|').length ?? 1) - 1
    });
  }
};

Nur für Mod-Skript-Sandkasten v1.5. Methoden für graphic:

  • createCopy(properties) – kopiert wie createObj, einschließlich Marktplatz-imgsrc/sides. Gibt die neue Grafik zurück.
  • toFront(), toBack(), toAbove(target), toBelow(target) – entsprechen den globalen Funktionen. target kann ein Objekt oder eine ID sein.
obj.createCopy({ pageid, layer, left: x, top: y });

Beispiel für Spielmarker

Die spielweite Liste der verfügbaren Spielmarker ist Campaign().get('_token_markers'). Jeder Eintrag sieht so aus:

{
  "id":59, // die Datenbank-ID für den
  "name":"Bane", // der Name (nicht eindeutig) des Spielmarkers
  "tag":"Bane::59", // wie der Spielmarker tatsächlich referenziert wird
  // dies enthält die ID für benutzerdefinierte Spielmarker, aber nicht
  // für Standard-Spielmarker.
  "url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
  // ^die URL für das Bild des Spielmarkers
}

Wichtige Hinweise zu verknüpften Charakteren und Spielmarkern Beachte, dass bei Spielmarkern, die mit Charakteren verknüpft sind, das Feld controlledby auf dem Spielmarker durch das Feld controlledby auf dem Charakter überschrieben wird. Für Spielmarker-Leisten (z. B. bar1_value und bar1_max), bei denen der Spielmarker mit einem Attribut verknüpft ist (z. B. wenn bar1_link gesetzt ist), werden durch das Festlegen eines Werts für die Leiste automatisch auch die zugrunde liegenden current- und/oder max-Werte des Attributs aktualisiert, sodass du nicht beides manuell festlegen musst. Außerdem hörst du, wenn das Attribut (oder die Spielmarker-Leiste) im Spiel geändert wird, ein change:attribute-Ereignis (und ein eigenschaftsspezifisches, z. B. change:attribute:current), gefolgt von einem change:graphic-Ereignis (und change:graphic:bar1_value). Es kann auf jedes Ereignis reagiert werden, die zugrunde liegenden Werte werden jedoch beim ersten Attributfeuer nicht aktualisiert.

Wichtige Hinweise zu Statusmarkierungen Seit dem 6. August 2013 hat sich die Handhabung von Statusmarkierungen auf Spielmarkern geändert. Die Eigenschaft statusmarkers des Grafikobjekts ist jetzt eine durch Kommas getrennte Liste aller Farben/Symbole von Statusmarkierungen, die auf dem Spielmarker aktiv sein sollen. Das Format ist wie folgt:

//Komma getrennt (Verwenden von Verbinden um zu erstellen oder Trennen zur Wandlung in ein Array).
//Wenn auf ein Statussymbol bzw. eine Statusfarbe ein „@“-Symbol folgt, wird die Zahl hinter
//„@“ als Badge auf dem Symbol angezeigt
statusmarkers = "red,blue,skull,dead,brown@2,green@6"

Zwar kannst du direkt auf die Eigenschaft statusmarkers zugreifen, doch um die Abwärtskompatibilität mit bestehenden Skripten zu gewährleisten und eine einfache Möglichkeit zu bieten, mit den Statusmarkierungen zu arbeiten, ohne selbst Code schreiben zu müssen, um die Zeichenfolge aufzuteilen und zu analysieren, stellen wir eine Reihe virtueller Eigenschaften auf dem Objekt bereit, die du setzen/abrufen kannst, um mit den Statusmarkierungen zu arbeiten. Jede Statusmarkierung verfügt über die Eigenschaft status_<markername>. Zum Beispiel:

obj.get("status_red"); // Gibt „falsch“ zurück, wenn die Markierung nicht aktiv ist, „wahr“, wenn sie aktiv ist, und eine Zeichenfolge (z. B. „2“ oder „5“), wenn aktuell ein Abzeichen auf der Markierung gesetzt ist
obj.get('status_bluemarker'); // Wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt und entspricht der Ausführung von obj.get("status_blue");
obj.set("status_red", false); // würde die Markierung entfernen
obj.set("status_skull", "2"); // würde ein Abzeichen von „2“ auf das Totenkopfsymbol setzen und es dem Spielmarker hinzufügen, wenn es nicht bereits aktiv ist.

Beachte, dass diese virtuellen Eigenschaften keine Ereignisse haben. Daher musst du change:graphic:statusmarkers verwenden, um auf Änderungen an den Statusmarkierungen eines Spielmarkers zu lauschen, und beispielsweise change:graphic:status_red ist KEIN gültiges Ereignis und wird niemals ausgelöst. Die vollständige Liste der verfügbaren Statusmarkierungen (in der gleichen Reihenfolge, in der sie in der Markierungsleiste erscheinen):

„rot“, „blau“, „grün“, „braun“, „lila“, „rosa“, „gelb“, „tot“, „Schädel“, „schläfrig“, „halbherz“, „halbdunst“, „interdiction“, „Schnecke“, „Blitzspirale“, „Schlüssel“, „verkettetes Herz“, „chemischer Pfeil“, „Todeszone“, „trinkmich“, „Randriss“, „Ninja-Maske“, „Stoppuhr“, „Fischernetz“, „Overdrive“, „stark“, „Faust“, „Vorhängeschloss“, „Dreiblatt“, „flauschiger Flügel“, „verprügelt“, „betreten“, „gepfeilt“, „Aura“, „Rückenschmerzen“, „schwarze Flagge“, „blutendes Auge“, „Pfeilschild“, „gebrochenes Herz“, „Spinnennetz“, „zerbrochenes Schild“, „fliegende Flagge“, „radioaktiv“, „Trophäe“, „gebrochener Schädel“, „gefrorene Kugel“, „rollende Bombe“, „weißer Turm“, „zugreifen“, „schreiend“, „Granate“, „Wachgeschütz“, „Alle für einen“, „Engelskostüm“, „Zielscheibe“

Seite

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "Seite" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_zorder "" Durch Kommas getrennte Liste von IDs, die die Reihenfolge der Objekte auf der Seite angeben. Die gespeicherte Zeichenkette enthält oft ein abschließendes Komma; lass leere Segmente weg, wenn du sie aufteilst. toFront und toBack schreiben diese Liste neu. Schreibgeschützt.
Name "" Titel der Seite.
Raster anzeigen WAHR Zeige das Raster auf der Karte an.
Dunkelheit zeigen FALSCH Nebel des Krieges auf der Karte zeigen.
Showbeleuchtung FALSCH VERALTET Altsystem-Dynamische Beleuchtung: Informationen zur Verwendung von Dynamischer Beleuchtung findest du unter dynamic_lighting_enabled in der Dokumentation zur Dynamischen Beleuchtung
Breite 25 Breite in Einheiten.
Höhe 25 Höhe in Einheiten.
snapping_increment 1 Größe eines Rasterraums in Einheiten.
grid_opacity 0.5 Deckkraft der Gitterlinien.
fog_opacity 0.35 Undurchsichtigkeit des Nebels des Krieges für den GM.
Hintergrundfarbe "#ffffff" Hexadezimale Farbe des Kartenhintergrunds. Wird in Kleinbuchstaben gespeichert.
Gitterfarbe „#C0C0C0“ Hexadezimale Farbe der Gitterlinien.
Gittertyp "square" Eines von square, hex (Hex V), hexr (Hex H), dimetric oder isometric.
Maßstabsnummer 5 Der Abstand einer Einheit.
Scale_Units „ft“ Der für die Skala zu verwendende Einheitentyp.
Rasterbeschriftungen "false" Gitterbeschriftungen für sechseckiges Gitter anzeigen.
Diagonaltyp „vier“ Eines von foure, pythagorean (euklidisch), threefive oder manhattan.
archiviert "false" Ob die Seite im Archivspeicher abgelegt wurde.
lightupdatedrop "false" Aktualisiere die Dynamische Beleuchtung nur, wenn du ein Objekt ablegst.
lightenforcelos "false" VERALTET Altsystem-Dynamische Beleuchtung: Sichtlinie für Objekte erzwingen.
lightrestrictmove "false" Erlaube nicht, dass Objekte mit Sicht durch Wände der Dynamischen Beleuchtung bewegt werden.
Lichtglobalillum "false" VERALTET Altsystem-Dynamische Beleuchtung: Wenn irgendwo dort, wo ein Spielmarker „sehen“ kann, true ist, wird davon ausgegangen, dass helles Licht vorhanden ist. Siehe daylight_mode_enabled in der Dokumentation zur Dynamischen Beleuchtung
adv_fow_enabled "false" VERALTET Altsystem-Erweiterter Kriegsnebel.
adv_fow_dim_reveals "false" VERALTET Altsystem-Erweiterter Kriegsnebel: Dämmerlicht deckt Nebel auf.
adv_fow_show_grid "false" VERALTET Altsystem-Erweiterter Kriegsnebel: Zeigt das Raster durch den Nebel hindurch an.
grid_offset_x 0 Horizontaler Rasterversatz.
grid_offset_y 0 Vertikaler Rasterversatz.
force_lighting_refresh null Setzen, um eine Aktualisierung der Dynamischen Beleuchtung anzufordern. Der Standardwert ist null, kein Boolescher Wert.
Jukeboxtrigger null Automatische Wiedergabe beim Laden der Seite. Optionen sind none, stop, all oder eine Track-ID.
dynamic_lighting_enabled "false" Dynamische Beleuchtung verwenden
daylight_mode_enabled "false" Tageslichtmodus verwenden
daylightModeOpacity 1 Stellt die Lichtintensität im Tageslichtmodus ein
explorer_mode "Aus" Optionen: off, basic
darknessEffect "keinen" Optionen: none, darkfog, lightfog
_placement 0 Nur für Mod-Skript-Sandkasten v1.5. Sortierschlüssel im Seitenmenü. Bestehende Seiten verwenden dünn verteilte Werte (zum Beispiel 2000). Sortiere nach dieser Zahl; verwende sie nicht als Array-Index. Nur-Lese-Zugriff, außer über die Platzierungsmethoden.
_path "," Nur für Mod-Skript-Sandkasten v1.5. Durch Kommas getrennte pageFolder-IDs. Werte beginnen in der Regel mit einem Komma und können mit weiteren Kommas enden. Lass leere Segmente weg, wenn du die Zeichenfolge aufteilst. Nur-Lese-Zugriff, außer über die Platzierungsmethoden.
_wrapperAutoColor #ffffff Nur für Mod-Skript-Sandkasten v1.5. Berechnete Wrapper-Farbe. Schreibgeschützt.
useAutoWrapper WAHR Nur für Mod-Skript-Sandkasten v1.5. Wenn true, verwende _wrapperAutoColor.
wrapperColor null Nur für Mod-Skript-Sandkasten v1.5. Wird verwendet, wenn useAutoWrapper false ist.

Nur für Mod-Skript-Sandkasten v1.5. Methoden: placeBefore(obj), placeAfter(obj) (obj ist eine page oder ein pageFolder), placeIn(obj) (obj ist ein pageFolder). Beim Verschieben zwischen Ordnerebenen wird _path aktualisiert.

PageFolder

Nur für Mod-Skript-Sandkasten v1.5.

pageFolder-Objekte sind Ordner im Seitenmenü. Du kannst sie erstellen und löschen. Wenn du einen Ordner entfernst, werden dessen untergeordnete Elemente im Menü eine Ebene nach oben verschoben.

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "pageFolder" Schreibgeschützt.
Name "New Folder" Wird im Seitenmenü angezeigt.
_placement 0 Reihenfolge im Seitenmenü.
_path "," Durch Kommas getrennte IDs der übergeordneten pageFolder.

Methoden: placeBefore(obj), placeAfter(obj) (page oder pageFolder), placeIn(obj) (pageFolder). Das Ändern von Ordnern aktualisiert _path für diesen Ordner und seine Nachfahren. remove() verschiebt die untergeordneten Elemente nach oben und löscht dann den Ordner.

var folder = createObj('pageFolder', { name: 'Dungeons' });

Kampagne

Eigenschaft Standardwert Anmerkungen
_ID "Wurzel" Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "campaign" Kann verwendet werden, um den Objekttyp zu identifizieren oder nach dem Objekt zu suchen – beachte jedoch, dass es nur ein Campaign-Objekt gibt und auf dieses über Campaign() zugegriffen werden kann. Schreibgeschützt.
Zugreihenfolge "" Eine JSON-Zeichenfolge der Zugreihenfolge. Siehe unten.
Initiative-Seite "false" ID der Seite, die für den Tracker verwendet wird, wenn das Zugreihenfolgefenster geöffnet ist. Wenn false eingestellt ist, wird das Zugreihenfolgefenster geschlossen.
Spielerseiten-ID "false" ID der Seite, auf die das Spieler-Lesezeichen gesetzt ist. Spieler sehen diese Seite standardmäßig, sofern dies nicht durch playerspecificpages unten überschrieben wird.
playerspecificpages "false" Ein Objekt (KEINE JSON-Zeichenkette) im folgenden Format: {player1_id: page_id, player2_id: page_id … } Jeder Spieler, der in diesem Objekt auf eine Seite gesetzt ist, überschreibt die playerpageid.
_journalfolder "" Eine JSON-Zeichenfolge, die Daten über die Ordnerstruktur des Spiels enthält. Schreibgeschützt.
_jukeboxfolder "" Eine JSON-Zeichenfolge, die Daten über die Jukebox-Playlist-Struktur des Spiels enthält. Schreibgeschützt.
_token_markers "[]" JSON-Array der im Spiel verfügbaren Spielmarker (integriert und benutzerdefiniert). Schreibgeschützt. Siehe das Spielmarker-Beispiel unter „Graphic“.
foregroundLayerVisible WAHR Wenn auf „true“ gesetzt, sehen Spieler Objekte auf der Vordergrundebene. Wenn auf „false“ gesetzt, sehen Spieler keine Objekte auf der Vordergrundebene. Hinweis: Das ist eine globale Einstellung, die alle Seiten betrifft.
tokenBubbleMax 3 Gültige Werte sind 3 oder 4 und stellen die Anzahl der Spielmarker-Blasen dar. In der aktualisierten VTT-Engine verfügbar.

Diese zusätzlichen Eigenschaften werden auf dem von Campaign() zurückgegebenen Objekt gelesen, nicht über get:

Eigenschaft Sandkasten Anmerkungen
sandboxVersion beides "1.0" oder "1.5"
nodeVersion beides Node.js-Versionszeichenfolge für den Sandkasten-Prozess
sheetName nur v1.5 Kurzname des konfigurierten Charakterbogens
computedSummary nur v1.5 Verfügbare Namen von berechneten Beacon-Eigenschaften
actionSummary nur v1.5 Verfügbare Beacon-Bogenaktionen
log(Campaign().sandboxVersion);

Zugreihenfolge Die Zugreihenfolge ist eine JSON-Zeichenfolge, die die aktuelle Zugreihenfolgeliste darstellt. Es handelt sich um ein Array von Objekten. Derzeit kann die Zugreihenfolge jeweils nur Objekte von einer Seite enthalten – die aktuelle Seiten-ID für die Zugreihenfolge ist das Attribut initiativepage. Stelle sicher, dass du beide synchron hältst, da es sonst zu seltsamen Ergebnissen kommen kann. Um mit der Zugreihenfolge zu arbeiten, solltest du JSON.parse() verwenden, um ein Objekt abzurufen, das den aktuellen Zustand der Zugreihenfolge darstellt (HINWEIS: Überprüfe zuerst, ob es sich nicht um eine leere Zeichenkette "" handelt…; falls ja, initialisiere es selbst mit einem leeren Array). Hier ist ein Beispiel für ein Objekt zur Zugreihenfolge:

[
  {
    "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //Die ID des Grafikobjekts. Wenn dies eingestellt ist, zieht die Zugreihenfolgeliste automatisch den Namen und das Symbol für die Liste basierend auf der Grafik auf dem Spieltisch ein.
    „pr“: „0“, //Der aktuelle Wert für das Element in der Liste. Kann eine Zahl oder Text sein.
    "custom":"" // Benutzerdefinierter Titel für den Gegenstand. Wird ignoriert, wenn die ID auf einen anderen Wert als „-1“ gesetzt ist.
  },
  {
    "id":"-1", // Für benutzerdefinierte Gegenstände MUSS die ID auf "-1" gesetzt werden (beachte, dass dies eine ZEICHENFOLGE und keine ZAHL ist).
    "pr":"12",
    "custom":"Test Custom" // Der Name, der für benutzerdefinierte Gegenstände angezeigt werden soll.
  }
]

Um die Zugreihenfolge zu ändern, bearbeite das aktuelle Zugreihenfolge-Objekt und verwende anschließend JSON.stringify(), um das Attribut in der Kampagne anzupassen. Beachte, dass die Sortierung für die Zugreihenfolge in der Liste mit der Reihenfolge des Arrays übereinstimmt. Zum Beispiel fügt push() einen Gegenstand am Ende der Liste hinzu, unshift() fügt einen am Anfang hinzu usw.

var zugreihenfolge;
if(Campaign().get("turnorder") == "") zugreihenfolge = []; // HINWEIS: Wir prüfen zunächst, ob die Zugreihenfolge nicht nur eine leere Zeichenfolge ist. Wenn ja, behandeln Sie es wie ein leeres Array.
else zugreihenfolge = JSON.parse(Campaign().get("turnorder"));
// Füge einen neuen benutzerdefinierten Eintrag am Ende der Zugreihenfolge hinzu.
turnorder.push({
  id: "-1",
  pr: "15",
  custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));

Spieler

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "spieler" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_d20userid Benutzer-ID – standortweit. Zum Beispiel lautet die Benutzerseite des Spielers im Wiki /User:ID, wobei ID derselbe Wert ist, der in _d20userid gespeichert ist. Schreibgeschützt.
_DisplayName "" Der aktuelle Anzeigename des Spielers. Kann auf der Einstellungsseite des Nutzers geändert werden. Schreibgeschützt.
_online "false" Schreibgeschützt.
_letzte Seite "" Die Seiten-ID der letzten Seite, die der Spieler als SL angesehen hat. Diese Eigenschaft wird für Spieler oder SL, die als Spieler beigetreten sind, nicht aktualisiert. Schreibgeschützt.
_Makroleiste "" Durch Kommas getrennte Zeichenkette der Makros in der Makroleiste des Spielers. Schreibgeschützt.
SprechenAls "" Die Spieler- oder Charakter-ID der Auswahl, die der Spieler im Dropdown-Menü As getroffen hat. Wenn die leere Zeichenfolge eingestellt ist, spricht der Spieler als er selbst. Wenn der Wert auf einen Charakter gesetzt ist, lautet er character|<ID>, wobei <ID> die ID des Charakters ist.
Farbe „#13B9F0“ Die Farbe des Quadrats neben dem Namen des Spielers sowie die Farbe seiner Messungen auf der Karte, seiner Ping-Kreise usw.
MakroleisteAnzeigen "false" Ob die Makroleiste des Spielers angezeigt wird.

Makro

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "makro" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_playerid Die ID des Spielers, der dieses Makro erstellt hat. Schreibgeschützt.
Name "" Der Name des Makros.
action "" Der Text des Makros.
sichtbar für "" Durch Kommas getrennte Liste der Spieler-IDs, die das Makro zusätzlich zum Spieler, der es erstellt hat, sehen dürfen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
istokenaction "false" Ist dieses Makro eine Token-Aktion, die angezeigt werden soll, wenn Token ausgewählt werden?

Wurf-Tabelle

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ „Rolltisch“ Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
Name „Neue-Tabelle“
Showplayer WAHR

Nur für Mod-Skript-Sandkasten v1.5. createToken(properties) erstellt eine Grafik, deren sides aus den Avataren der Tabelleneinträge stammen (Marktplatz-Bilder erlaubt). Gibt die Grafik zurück. Wenn kein Tabelleneintrag einen avatar hat, wird nichts erstellt.

Tabellenelement

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ „tableitem“ Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_rollabletableid "" ID der Tabelle, zu der dieses Element gehört. Schreibgeschützt.
avatar "" URL zu einem Bild, das für den Tabellengegenstand verwendet wird. Lies dir den Hinweis zu den Einschränkungen bei avatar und imgsrc weiter unten durch.
Name ""
Gewicht 1 Gewicht des Tabellengegenstands im Vergleich zu den anderen Gegenständen in derselben Tabelle. Einfach ausgedrückt ist die Wahrscheinlichkeit, dass ein Gegenstand mit dem Gewicht 3 beim Würfeln auf dem Tisch ausgewählt wird, dreimal höher als bei einem Gegenstand mit dem Gewicht 1.

Charakter

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "charakter" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
avatar "" URL zu einem Bild, das für den Charakter verwendet wird. Lies dir den Hinweis zu den Einschränkungen bei avatar und imgsrc weiter unten durch.
Name ""
biografie "" Die Biografie des Charakters. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ findest du im folgenden Hinweis.
gmnotes "" Notizen zum Charakter sind nur für den SL sichtbar. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ findest du im folgenden Hinweis.
archiviert "false"
inplayerjournals "" Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter sehen können. Verwende all, um allen Spielern die Möglichkeit zu geben, die Ansicht anzuzeigen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
kontrolliert von "" Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter steuern und bearbeiten können. Verwende all, um allen Spielern die Möglichkeit zum Bearbeiten zu geben. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
_defaulttoken "" Eine JSON-Zeichenfolge für den Standard-Spielmarker des Charakters, sofern einer festgelegt ist. Das ist ein Blob, genau wie bio und notes, daher nimmt get() einen Callback entgegen. Setz es nicht mit set(). Schreib ihn mit setDefaultTokenForCharacter.
inParty "false" Ob der Charakter zur Gruppe gehört.
stichwörter "[]" JSON-Array aus Zeichenfolgen. Keine Leerzeichen oder Kommas. Ungültige Stichwörter werden entfernt; eine Warnung wird an die Mod Output Console gesendet. In beiden Sandkasten-Versionen verfügbar.

Nur für Mod-Skript-Sandkasten v1.5. sheetEnvironment ist "legacy" oder "beacon". Lies es als character.sheetEnvironment (nicht über get).

Nur für Mod-Skript-Sandkasten v1.5. createToken(properties, options, callback) erstellt eine Grafik aus dem Standard-Spielmarker des Charakters. Wenn kein Standard-Spielmarker vorhanden ist, wird das avatar des Charakters verwendet. Wenn auch kein avatar vorhanden ist, schlägt die Erstellung fehl. Bilder vom Marktplatz sind erlaubt. Da _defaulttoken asynchron ist, wird die Grafik an callback übergeben und nicht zurückgegeben.

Option Standard Anmerkungen
preferAvatar "false" Bevorzuge das avatar des Charakters als imgsrc.
multisided "false" So werden sides erstellt: false belässt sides wie beim Standard-Spielmarker; true/ensure fügt imgsrc und avatar hinzu, wenn keine sides vorhanden sind; replace überschreibt vorhandene sides; append/prepend fügen imgsrc/avatar hinzu.
obj.createToken({ pageid, layer, left: x, top: y }, { multisided: 'ensure' }, function (token) {
  token.set('status_green', 5);
});

Attribut

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "attribut" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_characterid "" ID des Charakters, zu dem dieses Attribut gehört. Schreibgeschützt. Bei der Verwendung von createObj obligatorisch.
Name "Untitled"
aktuell "" Auf den aktuellen Wert des Attributs kannst du im Chat und in Makros mit der Syntax @{Character Name|Attribute Name} oder in Fähigkeiten mit der Syntax @{Attribute Name} zugreifen.
max. "" Auf den Maximalwert des Attributs kannst du im Chat und in Makros mit der Syntax @{Character Name|Attribute Name|max} oder in Fähigkeiten mit der Syntax @{Attribute Name|max} zugreifen.

Wichtig: Lies den Hinweis unten zum Arbeiten mit Charakterblättern, um zu erfahren, wie sich die Standardwerte von Charakterblättern auf die Verwendung von Attributen auswirken.

Fähigkeit

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "fähigkeit" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_characterid "" Der Charakter, zu dem diese Fähigkeit gehört. Schreibgeschützt. Bei der Verwendung von createObj obligatorisch.
Name "Untitled_Ability"
beschreibung "" Die Beschreibung erscheint nicht in der Charakterbogen-Oberfläche.
action "" Der Text der Fähigkeit.
istokenaction "false" Handelt es sich bei dieser Fähigkeit um eine Spielmarker-Aktion, die angezeigt werden sollte, wenn Spielmarker ausgewählt werden, die mit dem übergeordneten Charakter verknüpft sind?

Notiz

Eigenschaft Standardwert Anmerkungen
_ID Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "notiz" Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
_pins "[]" Eine JSON-Zeichenkette mit einem Array von Objekten, die jeweils eine der Markierungen darstellen, die mit Teilen dieser Notiz verknüpft sind.
avatar "" URL zu einem Bild, das für das Handout verwendet wird. Lies dir den Hinweis zu den Einschränkungen bei avatar und imgsrc weiter unten durch.
Name "Mysterious Note"
Notizen "" Enthält den Text in der Notiz. Weitere Informationen zur Verwendung von Notizen und SLNotizen findest du im folgenden Hinweis.
gmnotes "" Enthält den Text in der Notiz, den nur der SL sieht. Weitere Informationen zur Verwendung von Notizen und SLNotizen findest du im folgenden Hinweis.
inplayerjournals "" Durch Kommas getrennte Liste der Spieler-IDs, die diese Notiz sehen können. Verwende all, um die Anzeige allen Spielern anzuzeigen. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
archiviert "false"
kontrolliert von "" Durch Kommas getrennte Liste der Spieler-IDs, die diese Notiz kontrollieren und bearbeiten können. Alle Spieler wird dadurch dargestellt, dass all in der Liste vorhanden ist.
stichwörter "[]" JSON-Array aus Zeichenketten. Dieselben Regeln wie bei den tags des Charakters. In beiden Sandkasten-Versionen verfügbar.

Hinweis: Campaign().get("_journalfolder") ist lesbar. Skripte können nicht in den Journal-Ordner schreiben. Von Skripten erstellte Notizen werden im Stammverzeichnis abgelegt.

Deck

Es gibt Hilfsfunktionen im Mod-Skript zum Ziehen, Austeilen, Mischen, Abrufen, Aufnehmen, Nehmen, Ausspielen und Geben von Karten: shuffleDeck, cardInfo, recallCards, dealCardsToTurn, drawCard, pickUpCard, takeCardFromPlayer, playCardToTable, giveCardToPlayer. Sie sind in beiden Sandkasten-Versionen verfügbar. Siehe Funktionsdokumentation.

Eigenschaft Standardwert Anmerkungen
_ID "" ID des Decks
_Typ "kartenspiel"
Name "" Name des Decks
_currentDeck "" eine durch Kommas getrennte Liste der Karten, die sich derzeit im Stapel befinden (einschließlich der Karten, die auf den Spieltisch/Hände gespielt wurden). Ändert sich, wenn der Stapel gemischt wird.
_currentIndex -1 Der aktuelle Index unserer Position im Kartenspiel: „Welche Karte wird als Nächstes gezogen?“
_currentCardShown WAHR Zeige die aktuelle Karte oben auf dem Spielstapel
Showplayer WAHR Zeige den Spielern den Spielstapel
spielerzugs WAHR Können Spieler Karten ziehen?
avatar "" die back der Karten für dieses Deck
angezeigt "false" Zeig den Spielstapel auf dem Spielbrett (ist der Stapel derzeit sichtbar?)
player_seenumcards WAHR Können die Spieler sehen, wie viele Karten die anderen Spieler auf der Hand haben?
player_seefrontofcards "false" Können die Spieler die Vorderseiten der Karten sehen, wenn sie in die Hände anderer Spieler schauen?
gm_seenumcards WAHR Kann der SL sehen, wie viele Karten jeder Spieler auf der Hand hat?
gm_seefrontofcards "false" Kann der SL die Vorderseiten der Karten sehen, wenn er in die Hand jedes Spielers schaut?
unendliche Karten "false" Gibt es eine infinite Anzahl von Karten in diesem Deck?
_cardSequencer -1 Wird intern verwendet, um den Stapel beim Kartenziehen voranzutreiben.
Karten gespielt "Gesicht nach oben" Wie werden Karten aus diesem Stapel auf die Tischplatte gespielt? faceup oder facedown.
Standardhöhe "" Was ist die Standardhöhe für Karten, die auf den Spieltisch gespielt werden?
Standardbreite ""
Discardpilemode "keinen" Welche Art von Ablagestapel hat dieses Deck? none = kein Ablagestapel, choosebacks = Spieler dürfen die Rückseiten der Karten sehen und eine auswählen, choosefronts = die Vorderseiten sehen und eine auswählen, drawtop = die zuletzt abgelegte Karte ziehen, drawbottom = die älteste abgelegte Karte ziehen.
_discardPile "" Was ist der aktuelle Ablagestapel für dieses Deck? Durch Kommas getrennte Liste von Karten. Diese Karten wurden aus dem Spiel entfernt und werden erst nach einem Rückruf wieder in den Stapel gelegt.

Karte

Eigenschaft Standardwert Anmerkungen
Name "" Name der Karte
avatar "" Vorderseite der Karte
card_back "" Bild der Kartenrückseite überschreiben
_deckid "" ID des Decks
_Typ "Karten"
_ID ""

Nur für Mod-Skript-Sandkasten v1.5. createToken(properties, options) erstellt eine Grafik, als wäre die Karte auf den Spieltisch gespielt worden (Bilder vom Marktplatz erlaubt). Gibt die Grafik zurück.

Option Standard Anmerkungen
asCard WAHR Wenn true, ist die Grafik eine Karte. Wenn false, ein multisided-Spielmarker, der nur wie die Karte aussieht.
Gesicht nach oben Deck-Standardwert Vorder- oder Rückseite sichtbar; setzt currentSide.

Hand

Beachte, dass jeder Spieler nur EINE Hand haben sollte.

Eigenschaft Standardwert Anmerkungen
currentHand "" Durch Kommas getrennte Liste der im Moment in deiner Hand befindlichen Karten. Beachte, dass dies nicht mehr schreibgeschützt ist. Idealerweise sollte es nur mit den Kartenspielfunktionen angepasst werden.
_Typ "hand"
_ElternID "" ID des Spielers, dem das Blatt gehört
_id ""
aktuelle Ansicht „bydeck“ Wenn der Spieler sein Blatt öffnet, ist die Ansicht bydeck oder bycard?

Jukebox-Track

Eigenschaft Standardwert Anmerkungen
_id Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ „Jukeboxtrack“ Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
spielen "false" Boolescher Wert, der bestimmt, ob der Titel abgespielt wird oder nicht. Wenn du dies auf true und softstop auf false setzt, wird ein Titel abgespielt.
Softstop "false" Boolescher Wert, der verwendet wird, um zu bestimmen, ob ein Track ohne Schleife mindestens einmal beendet wurde oder nicht. Dieser Wert muss auf false gesetzt werden, damit ein Titel abgespielt wird.
betreff "" Die sichtbare Bezeichnung für den Titel im Jukebox-Tab.
Lautstärke 30 Der Lautstärkepegel des Titels. Beachte, dass dies auf eine Ganzzahl (keine Zeichenfolge) festgelegt werden muss, oder du könntest die Funktionalität beeinträchtigen. Werte von 0-100 (Prozentsatz).
schleife "false" Soll der Track geloopt werden? Wenn ja, auf „true“ setzen.

Benutzerdefinierte Effekte

Eigenschaft Standardwert Anmerkungen
_id Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ „custfx“ Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
Name "" Der sichtbare Name für den FX im FX-Listing.
erläuterung {} Javascript-Objekt, das den FX beschreibt.

Einschränkungen für die Eigenschaften imgsrc und avatar

Zwar kannst du nun die Eigenschaften imgsrc und avatar bearbeiten, doch um die Sicherheit aller Roll20-Nutzer zu gewährleisten, haben wir für diese Eigenschaften die folgenden Einschränkungen eingeführt:

  • Du musst eine Bilddatei verwenden, die in deine Roll20-Bibliothek hochgeladen wurde – also keine von einer externen Website (wie z. B. Imgur) und auch nicht aus dem Roll20-Marktplatz. Gespeicherte URLs werden auf das Roll20-CDN umgeschrieben (oft https://files.d20.io/images/...). Setze kein s3.amazonaws.com-Präfix voraus und geh nicht davon aus, dass get("imgsrc") mit der von dir übergebenen URL übereinstimmt.
  • Füge den Abfrage-String in die URL ein, die du übergibst.
  • Für imgsrc-Werte von Grafiken ist der Größenname thumb nicht mehr erforderlich. Bild-URLs werden an ein korrigiertes Speicherformat und einen CDN-Speicherort angepasst; geh nicht davon aus, dass obj.get('imgsrc') mit der URL übereinstimmt, die du beim Erstellen übergeben hast. findObjs() normalisiert und gleicht URLs ab, sodass du weiterhin mit jeder gültigen URL suchen kannst.

Wenn du ein Bild aus deiner Bibliothek löschst, wird es aus jedem Spiel entfernt, in dem es verwendet wird – einschließlich der Spiele, die deine Mod-Skripte nutzen.

Nur für Mod-Skript-Sandkasten v1.5. createCopy und createToken können Grafiken erstellen, die Bilder vom Marktplatz verwenden, indem sie von einem vorhandenen Objekt kopiert werden.

Verwendung der Felder "Notizen", "GMNotes" und "Bio" asynchron

Um auf die Felder notes, gmnotes oder bio bei Charakteren und Notizen zuzugreifen, musst du eine Callback-Funktion als zweites Argument an die Funktion get() übergeben. Hier ist ein Beispiel:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
  log(bio); // Mach hier irgendwas mit der Biografie des Charakters.
});

Setze diese Felder mit set(), nachdem das Objekt existiert. Übergib bio, notes oder gmnotes nicht an createObj. Lege notes und gmnotes in separaten set()-Aufrufen fest. Grafik-gmnotes ist eine normale Zeichenkette und gehört nicht zu dieser Liste. Charakter-_defaulttoken ist ein Blob: Lies ihn mit einem Callback und schreibe ihn mit setDefaultTokenForCharacter.

Arbeiten mit Charakterbögen

Die Funktion 'Charakterbögen' hat Einfluss auf die Verwendung des Objekttyps 'Attribut', weil die Bögen die Möglichkeit bieten, für jedes Attribut einen Standardwert anzugeben. Wenn das Attribut jedoch auf den Standardwert gesetzt ist, gibt es im Spiel noch kein tatsächliches Attribut-Objekt für diesen Charakter. Wir bieten eine einfache Funktion an, die diese Komplexität vor dir verbirgt. Du solltest diese Funktion verwenden, um den Wert eines Attributs künftig zu ermitteln, besonders wenn du weißt, dass im Spiel Charakterbögen verwendet werden. getAttrByName(character_id, attribute_name, value_type) Gib einfach die ID des Charakters, den Namen (nicht die ID) des Attributs (z. B. LP oder Str) an und dann, ob du current oder max für value_type möchtest. Hier ist ein Beispiel:

var Charakter = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); // der aktuelle Wert von str, zum Beispiel „12“
getAttrByName(character.id, "str", "max"); //der Maximalwert von str, zum Beispiel „[[floor(@{STR}/2-5)]]“

Beachte, dass Felder mit automatisch berechneten Werten die Formel und nicht das Ergebnis des Werts zurückgeben. Du kannst diese Formel dann an sendChat() übergeben, um die Dice-Engine zur automatischen Berechnung des Ergebnisses für dich zu verwenden. Schau dir unbedingt auch die Dokumentation zum Charakterbogen an, um mehr darüber zu erfahren, wie die Charakterbögen mit Mod-Skripten interagieren. Sieh dir auch setAttrs, getSheetDefaultValue, getSheetItem und setSheetItem an (beide Sandkästen). Nur für Mod-Skript-Sandkasten v1.5. getComputed, setComputed, performAction. Siehe Funktionsdokumentation.

getAttrByName gibt nur den Wert des Attributs zurück, nicht das Attributobjekt selbst. Wenn du auf andere Eigenschaften des Attributs als current oder max verweisen möchtest oder wenn du Eigenschaften des Attributs ändern möchtest, musst du eine der anderen oben genannten Funktionen verwenden, zum Beispiel findObjs. Wenn das Attributobjekt nicht existiert, gibt getAttrByName() den Standardwert des Charakterbogens für diesen Namen zurück, sofern der Bogen einen definiert; andernfalls wird undefined zurückgegeben.

Objekte erschaffen

createObj(Typ, Attribute)

Du kannst 'graphic', 'text', 'path', 'pathv2', 'character', 'ability', 'attribute', 'handout', 'rollabletable', 'tableitem', 'macro', 'card', 'deck', 'custfx', 'window', 'door' und 'pin'-Objekte erstellen. Nur für Mod-Skript-Sandkasten v1.5. 'pageFolder'. Mit der Funktion createObj kannst du im Spiel ein neues Objekt erstellen. Du musst den Typ des Objekts (eine der gültigen _type-Eigenschaften aus der obigen Objektliste) sowie ein attributes-Objekt übergeben, das eine Liste der Eigenschaften für das Objekt enthält. Beachte, dass du, wenn das Objekt ein übergeordnetes Objekt hat (zum Beispiel gehören Attribute und Fähigkeiten zu Charakteren, Grafiken, Texte und Pfade zu Seiten usw.), die ID des übergeordneten Objekts in der Liste der Eigenschaften angeben musst (zum Beispiel musst du beim Erstellen eines Attributs die Eigenschaft characterid angeben). Beachte außerdem, dass du selbst beim Erstellen neuer Objekte keine schreibgeschützten Eigenschaften festlegen kannst – sie werden automatisch auf ihren Standardwert gesetzt. Die einzige Ausnahme ist das Erstellen eines Pfads: Dabei musst du die Eigenschaft path angeben, die jedoch nach der erstmaligen Erstellung des Pfads nicht mehr geändert werden kann. createObj gibt das neue Objekt zurück, sodass du weiter damit arbeiten kannst.

// Ein „Stärke“-Attribut für Charaktere erstellen, die hinzugefügt werden, nachdem der Sandkasten bereit ist.
// Wenn add:character vor ready gebunden wird, wird es auch für bereits vorhandene Charaktere ausgelöst.
on("ready", function() {
  on("add:character", function(obj) {
    createObj("attribute", {
      name: "Strength",
      current: 0,
      max: 30,
      characterid: obj.id
    });
  });
});

Objekte löschen

object.remove()

Du kannst 'graphic'-, 'text'-, 'path'-, 'pathv2'-, 'character'-, 'ability'-, 'attribute'-, 'handout'-, 'rollabletable'-, 'tableitem'-, 'macro'-, 'card'-, 'deck'-, 'custfx'-, 'window'-, 'door'- und 'pin'-Objekte löschen. Nur für Mod-Skript-Sandkasten v1.5. 'pageFolder'.

Du kannst vorhandene Spielobjekte mit der Funktion .remove() löschen. Die Funktion .remove() funktioniert bei allen Objekten, die du mit der Funktion createObj erstellen kannst. Du rufst die Funktion direkt auf dem Objekt auf. Zum Beispiel: mycharacter.remove();.

Globale Objekte

Es gibt mehrere Objekte, die überall in deinem Skript global verfügbar sind.

Campaign() (Funktion)

Eine Funktion, die das Campaign-Objekt zurückgibt. Da es nur eine Kampagne gibt, verweist dieses global immer auf die einzige Kampagne im Spiel. Das ist nützlich, um zum Beispiel mit Campaign().get("playerpageid") zu prüfen, ob sich ein Objekt auf der aktiven Seite befindet.

state

Die Variable state ist ein Objekt im globalen Bereich, auf das alle Skripte zugreifen können, die in einem Spiel ausgeführt werden. Du kannst jederzeit von jeder Funktion oder jedem Callback aus auf das state-Objekt zugreifen, indem du einfach die globale Variable mit dem Namen state verwendest. Außerdem bleibt das state-Objekt zwischen den einzelnen Ausführungen des Mod-Skript-Sandkastens erhalten, sodass du es nutzen kannst, um Informationen zu speichern, die du bei zukünftigen Ausführungen deines Skripts benötigen möchtest. Hinweis: Du solltest das „state“-Objekt nutzen, um Informationen zu speichern, die nur von Mod-Skripten benötigt werden, da diese nicht an die Computer der Spieler gesendet werden und deine Spieldatei dadurch nicht größer wird. Speichere Werte, die im Spiel benötigt werden, in den Eigenschaften der Roll20-Objekte.

Speicherbare Typen

Das state-Objekt kann nur einfache Datentypen speichern, wie sie vom JSON-Standard unterstützt werden.

Rolle Beispiele Beschreibung
Boolescher Wert true false Der Wert true oder false.
Nummer 123.5 10 1.23e20 Jedes von Javascript unterstützte Zahlenformat. Gleitkomma oder Ganzzahl.
Zeichenfolge 'Hello Fantasy' "oh, and World" Eine Standardtextzeichenfolge.
Array [ 1, 2, 3, 4 ]
[ 'A','B','C'][1, 2, ['bob', 3], 10, 2.5]
Eine geordnete Sammlung beliebiger Typen, einschließlich anderer Arrays.
Objekt { key: 1, value: 'roll20' } Ein einfaches Schlüssel-/Wertobjekt mit Zeichenfolgenschlüsseln und einem beliebigen Typ als Wert, einschließlich anderer Objekte.

Warnung: Auch wenn Funktionen zunächst zu funktionieren scheinen, wenn sie im state gespeichert werden, verschwinden sie, sobald state zum ersten Mal aus der Persistenz wiederhergestellt wird, beispielsweise bei einem Neustart des Sandkastens.

  • Hinweis: Dazu gehören auch Roll20-Objekte, die du über Ereignisse oder die Funktionen findObjs(), getObj(), filterObjs(), createObj() usw. erhältst.

Wichtige Erinnerungen

Das state-Objekt wird von allen Skripten in einem Sandkasten gemeinsam genutzt. Um zu verhindern, dass andere Skripte beschädigt werden, ist es wichtig, einige einfache Richtlinien zu befolgen:

  • Dem Root-state-Objekt niemals direkt etwas zuweisen.
state = { break: 'all the things' }; // TU DAS NIEMALS!!!
  • Vermeide die Verwendung lokaler Variablen mit dem Namen state in deinen Skripten. Dies funktioniert zwar, ist jedoch für spätere Benutzer Ihrer Skripte verwirrend und kann zu Problemen führen, wenn der Code unvorsichtig bearbeitet wird.
function turn(){
  var state = Campaign().get('turnorder'); // Schlechte Praxis, bitte vermeiden!
  // ...
}
  • Platziere deine Eigenschaften immer unter mindestens einer Namespace-Eigenschaft. Stellen Sie sicher, dass Sie eine ausreichend beschreibende Namespace-Eigenschaft verwenden. Vermeide Namen wie script oder settings. Am besten verwendest du entweder den Namen deines Moduls oder deinen eigenen Namen bzw. dein Handle.
if( ! state.MyModuleNamespace ) {
  state.MyModuleNamespace = { module: 'my module', ok: 'das ist in Ordnung!', count: 0 };
}
state.MyModuleNamespace.count++;

Beispielverwendung

Dies ist ein funktionierendes Beispiel, das das state-Objekt richtig verwendet.

on('ready', function() {
  "use strict";
  // Prüfen, ob die Namespace-Eigenschaft existiert, und sie andernfalls anlegen
  if( ! state.MyModuleNS ) {
    state.MyModuleNS = {
      version: 1.0,
      config: {
        color1: '#ff0000',
        color2: '#0000ff'
      },
      count: 0
    };
  }
  // Mit den state-Eigenschaften eine Nachricht für den Chat konfigurieren.
  sendChat(
    'Testmodul',
    '<span style="color: '+state.MyModuleNS.config.color1+';">'+
    'State-Test'+
    '</span> '+
    '<span style="color: '+state.MyModuleNS.config.color2+';">'+
    'Skript v'+state.MyModuleNS.version+' wurde '+(++state.MyModuleNS.count)+' Mal gestartet!'+
    '</span>'
  );
});

Objekte finden/filtern

Mod-Skripte bieten verschiedene Hilfsfunktionen, mit denen man Objekte finden kann.

getObj(type, id)
Diese Funktion ruft ein einzelnes Objekt ab, wenn der _type des Objekts und die _id übergeben werden. Es ist am besten, diese Funktion nach Möglichkeit den anderen Suchfunktionen vorzuziehen, da sie die einzige ist, die nicht die gesamte Sammlung von Objekten durchlaufen muss.
on("change:graphic:represents", function(obj) {
  if(obj.get("represents") != "") {
    var character = getObj("character", obj.get("represents"));
  }
});

findObjs(attrs)

Übergebe dieser Funktion eine Liste von Attributen, und sie gibt alle übereinstimmenden Objekte als Array zurück. Beachte, dass dies für alle Objekte aller Typen auf allen Seiten gilt – wenn du also mit Spieltisch-Objekten arbeitest, solltest du wahrscheinlich zumindest einen Filter für _type und _pageid einbauen.

var currentPageGraphics = findObjs({
  _pageid: Campaign().get("playerpageid"),
  _type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
  //Mach irgendwas mit obj, das sich auf der aktuellen Seite befindet und eine Grafik ist.
});

Sie können auch ein optionales zweites Argument übergeben, das ein Objekt mit einer Liste von Optionen enthält, einschließlich:

  • caseInsensitive (true/false): Wenn „true“, werden Zeichenfolgen-Eigenschaften ohne Berücksichtigung der Groß-/Kleinschreibung verglichen
var targetTokens = findObjs({
  name: "target"
}, {caseInsensitive: true});
// Gibt alle Spielmarker zurück, deren Name „target“, „Target“, „TARGET“ usw. lautet.
  • startsWith (true/false): Wenn „true“, müssen die Zeichenfolgen als Präfix übereinstimmen.
  • tagMatch: Beim Abgleichen von tags: 'all' (Standard; das Objekt hat jedes aufgeführte Stichwort), 'any' (mindestens eines), 'only' (genau die aufgeführte Menge).
var knights = findObjs({ type: 'character', name: 'Sir' }, { startsWith: true });

filterObjs(callback)

Führt die bereitgestellte Rückruffunktion für jedes Objekt aus. Wenn der Rückruf „true“ zurückgibt, wird das Objekt in das Ergebnisarray aufgenommen. Derzeit ist es für die meisten Zwecke nicht ratsam, filterObjs() zu verwenden – da findObjs() über eine integrierte Indizierung für eine bessere Ausführungsgeschwindigkeit verfügt, ist es fast immer besser, findObjs() zu verwenden, um Objekte des gewünschten Typs abzurufen Zuerst filtern Sie sie dann mit der nativen .filter()-Methode für Arrays.

var results = filterObjs(function(obj) {
  if(obj.get("left") < 200 && obj.get("top") < 200) return true;
  else return false;
});
// „results“ ist ein Array mit allen Objekten, die sich in der oberen linken Ecke des Spieltischs befinden.

getAllObjs()

Gibt ein Array aller Objekte im Spiel (alle Typen) zurück. Das entspricht dem Aufruf von filterObjs, wobei für jedes Objekt einfach true zurückgegeben wird.

getAttrByName(character_id, attribute_name, value_type)

Ruft den Wert eines Attributs ab und verwendet dabei den Standardwert aus dem Charakterbogen, wenn das Attribut nicht vorhanden ist. value_type ist ein optionaler Parameter, mit dem du current oder max angeben kannst. getAttrByName ruft nur den Wert des Attributs ab, nicht das Attributobjekt selbst. Wenn du auf andere Eigenschaften des Attributs als current oder max verweisen möchtest oder wenn du Eigenschaften des Attributs ändern möchtest, musst du eine der anderen oben genannten Funktionen verwenden, zum Beispiel findObjs. Für sich wiederholende Sektionen kannst du das Format repeating_section_$n_attribute verwenden, wobei n die Nummer der sich wiederholenden Zeile ist (beginnend mit Null). Zum Beispiel gibt repeating_spells_$2_name den Wert von name aus der dritten Zeile von repeating_spells zurück. Mit dem folgenden Code kannst du ein Verhalten erzielen, das dem von getAttrByName entspricht:

// current und max hängen vollständig vom jeweiligen Attribut und Spielsystem ab
//; es gibt keine Funktion, um sie automatisch zu ermitteln
function myGetAttrByName(character_id,
  attribute_name,
  attribute_default_current,
  attribute_default_max,
  value_type) {
  attribute_default_current = attribute_default_current || '';
  attribute_default_max = attribute_default_max || '';
  value_type = value_type || 'current';
  var attribute = findObjs({
    type: 'attribute',
    characterid: character_id,
    name: attribute_name
  }, {caseInsensitive: true})[0];
  if (!attribute) {
    attribute = createObj('attribute', {
      characterid: character_id,
      name: attribute_name,
      current: attribute_default_current,
      max: attribute_default_max
    });
  }
  if (value_type == 'max') {
    return attribute.get('max');
  } else {
    return attribute.get('current');
  }
}
War dieser Beitrag hilfreich?
23 von 26 fanden dies hilfreich