Casebook Authoring Documentation
Reference for all built-in casebook functions and global data (casebook v6.36).
BUILT-IN FUNCTION DEFINITIONS
$_entryApplyOptions
- Internal function for applying options to entry
- Usage: _entryApplyOptions(id= NONE, autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- id: "id as parameter for overiding"; type=AstValString
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$addressLead
- display the address of a lead by its id
- Usage: addressLead(id)
- Parameters:
- id: "ID of lead"; type=AstValString; required
$adjustTrack
- adjust track value
- Usage: adjustTrack(id, val="", min= NONE, max= NONE)
- Parameters:
- id: "track id (A,B,C,D)"; type=AstValString; required
- val: "value to adust"; type=AstValNumber; default=""
- min: "min value"; type=AstValNumber
- max: "max value"; type=AstValNumber
$advanceTime
- Instruct player to advance clock by some clicks
- Usage: advanceTime(time=60, box="default")
- Parameters:
- time: "Duration (in minutes)"; type=AstValNumber; default=60
- box: "Put this text in a standalone box"; type=[
]; default="default"
$afterDay
- Text saying if after day
- Usage: afterDay(day)
- Parameters:
- day: "Day number"; type=AstValNumber; required
$authorNote
- An author note which is not shown in normal case book build only in author report
- Usage: authorNote(label=""): {targetblock}
- Parameters:
- label: "label for note for author report"; type=AstValString; default=""
- :{targetblock} - a braced group of text to operate on
$autoHint
- generate an autohint
- Usage: autoHint(id="", demerits=3)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; default=""
- demerits: "Demerits to mark"; type=AstValNumber; default=3
$autoHintDependencies
- tell player about hint dependencies
- Usage: autoHintDependencies(id="")
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; default=""
$beforeDay
- Text saying if before day
- Usage: beforeDay(day)
- Parameters:
- day: "Day number"; type=AstValNumber; required
$block
- Keep together as a block
- Usage: block(align="t"): {targetblock}
- Parameters:
- align: "alignment of minipage block"; type=['t', 'b', 'c']; default="t"
- :{targetblock} - a braced group of text to operate on
$blurb
- Add some text
- Usage: blurb(type, box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE)
- Parameters:
- type: "The blurb type"; type=AstValString; required
- box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
$blurbCoverPage
- Creates a cover page blurb
- Usage: blurbCoverPage(): {targetblock}
$blurbDay
- Say some stuff about the day
- Usage: blurbDay(day, type="", box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE)
- Parameters:
- day: "Number of the day"; type=AstValNumber; required
- type: "What type of info to show"; type=['dayTimeStart', 'dayDateStart', 'dayDateNoYear', 'calendar', 'timeStart']; default=""
- box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
$blurbStop
- Add some instructions to stop
- Usage: blurbStop(type, day=-1, rest= NONE, text= NONE, goLead= NONE)
- Parameters:
- type: "The stop blurb type"; type=['dayStart', 'dayStartEvent', 'dayEnd', 'nextDay', 'nightStart', 'nightEnd', 'conclusion', 'questions', 'questionPause', 'resolvePause', 'solution', 'leads', 'documents', 'hints', 'end', 'begin', 'noMore', 'dayStartThenConclusion']; required
- day: "Number of the day"; type=AstValNumber; default=-1
- rest: "Suggest player takes a rest?"; type=AstValBool
- text: "Alternate text"; type=AstValString
- goLead: "id of lead to go to"; type=AstValString
$box
- Put contents in box
- Usage: box(box="default", textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE): {targetblock}
- Parameters:
- box: "box style"; type=AstValString; default="default"
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$break
- Add a page/column break
- Usage: break(type="")
- Parameters:
- type: "Break type"; type=['column', 'page']; default=""
$calendar
- Draw a calendar of one or more months
- Usage: calendar(start, end, style="", strikeStart="", strikeEnd="", circle="", box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE)
- Parameters:
- start: "Start date"; type=AstValString; required
- end: "End date"; type=AstValString; required
- style: "style of calendar (not supported yet, but eventually small and large)"; type=AstValString; default=""
- strikeStart: "date strikes start"; type=AstValString; default=""
- strikeEnd: "date strikes end"; type=AstValString; default=""
- circle: "date to circle"; type=AstValString; default=""
- box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
$censor
- censors a small section of text so it is unreadable
- Usage: censor(text)
- Parameters:
- text: "Text to redact if you don't want to put it in a target block"; type=AstValString; required
$cipher
- generate some cipher text
- Usage: cipher(method, key= NONE, debug=false, removePunctuation=false, spellDigits=false, format=true, case= NONE): {targetblock}
- Parameters:
- method: "Name of cipher method"; type=AstValString; required
- key: "The cipher key to use"; type=[
, ] - debug: "Debug by showing info about the cipher at top in plaintext."; type=AstValBool; default=False
- removePunctuation: "Remove punctuation? (spells out periods as 'stop')"; type=AstValBool; default=False
- spellDigits: "Change digits to spelled version"; type=AstValBool; default=False
- format: "Format the message nicely when appropriate"; type=AstValBool; default=True
- case: "convert to upper or lower case"; type=['lower', 'upper', 'title', 'sentence']
- :{targetblock} - a braced group of text to operate on
$circleTag
- Mark a tag
- Usage: circleTag(id, box= NONE, related= NONE)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; required
- box: "box style"; type=AstValString
- related: "add text saying related to this"; type=AstValString
$circleUnderlinedTag
- instruct user to circle an underlined tag and then extra
- Usage: circleUnderlinedTag(id, check="all", box= NONE, count= NONE, noif=false, related= NONE): {targetblock}
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
- related: "add text saying related to this"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$configureBuildDebug
- Configure the draft build
- Usage: configureBuildDebug(targets= NONE, zip= NONE)
- Parameters:
- targets: "Comma separated target list"; type=AstValString
- zip: "zip files?"; type=AstValBool
$configureBuildDraft
- Configure the draft build
- Usage: configureBuildDraft(targets= NONE, zip= NONE)
- Parameters:
- targets: "Comma separated target list"; type=AstValString
- zip: "zip files?"; type=AstValBool
$configureBuildPreferred
- Configure the draft build
- Usage: configureBuildPreferred(targets= NONE, zip= NONE)
- Parameters:
- targets: "Comma separated target list"; type=AstValString
- zip: "zip files?"; type=AstValBool
$configureCampaign
- Configure game campaign/series options
- Usage: configureCampaign(name= NONE, position, type="connected")
- Parameters:
- name: "Campaign name"; type=AstValString
- position: "Position in campaign sequence"; type=[
, ]; required - type: "Is it a connected campaign or a series (connected|series)?"; type=['connected', 'series']; default="connected"
$configureClock
- Configure game clock options
- Usage: configureClock(clockMode=true)
- Parameters:
- clockMode: "True means that players will track how much time passes as they visit leads"; type=AstValBool; default=True
$configureDay
- Configure a day
- Usage: configureDay(day, type="normal", start=9, end=18, date= NONE, hintAlly="", allyFreeStart=-1, allyFreeEnd=-1, autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- day: "Number of the day"; type=AstValNumber; required
- type: "Day type"; type=AstValString; default="normal"
- start: "24 hour clock hour or string"; type=[
, ]; default=9 - end: "24 hour clock hour"; type=[
, ]; default=18 - date: "Date in form mm/dd/yyyy"; type=AstValString
- hintAlly: "is there an ally they can visit for more help"; type=['', 'financialPrecinct']; default=""
- allyFreeStart: "start time where hint is free"; type=[
, ]; default=-1 - allyFreeEnd: "end time where hint is free"; type=[
, ]; default=-1 - autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureDivider
- Configure divider options
- Usage: configureDivider(id="lead", path= NONE, pgfornament= NONE, width="3cm", rule=false, align="center")
- Parameters:
- id: "Divider id"; type=AstValString; default="lead"
- path: "Path to image (or specify 'none' for none or 'rule' for rule)"; type=AstValString
- pgfornament: "PgfOrnament id"; type=AstValNumber
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ]; default="3cm" - rule: "put a side rule on either side of the image"; type=AstValBool; default=False
- align: "Alignment"; type=['left', 'center', 'right']; default="center"
$configureDocuments
- Configure document options and documents section
- Usage: configureDocuments(defaultLocation="back", printLocation="inline", printStyle="simple", autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- defaultLocation: "Default location of documents [back,custom text]"; type=AstValString; default="back"
- printLocation: "Where to print documents [inline, end, pdf]"; type=['inline', 'end', 'pdf']; default="inline"
- printStyle: "Style to print documents [simple, triFold]"; type=['simple', 'triFold']; default="simple"
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureEnd
- Configure end section
- Usage: configureEnd(autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureFeatures
- Configure game features
- Usage: configureFeatures(contacts= NONE, campaign= NONE, criminalHist= NONE, events= NONE, fingerprints= NONE, irp= NONE, newspapers= NONE, trueCrime= NONE, beta= NONE, experimental= NONE, old= NONE, recommended= NONE, historical= NONE, fantastical= NONE, supernatural= NONE, youtube= NONE, ciphers= NONE, classic= NONE, documents= NONE, broken= NONE, days= NONE, clocked= NONE, ai= NONE)
- Parameters:
- contacts: "Supports contacts/allies"; type=AstValBool
- campaign: "Part of a campaign"; type=AstValBool
- criminalHist: "Uses Criminal History directory"; type=AstValBool
- events: "Uses Event mechanic"; type=AstValBool
- fingerprints: "Uses Fingerprint directory"; type=AstValBool
- irp: "Uses IRP (Investigative Resource Point) mechanic"; type=AstValBool
- newspapers: "Has newspaper documents"; type=AstValBool
- trueCrime: "Based on a true crime"; type=AstValBool
- beta: "Looking for beta testers"; type=AstValBool
- experimental: "Has experimental mechanics"; type=AstValBool
- old: "Older case using older mechanics"; type=AstValBool
- recommended: "Recommende case that showcases the system"; type=AstValBool
- historical: "A focus on real history"; type=AstValBool
- fantastical: "Fantastical elements"; type=AstValBool
- supernatural: "Supernatral elements"; type=AstValBool
- youtube: "Playthrough on YouTube"; type=AstValBool
- ciphers: "Ciphers & Coders"; type=AstValBool
- classic: "Classic Mechanics"; type=AstValBool
- documents: "Has standalone documents"; type=AstValBool
- broken: "Is broken"; type=AstValBool
- days: "Number of days in case"; type=AstValNumber
- clocked: "Do you keep track of time?"; type=AstValBool
- ai: "Uses AI-generated content"; type=AstValBool
$configureFront
- Configure front section
- Usage: configureFront(autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureGameInfo
- Configure game options
- Usage: configureGameInfo(name, title, subtitle="", authors, version, versionDate, status="", difficulty, duration)
- Parameters:
- name: "Simple unique name of the case (used for filenames, etc.)"; type=AstValString; required
- title: "Case title"; type=AstValString; required
- subtitle: "Case subtitle"; type=AstValString; default=""
- authors: "Authors of the case (name
separated by commas)"; type=AstValString; required - version: "Case version (dotted string like 1.0)"; type=AstValString; required
- versionDate: "Date of this version (day/month/year)"; type=AstValString; required
- status: "Status of the game (playable, inprogress, etc.)"; type=AstValString; default=""
- difficulty: "From 1 to 5 (e.g. 3.5)"; type=AstValNumber; required
- duration: "Estimated play time in hours"; type=AstValNumber; required
$configureGameInfoExtra
- Configure game options
- Usage: configureGameInfoExtra(gameSystem="nyNoir", gameDate="", cautions="", url="", copyright="", extraCredits="", keywords="", ai="")
- Parameters:
- gameSystem: "Game system (nyNoir, shcd)"; type=AstValString; default="nyNoir"
- gameDate: "Date of the first day of the case in game time; as a string (mm/dd/yyyy)"; type=AstValString; default=""
- cautions: "Any cautions to players (eg. adult language)"; type=AstValString; default=""
- url: "Website url to learn more"; type=AstValString; default=""
- copyright: "Copyright line"; type=AstValString; default=""
- extraCredits: "Extra credits to show in listing and on cover page"; type=AstValString; default=""
- keywords: "Keywords"; type=AstValString; default=""
- ai: "Statement on use of AI"; type=AstValString; default=""
$configureGamePage
- Configure gamebook layout and look
- Usage: configureGamePage(thumbnail= NONE, thumbnailStyle= NONE, info= NONE, language= NONE)
- Parameters:
- thumbnail: "Thumbnail image"; type=AstValString
- thumbnailStyle: "Style for the thumbnail"; type=AstValString
- info: "Additional information and download instructions"; type=AstValString
- language: "Language of case (default is English)"; type=AstValString
$configureGameSummary
- Configure game summary options
- Usage: configureGameSummary(summary="")
- Parameters:
- summary: "Summary to show in listing and on cover page"; type=AstValString; default=""
$configureHints
- Configure hint options and hints section
- Usage: configureHints(autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureLeadDb
- Configure location data options (what database to use for looking up locations)
- Usage: configureLeadDb(version="v2", versionPrevious="", seed= NONE, leadPlugin= NONE)
- Parameters:
- version: "Version of the location data"; type=AstValString; default="v2"
- versionPrevious: "Version of the previous location data (used to help check for migration problems)"; type=AstValString; default=""
- seed: "Random number generator seed used for randomizing unused leads"; type=AstValString
- leadPlugin: "name of plugin used for things like generating dynamic lead numbers, etc."; type=AstValString
$configureLeads
- Configure leads options and leads section
- Usage: configureLeads(autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureLocale
- Configure locale options
- Usage: configureLocale(language="en")
- Parameters:
- language: "Language code [en|fr|es|...]"; type=AstValString; default="en"
$configureParser
- Configure parser options
- Usage: configureParser()
$configureRenderer
- Configure renderer options
- Usage: configureRenderer(doubleSided=true, latexPaperSize="letter", latexFontSize=10, autoStyleQuotes=false, timeStyle="box", defaultTimeStyle="bold", zeroTimeStyle="hide")
- Parameters:
- doubleSided: "Lay out page numbers for double sided printing (alternating corners)"; type=AstValBool; default=True
- latexPaperSize: "Latex paper size"; type=['letter', 'A4', 'B6', 'A5']; default="letter"
- latexFontSize: "Latex font size"; type=AstValNumber; default=10
- autoStyleQuotes: "Auto style unicode left and right quote markers for more subtle font look (can cause hard-to-diagnose latex compilation errors)"; type=AstValBool; default=False
- timeStyle: "How to display elapsed time in leads"; type=['box', 'header', 'hide']; default="box"
- defaultTimeStyle: "Whether to hide or dim default times"; type=['hide', 'normal', 'bold', 'red']; default="bold"
- zeroTimeStyle: "Whether to say explicitly when leads have 0 time"; type=['hide', 'normal', 'bold', 'red']; default="hide"
$configureReport
- Configure reports options and reports section
- Usage: configureReport(autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureSection
- Configure an arbitrary section
- Usage: configureSection(id, autoLead= NONE, time= NONE, timePos= NONE, sectionColumns= NONE, leadColumns= NONE, sectionBreak= NONE, leadBreak= NONE, heading= NONE, toc= NONE, childToc= NONE, childPlugins= NONE, dividers= NONE, address= NONE, copy= NONE, render= NONE, blank= NONE, mStyle= NONE, continuedFrom= NONE, headingStyle= NONE, childHeadingStyle= NONE, layout= NONE, label= NONE, sortGroup= NONE, sortKey= NONE, multiPage= NONE, autoLeadImages= NONE, arriveFrom= NONE, colBreak= NONE)
- Parameters:
- id: "Section ID"; type=AstValString; required
- autoLead: "Automatically assign a lead id"; type=AstValBool
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end', 'hidden']
- sectionColumns: "Number of columns in Section main text"; type=AstValNumber
- leadColumns: "Number of columns in layout for child leads"; type=AstValNumber
- sectionBreak: "Break style for section"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- leadBreak: "Break style for child leads"; type=['', 'none', 'before', 'after', 'solo', 'beforeFacing', 'afterFacing', 'soloFacing', 'soloAfterFacing']
- heading: "Heading text shown on page (blank for none)"; type=AstValString
- toc: "Label for table of contents (blank to hide from table of contents)"; type=AstValString
- childToc: "Label for table of contents for children (blank to hide from table of contents)"; type=AstValString
- childPlugins: "Name of the plugins to run on children"; type=AstValString
- dividers: "Should we show dividers between child entries"; type=AstValBool
- address: "Address line under heading/label; set to 'auto' to auto grab from database or '' blank to mean none"; type=AstValString
- copy: "Entry id to copy contents from, or 'next' to copy from next lead"; type=AstValString
- render: "If set false this lead will not render"; type=AstValBool
- blank: "If set true then we will not show the header or add this to toc"; type=AstValBool
- mStyle: "Set to a string keyword that informs mind map drawing"; type=AstValString
- continuedFrom: "Add label saying 'continued from this lead"; type=AstValString
- headingStyle: "style for rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[
, ] - sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[
, ] - autoLeadImages: "Insert images related to leads (building illustrations) automatically?"; type=AstValBool
- arriveFrom: "Specify what lead players should arrive here from (for calculated puzzles)"; type=AstValString
- colBreak: "Set to true or false to override default column breaking"; type=AstValBool
$configureTags
- Configure tag options
- Usage: configureTags(alwaysNumber=true, consistentNumber=true, mode="sequential", sortRequire=true)
- Parameters:
- alwaysNumber: "Always use marker ids like A1,B1,...A2,B2 instead of A,B..A2,B2, even if < 26 markers; default true; note the caselog.pdf need to amtch)"; type=AstValBool; default=True
- consistentNumber: "If alwaysNumber is false, you can set this to change A,B,... to A1,B1,... if and only if there are enough markers to reach A2, etc."; type=AstValBool; default=True
- mode: "mode to use when generating obfuscated labels"; type=['sequential', 'firstLetter', 'hashed']; default="sequential"
- sortRequire: "When presenting list of required tags for the day, sort them by (obfuscated) tag label; default true; set this to false if you set sequential false and order of hint checking is important; if false, order in requirement list will match order that tags were declared"; type=AstValBool; default=True
$criminalHistory
- summarizes a criminal history
- Usage: criminalHistory(id, show= NONE, hide= NONE, bullets=true): {targetblock}
- Parameters:
- id: "lead id"; type=AstValString; required
- show: "which features of the criminal to show (blank for all)"; type=AstValString
- hide: "which features of the criminal to hide (blank for none)"; type=AstValString
- bullets: "use bullets on rows"; type=AstValBool; default=True
- :{targetblock} - a braced group of text to operate on
$currentLead
- return the current lead id as a string
- Usage: currentLead()
$date
- format a date into a nice string
- Usage: date(date, year=true)
- Parameters:
- date: "Date in form mm/dd/yyyy"; type=AstValString; required
- year: "should show year?"; type=AstValBool; default=True
$dayDate
- format a day's date into a nice string
- Usage: dayDate(day, type="dayDate")
- Parameters:
- day: "Day number"; type=AstValNumber; required
- type: "What type of info to show"; type=['dayTimeStart', 'dayDate', 'dayDateNoYear', 'mmddyyyy', 'dayOfWeek', 'timeStart']; default="dayDate"
$dayInstructions
- Generate instructions for the day
- Usage: dayInstructions(day, when)
- Parameters:
- day: "Number of the day"; type=AstValNumber; required
- when: "From [start|end]"; type=['start', 'end']; required
$debug
- debug print value
- Usage: debug(expression)
- Parameters:
- expression: "Expression to print in debug mode"; required
$debugFonts
- do a test of all available fonts
- Usage: debugFonts(size= NONE, scale= NONE, color= NONE, hyphenate=true, monoSpace=false, showInfo=true, verbose=false, infoFull=false, toc=true): {targetblock}
- Parameters:
- size: "base font size"; type=[
, ] - scale: "scale the font, use number from 0.1 to 10.0"; type=AstValNumber
- color: "override default color with color name"; type=AstValString
- hyphenate: "set to false to avoid splitting end of line words"; type=AstValBool; default=True
- monoSpace: "set to true to force monospacing of font; defaults false)"; type=AstValBool; default=False
- showInfo: "show font metadata (family, designer, license, embedding, whether monospaced, etc) for each font; defaults true"; type=AstValBool; default=True
- verbose: "show the full multi-line font metadata; defaults false, which shows a compact one-line summary (identity, glyph count, monospacing, embedding) instead"; type=AstValBool; default=False
- infoFull: "when verbose, show the full untruncated license text; defaults false"; type=AstValBool; default=False
- toc: "add hierarchical table-of-contents/bookmark entries for the font folders and each font filename; defaults true (the visible folder/subfolder headers are always shown regardless)"; type=AstValBool; default=True
- :{targetblock} - a braced group of text to operate on
- size: "base font size"; type=[
$debugImages
- show all known images that can be embedded in the casebook, each rendered along with the relative path used to embed it
- Usage: debugImages(width=0.5, height=0.25, filter= NONE, location="all", showInfo=true, toc=true)
- Parameters:
- width: "Width of each image (fraction where 0.5 is half page width) or string ending in [in|cm]; defaults 0.5"; type=[
, ]; default=0.5 - height: "Max height cap of each image (fraction of page height) or string ending in [in|cm]; defaults 0.25"; type=[
, ]; default=0.25 - filter: "only show images whose relative path contains this substring (case-insensitive)"; type=AstValString
- location: "which image directories to include; defaults all"; type=['all', 'local', 'shared']; default="all"
- showInfo: "show file size and pixel dimensions next to each image path; defaults true"; type=AstValBool; default=True
- toc: "add table-of-contents/bookmark entries for the image sections and folders; defaults true"; type=AstValBool; default=True
- width: "Width of each image (fraction where 0.5 is half page width) or string ending in [in|cm]; defaults 0.5"; type=[
$declareConst
- Declarts a variable
- Usage: declareConst(var, val, desc="")
- Parameters:
- var: "The variable name to set"; type=AstValIdentifier; required
- val: "Initial value for the variable"; required
- desc: "Description"; default=""
$declareVar
- Declarts a variable
- Usage: declareVar(var, val= NONE, desc="")
- Parameters:
- var: "The variable name to set"; type=AstValIdentifier; required
- val: "Initial value for the variable"
- desc: "Description"; default=""
$defineConcept
- Defines a tag
- Usage: defineConcept(id, label="")
- Parameters:
- id: "The dotted identifier used to refer to the tag"; type=AstValString; required
- label: "Longer label describing the tag"; type=AstValString; default=""
$defineFont
- Defines a font
- Usage: defineFont(id, path="", size= NONE, scale= NONE, color= NONE, hyphenate=false, monoSpace=false, lineSpace= NONE, ignoreDupe=false)
- Parameters:
- id: "The id that will refer to the font"; type=AstValString; required
- path: "Path to the font within the shared fonts dir (specify 'default' to base on default font)"; type=AstValString; default=""
- size: "base font size (optional; prefer use of scale)"; type=[
, ] - scale: "scale the font, use number from 0.1 to 10.0"; type=AstValNumber
- color: "override default color with color name see https://www.latextemplates.com/svgnames-colors)"; type=AstValString
- hyphenate: "set to true to let latex hyphenate and split long words at end of lines; defaults false)"; type=AstValBool; default=False
- monoSpace: "set to true to force monospacing of font; defaults false)"; type=AstValBool; default=False
- lineSpace: "line spacing multiplier applied when this font is used (e.g. 1.5 for 1.5x); leave blank for normal"; type=AstValNumber
- ignoreDupe: "if true this will be ignored if a font with this id already exists; otherwise an error will be thrown"; type=AstValBool; default=False
$defineFunc
- define a new function
- Usage: defineFunc(id, params= NONE, description= NONE, customData= NONE, targetBlockCount= NONE): {targetblock}
- Parameters:
- id: "Id name of the function"; type=AstValIdentifier; required
- params: "List of parameters"; type=AstValList
- description: "description of function"; type=AstValString
- customData: "customData set during function definition"
- targetBlockCount: "number or 'none' or 'any'"; type=[lib.casebook.jrastvals.AstValString | lib.casebook.jrastvals.AstValNumber]
- :{targetblock} - a braced group of text to operate on
$defineQuestion
- Create a question
- Usage: defineQuestion(id= NONE, summary= NONE, points= NONE, type= NONE, size= NONE, lines= NONE, choices= NONE): {targetblock}
- Parameters:
- id: "Id of the question (like Q1)"; type=AstValString
- summary: "Summary of question for repeating in answer"; type=AstValString
- points: "Max points the question is worse"; type=[
, ] - type: "Question type"; type=AstValString
- size: "How much size for answer space"; type=AstValNumber
- lines: "How many lines for answer spaces"; type=AstValNumber
- choices: "List of choices, separated by | character"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$defineTag
- Defines a tag
- Usage: defineTag(tagId, deadline=-1, label="", location= NONE, obfuscatedLabel= NONE, dependencies= NONE)
- Parameters:
- tagId: "The dotted identifier used to refer to the tag"; type=AstValString; required
- deadline: "Deadline day # for the tag (leave blank for no deadline)"; type=AstValNumber; default=-1
- label: "Longer label describing the tag"; type=AstValString; default=""
- location: "Override default (document) location; use 'back' for back of book"; type=AstValString
- obfuscatedLabel: "Override default (document) obfuscated label; set to 'label' to use the label"; type=AstValString
- dependencies: "list of tags we are dependent on when giving hints"; type=AstValString
$designateFile
- Designate an uploaded file (local or shared) to be copied into certain builds
- Usage: designateFile(path, tag="publish", rename="")
- Parameters:
- path: "Relative path to uploaded file"; type=AstValString; required
- tag: "Tag which says how to use the file"; type=['debug', 'publish']; default="publish"
- rename: "Rename copied version of file when it is moved to publish set, etc."; type=AstValString; default=""
$didCircleTag
- Check if user circled tag
- Usage: didCircleTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$didGainTag
- Check if user gained tag
- Usage: didGainTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$didMarkTag
- Check if user marked tag
- Usage: didMarkTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$didStrikeTag
- Check if user underlined tag
- Usage: didStrikeTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$didUnderlineNotCircleTag
- Check if user marked tag
- Usage: didUnderlineNotCircleTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$didUnderlineTag
- Check if user underlined tag
- Usage: didUnderlineTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$dither
- Return cached path to ditherized version of an image file, ditherizing it the first time
- Usage: dither(path, mode="bw")
- Parameters:
- path: "Image file path"; type=AstValString; required
- mode: "Ditherization mode"; type=AstValString; default="bw"
$divider
- divider insert
- Usage: divider(id= NONE)
- Parameters:
- id: "Divider id"; type=AstValString
$dropCaps
- Drop cap effect for some text (make first letter BIG)
- Usage: dropCaps(style="letter", lines=3, multi="wrap", fIndent=0.25, nIndent=0.75, lHang=0): {targetblock}
- Parameters:
- style: "drop cap style"; type=['letter', 'word', 'none', 'bold']; default="letter"
- lines: "height in lines"; type=AstValNumber; default=3
- multi: "how to handle multiple paragraphs"; type=['none', 'wrap', 'gap']; default="wrap"
- fIndent: "findent"; type=AstValNumber; default=0.25
- nIndent: "nIndent"; type=AstValNumber; default=0.75
- lHang: "lHang"; type=AstValNumber; default=0
- :{targetblock} - a braced group of text to operate on
$effect
- Build and cache (add to game file list) an effect version of image
- Usage: effect(path, effect)
- Parameters:
- path: "Image file path"; type=AstValString; required
- effect: "Effect key"; type=AstValString; required
$effectUp
- text effect that makes first letter bold and bigger, and remaining words uppercase
- Usage: effectUp(text, enabled=true, style= NONE)
- Parameters:
- text: "the text to operate one"; type=AstValString; required
- enabled: "set to false to disable"; type=AstValBool; default=True
- style: "optional style (not supported yet)"; type=AstValString
$embedFile
- Embed another pdf/text file in output
- Usage: embedFile(path, pages="-", scale= NONE, pageStyle="", toc= NONE, layout= NONE)
- Parameters:
- path: "Relative path to file to embed"; type=AstValString; required
- pages: "Comma separated page list"; type=AstValString; default="-"
- scale: "Scaled for embed"; type=AstValNumber
- pageStyle: "Page style to use for the page (use 'empty' to hide footer)"; type=AstValString; default=""
- toc: "Table of contents label"; type=AstValString
- layout: "Layout style"; type=['default', 'bookletNonStitched', 'bookletStitched']
$embedLead
- Return inline
- Usage: embedLead(id="")
- Parameters:
- id: "Lead id"; type=AstValString; default=""
$evalFunctionTargetsAsString
- render function targets at this location
- Usage: evalFunctionTargetsAsString()
$event
- Boilerplate language to schedule an event
- Usage: event(lead= NONE, day= NONE, time= NONE, when= NONE, mandatory= NONE, label= NONE, duration= NONE, whenOvertime= NONE, deadline= NONE): {targetblock}
- Parameters:
- lead: "What lead player should read at schedule time"; type=AstValString
- day: "Day number when"; type=AstValNumber
- time: "Time when"; type=AstValString
- when: "When they can read/visit the lead"; type=AstValString
- mandatory: "is it mandatory"; type=AstValBool
- label: "Label of the event"; type=AstValString
- duration: "Duration of the inline event for the lead"; type=AstValNumber
- whenOvertime: "Provide optional info for when to say what happend if scheduled past evening event (specify custom text or one of: evening|nextDay|skip)"; type=AstValString
- deadline: "Optional deadline text"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$fileUrl
- generate a public absolute url to an attached file
- Usage: fileUrl(path= NONE)
- Parameters:
- path: "path (name) of attached game file to make a link to (useful with multimedia files)"; type=AstValString
$fingerPrint
- insert a fingerprint image (DEPRECATED; instead use $image($fingerprintPath(..)))
- Usage: fingerPrint(id, finger, impression="2", style="", width="1in", align= NONE, showId=false, caption= NONE)
- Parameters:
- id: "lead id"; type=AstValString; required
- finger: "finger id in form L# or R# where # is finger number from 1-5"; type=AstValString; required
- impression: "the impression id (1=rolled clean in book, 2=dirtyslightlydif)"; type=AstValString; default="2"
- style: "style variant"; type=AstValString; default=""
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ]; default="1in" - align: "Alignment"; type=['left', 'center', 'right']
- showId: "show the person ID?"; type=AstValBool; default=False
- caption: "Alternative caption when not showing id"; type=AstValString
$fingerPrintPath
- get the path to the image of a fingerprint, so it can be used in an $image() function call
- Usage: fingerPrintPath(id, finger, impression="2")
- Parameters:
- id: "lead id"; type=AstValString; required
- finger: "finger id in form L# or R# where # is finger number from 1-5"; type=AstValString; required
- impression: "the impression id (1=rolled clean in book, 2=dirtyslightlydif)"; type=AstValString; default="2"
$fingerPrintSet
- insert a fingerprint image
- Usage: fingerPrintSet(id, style="", showId=false, caption= NONE)
- Parameters:
- id: "lead id"; type=AstValString; required
- style: "style variant"; type=AstValString; default=""
- showId: "show the person ID?"; type=AstValBool; default=False
- caption: "Alternative caption when not showing id"; type=AstValString
$flatAlpha
- Return cached path to alpha flattened (white background) version of an image file
- Usage: flatAlpha(path)
- Parameters:
- path: "Image file path"; type=AstValString; required
$footnote
- Create a footnote
- Usage: footnote(text, symbol= NONE, side=false)
- Parameters:
- text: "Footnote text"; type=AstValString; required
- symbol: "Optional symbol index to use instead of arabic number (symbol 1 is asterisk) "; type=AstValNumber
- side: "Set to true to show note on side margin instead of at bottom"; type=AstValBool; default=False
$form
- Form field insert
- Usage: form(type, size= NONE, choices= NONE)
- Parameters:
- type: "Form field type"; type=['short', 'mini', 'score', 'long', 'multiline', 'multipleChoice', 'checkAll']; required
- size: "Size of field"; type=AstValNumber
- choices: "List of choices, separated by | character"; type=AstValString
$formCheckList
- Show choices in a list with checkboxes
- Usage: formCheckList(choices, other=false)
- Parameters:
- choices: "Choices separated by | character"; type=AstValString; required
- other: "Include an other option at end?"; type=AstValBool; default=False
$formLine
- Single line form field
- Usage: formLine(margin="1in", pt=1, after= NONE)
- Parameters:
- margin: "Margin to subtract from remainder of length on current line"; type=[
, ]; default="1in" - pt: "Point thickness of line (default 1 for 1pt)"; type=AstValNumber; default=1
- after: "Text to display at end of line"; type=AstValString
- margin: "Margin to subtract from remainder of length on current line"; type=[
$formNumber
- Short number line or box
- Usage: formNumber(width="1cm", after= NONE)
- Parameters:
- width: "Width of box"; type=[
, ]; default="1cm" - after: "Text to display at end of line"; type=AstValString
- width: "Width of box"; type=[
$formRadioList
- Show choices in a list with checkboxes
- Usage: formRadioList(choices, other=false)
- Parameters:
- choices: "Choices separated by | character"; type=AstValString; required
- other: "Include an other option at end?"; type=AstValBool; default=False
$formShort
- Short line form field
- Usage: formShort(width="2in", pt=1, after= NONE)
- Parameters:
- width: "Width of short form"; type=[
, ]; default="2in" - pt: "Point thickness of line (default 1 for 1pt)"; type=AstValNumber; default=1
- after: "Text to display at end of line"; type=AstValString
- width: "Width of short form"; type=[
$formText
- Multi line text form field
- Usage: formText(lines=2, width= NONE, pt=0.5)
- Parameters:
- lines: "Number of lines"; type=AstValNumber; default=2
- width: "Width of form line"; type=[
, ] - pt: "Point thickness of line (default 0.5 for 0.5pt)"; type=AstValNumber; default=0.5
$format
- Format text
- Usage: format(style="font", font= NONE, size= NONE, hyphenate=true, lineSpace= NONE, tight= NONE, box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE): {targetblock}
- Parameters:
- style: "style for formatting"; type=['', 'font', 'radio', 'news', 'handwriting', 'typewriter', 'choice', 'warning', 'culture', 'dayTest', 'quote', 'tornYellow', 'tornGray', 'compact', 'ttcompact', 'tight', 'group']; default="font"
- font: "font id previously set with defineFont()"; type=AstValString
- size: "size of font from [tiny|script|footnote|small|normal|large|Large|LARGE|huge|Huge|fs## (point size)]"; type=[
, ] - hyphenate: "set to false to avoid splitting end of line words"; type=AstValBool; default=True
- lineSpace: "Change line spacing"; type=AstValNumber
- tight: "tight paragraph spacing"; type=AstValBool
- box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$formatList
- format a (numbered) list
- Usage: formatList(indent=true, divider= NONE): {targetblock}
- Parameters:
- indent: "Indent the paragraphs?"; type=AstValBool; default=True
- divider: "Divider to use between items"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$gainDecoy
- Create and have the player gain a decoy red herring tag
- Usage: gainDecoy(id="", box= NONE, deadline=-1, obfuscatedLabel= NONE)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; default=""
- box: "box style"; type=AstValString
- deadline: "Deadline day # for the tag (leave blank for no deadline)"; type=AstValNumber; default=-1
- obfuscatedLabel: "Override default (document) obfuscated label; set to 'label' to use the label"; type=AstValString
$gainTag
- Mark a tag
- Usage: gainTag(id, box= NONE, related= NONE)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; required
- box: "box style"; type=AstValString
- related: "add text saying related to this"; type=AstValString
$get
- Gets a variable if its set, or default val if not
- Usage: get(var, val= NONE)
- Parameters:
- var: "The variable name to set"; type=AstValIdentifier; required
- val: "The default value if the variable is not set"
$goLead
- Add text to go to lead
- Usage: goLead(id, style="default", back=false, bullet= NONE)
- Parameters:
- id: "ID of lead"; type=AstValString; required
- style: "style to show lead info"; type=['default', 'full', 'nolabel', 'plainid', 'page', 'pageparen', 'pagenum']; default="default"
- back: "tell them to come back after they visit lead"; type=AstValBool; default=False
- bullet: "use a bullet if on its own line"; type=AstValBool
$hasTag
- Check if user has tag
- Usage: hasTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$headerHere
- Signify that the lead header should go HERE (instead of at top of lead)
- Usage: headerHere()
$hrule
- generate an hrule
- Usage: hrule()
$image
- Insert an image
- Usage: image(path, style= NONE, width= NONE, height= NONE, borderWidth= NONE, padding= NONE, align= NONE, caption= NONE, captionPos="bottom", captionSize= NONE, rule=false, angle= NONE, wrap=false)
- Parameters:
- path: "Relative path to file image"; type=AstValString; required
- style: "Choose from a preset style"; type=['frame', 'plain', 'bordered']
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ] - height: "Height (fraction where 0.5 is half page height; use 'remaining' to size to remaining space on page)"; type=AstValString
- borderWidth: "border width (in points; 0 for none); default 0"; type=AstValNumber
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- align: "Alignment"; type=['left', 'center', 'right']
- caption: "caption to show under image"; type=AstValString
- captionPos: "Position for caption'"; type=['top', 'bottom']; default="bottom"
- captionSize: "Size of caption (default='normal')"; type=AstValString
- rule: "put a side rule on either side of the image"; type=AstValBool; default=False
- angle: "rotation angle; default 0"; type=AstValNumber
- wrap: "Wrap subsequent text around image (must use align left)"; type=[
, , ]; default=False
$imageBehind
- put an image behind text or other contents
- Usage: imageBehind(path, width=1, opacity=1.0, opacityImage= NONE, opacityText= NONE, padding=0.025, height= NONE, scale="stretch", align="center", shadow=false, caption= NONE, captionPos="top", captionSize= NONE, paddingTop= NONE, font= NONE, size= NONE): {targetblock}
- Parameters:
- path: "Relative path to file image"; type=AstValString; required
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ]; default=1 - opacity: "fraction (0 to 1)"; type=AstValNumber; default=1.0
- opacityImage: "fraction (0 to 1)"; type=AstValNumber
- opacityText: "fraction (0 to 1)"; type=AstValNumber
- padding: "padding fraction (default 0.025)"; type=AstValNumber; default=0.025
- height: "Force height (fraction of page; leave blank to match text"; type=AstValNumber
- scale: "Scaling mode "; type=['zoom', 'stretch', 'image']; default="stretch"
- align: "Alignment"; type=['center', 'left']; default="center"
- shadow: "Add drop shadow to image background?"; type=AstValBool; default=False
- caption: "caption to show under image"; type=AstValString
- captionPos: "Position for caption"; type=['top', 'bottom']; default="top"
- captionSize: "Size of caption; default='normal'"; type=AstValString
- paddingTop: "extra Padding at top"; type=AstValString
- font: "font id previously set with defineFont()"; type=AstValString
- size: "size of font from "; type=[
, ] - :{targetblock} - a braced group of text to operate on
$imageMask
- mask text with an image pair; useful for things like a burned note effect
- Usage: imageMask(path, width=1, align="center", caption= NONE, captionPos="bottom", captionSize= NONE): {targetblock}
- Parameters:
- path: "Relative path to file image"; type=AstValString; required
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ]; default=1 - align: "Alignment"; type=['center', 'left']; default="center"
- caption: "caption to show under image"; type=AstValString
- captionPos: "Position for caption"; type=['top', 'bottom']; default="bottom"
- captionSize: "Size of caption (default='normal')"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$imageOverlay
- put an image in fromt of text or other contents
- Usage: imageOverlay(path, width=1, height, opacity=1.0, align="center", caption= NONE, captionPos="top", captionSize= NONE): {targetblock}
- Parameters:
- path: "Relative path to file image"; type=AstValString; required
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ]; default=1 - height: "Height (fraction of page or string ending in [in|cm]"; type=[
, ]; required - opacity: "fraction (0 to 1)"; type=AstValNumber; default=1.0
- align: "Alignment"; type=['center', 'left']; default="center"
- caption: "caption to show under image"; type=AstValString
- captionPos: "Position for caption"; type=['top', 'bottom']; default="top"
- captionSize: "Size of caption; default='normal'"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$imagePathFromLead
- return path to image related to this lead or blank string if not found
- Usage: imagePathFromLead(lead= NONE)
- Parameters:
- lead: "Lead id string"; type=AstValString
$inline
- Create inline
- Usage: inline(link="", label="", time= NONE, timePos="", demerits=0, why="", back=false, mLabel=""): {targetblock}
- Parameters:
- link: "Text link"; type=AstValString; default=""
- label: "Label for new lead"; type=AstValString; default=""
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end']; default=""
- demerits: "Demerit checkboxes"; type=AstValNumber; default=0
- why: "why text (shown after demerit instruction)"; type=AstValString; default=""
- back: "direct them to return after visiting inline lead?"; type=AstValBool; default=False
- mLabel: "Label for mindmap link"; type=AstValString; default=""
- :{targetblock} - a braced group of text to operate on
$inlineHint
- Create inline
- Usage: inlineHint(link="", label="", time= NONE, timePos="", demerits=2, why="", back=false, mLabel=""): {targetblock}
- Parameters:
- link: "Text link"; type=AstValString; default=""
- label: "Label for new lead"; type=AstValString; default=""
- time: "Duration of lead (in minutes)"; type=AstValNumber
- timePos: "Position to add time instruction"; type=['', 'start', 'end']; default=""
- demerits: "Demerit checkboxes"; type=AstValNumber; default=2
- why: "why text (shown after demerit instruction)"; type=AstValString; default=""
- back: "direct them to return after visiting inline lead?"; type=AstValBool; default=False
- mLabel: "Label for mindmap link"; type=AstValString; default=""
- :{targetblock} - a braced group of text to operate on
$instructionsEndLastDay
- Display boilerplate instructions to wrap up your case
- Usage: instructionsEndLastDay(day, overtime=false, demerits= NONE, demeritsPerLead=0, goLead= NONE)
- Parameters:
- day: "Day number"; type=AstValNumber; required
- overtime: "Allow player to go into overtime"; type=AstValBool; default=False
- demerits: "Demerits for going into overtime"; type=AstValNumber
- demeritsPerLead: "Demerits per overtime lead"; type=AstValNumber; default=0
- goLead: "id of lead to go to to end case"; type=AstValString
$instructionsEvening
- Display boilerplate instructions about how an evening event works
- Usage: instructionsEvening(day, next, reputationBonus=true, reputationBonusAll=0, customBonus= NONE, forceHintEvery=2, final=false, demeritsPerLead=0, timeAdvances=false, overtimeEnd="midnight", recommendedTags= NONE, recommended=0, required=0)
- Parameters:
- day: "Day number"; type=AstValNumber; required
- next: "Next lead to go to after they finish"; type=AstValString; required
- reputationBonus: "Instruct them about reputation bonuses"; type=AstValBool; default=True
- reputationBonusAll: "Give them extra if they found all"; type=AstValNumber; default=0
- customBonus: "Custom bonus text"; type=AstValString
- forceHintEvery: "Instruct them they must read hints for required marker"; type=AstValNumber; default=2
- final: "Final evening"; type=AstValBool; default=False
- demeritsPerLead: "Demerits per overtime lead"; type=AstValNumber; default=0
- timeAdvances: "Does time advance in overtime"; type=AstValBool; default=False
- overtimeEnd: "When does overtime end"; type=AstValString; default="midnight"
- recommendedTags: "comma separated tag list"; type=AstValString
- recommended: "How many tags are recommended"; type=AstValNumber; default=0
- required: "How many tags are required"; type=AstValNumber; default=0
$instructionsGame
- Display boilerplate instructions about how to play
- Usage: instructionsGame(directoryVersion="latest", dayCount= NONE, basicLog=false, caseLog=true, dailyLog=true, freeLeads=true, campaignLog=false, trackTime=true, events=true, flexTime=true, markers=true, fingerPrints=false, criminalHist=false, additionalMaterial=false, contacts=false, researchGuide=true, irp=false, canvas=false, wrapUp=true, hints=true, hintsCipher=false, tipsBasic=true, tipsHard=false, missingLeads=false, embedPdfs=true, extraText= NONE)
- Parameters:
- directoryVersion: "what version of directory do they need"; type=AstValString; default="latest"
- dayCount: "how many days; leave blank to auto calculate"; type=AstValNumber
- basicLog: "require a basic log sheet"; type=AstValBool; default=False
- caseLog: "require a case log sheet with markers, etc."; type=[
, ]; default=True - dailyLog: "require a daily time log sheet"; type=AstValBool; default=True
- freeLeads: "leads not in book are free"; type=AstValBool; default=True
- campaignLog: "require the campaign log"; type=AstValBool; default=False
- trackTime: "include instructions about tracking time"; type=AstValBool; default=True
- events: "include instructions about events"; type=AstValBool; default=True
- flexTime: "include instructions about flextime mode"; type=AstValBool; default=True
- markers: "show info about markers"; type=AstValBool; default=True
- fingerPrints: "include fingerprints instructions"; type=AstValBool; default=False
- criminalHist: "include criminal history instructions"; type=AstValBool; default=False
- additionalMaterial: "include other directory/materials reminder"; type=AstValBool; default=False
- contacts: "include instructions about contacts"; type=AstValBool; default=False
- researchGuide: "include research Guide"; type=AstValBool; default=True
- irp: "include instructions about IRP points"; type=AstValBool; default=False
- canvas: "include instructions about canvasing"; type=AstValBool; default=False
- wrapUp: "include instructions about wrapping up and having a final opportunity"; type=AstValBool; default=True
- hints: "show info about hints"; type=AstValBool; default=True
- hintsCipher: "include tips about ciphers, etc."; type=AstValBool; default=False
- tipsBasic: "include normal tips"; type=AstValBool; default=True
- tipsHard: "include tips about it being a hard case"; type=AstValBool; default=False
- missingLeads: "include reminder about paying for missing leads of some time"; type=AstValBool; default=False
- embedPdfs: "embed pdfs for case log, etc."; type=AstValBool; default=True
- extraText: "extra text in Markdown format (use \n for linebreaks)"; type=AstValString
$instructionsIrps
- Display boilerplate instructions about irps
- Usage: instructionsIrps(start= NONE, gain= NONE, use=false, lastUse=false, max= NONE, when= NONE): {targetblock}
- Parameters:
- start: "Tell player they are starting with this number of IRPs"; type=AstValNumber
- gain: "Tell player they are gaining this number of IRPs"; type=AstValNumber
- use: "Tell player to use them now"; type=AstValBool; default=False
- lastUse: "Is it players last chance to use irps"; type=AstValBool; default=False
- max: "Max irps player may spend now"; type=AstValNumber
- when: "When they can read/visit the leads? (blank for no comment)"; type=[
, ] - :{targetblock} - a braced group of text to operate on
$instructionsPostQuestionsResume
- Display boilerplate instructions to let player go back and read leads again
- Usage: instructionsPostQuestionsResume(day, demerits=0, tag= NONE, halve=true)
- Parameters:
- day: "Day number"; type=AstValNumber; required
- demerits: "Demerits for going into overtime"; type=AstValNumber; default=0
- tag: "tagid to make them mark if they choose to skip bonus day"; type=AstValString
- halve: "Tell them to halve their score if they change"; type=AstValBool; default=True
$instructionsPuzzle
- Display boilerplate instructions about a constructed puzzle lead
- Usage: instructionsPuzzle(label= NONE, penalty= NONE, textBelow= NONE): {targetblock}
- Parameters:
- label: "optional label of puzzle to use in blurb about looking it up"; type=AstValString
- penalty: "optional penalty markdown text if they lookup a bad lead"; type=AstValString
- textBelow: "Whether to put the text above or below the generic instructions"; type=AstValBool
- :{targetblock} - a braced group of text to operate on
$instructionsRecommendedTags
- Display boilerplate instructions to recommend player finds some non-required tags
- Usage: instructionsRecommendedTags(tags= NONE, recommended=0, required=0)
- Parameters:
- tags: "comma separated tag list"; type=AstValString
- recommended: "How many tags are recommended"; type=AstValNumber; default=0
- required: "How many tags are required"; type=AstValNumber; default=0
$instructionsScheduledEvent
- Display boilerplate instructions not to read entry unless triggering an event
- Usage: instructionsScheduledEvent()
$instructionsStartDay
- Tell the player some brief instructions of how to play using new event system
- Usage: instructionsStartDay(day, box="default", bonus=false, bonusReputation=0, bonusTag= NONE)
- Parameters:
- day: "Day number"; type=AstValNumber; required
- box: "Box style"; type=[
, ]; default="default" - bonus: "Is this a bonus day?"; type=AstValBool; default=False
- bonusReputation: "reputation for skipping bonus day"; type=AstValNumber; default=0
- bonusTag: "tag to make them mark if they choose to skip bonus day"; type=AstValString
$leave
- Text saying to leave because there is nothing for you here
- Usage: leave(reason= NONE, otherwise=true)
- Parameters:
- reason: "Reason player should leave"; type=AstValString
- otherwise: "Show a divider and otherwise"; type=AstValBool; default=True
$lederLine
- Display right-aligned element
- Usage: lederLine(leftText, rightText)
- Parameters:
- leftText: "Text for left side"; type=AstValString; required
- rightText: "Text for right side"; type=AstValString; required
$lipsum
- Add some test text
- Usage: lipsum(start=1, end=-1, length=0)
- Parameters:
- start: "starting paragraph index"; type=AstValNumber; default=1
- end: "ending paragraph index"; type=AstValNumber; default=-1
- length: "maxlimum length in characters (0 for no limit)"; type=AstValNumber; default=0
$literalFunctionTargetsAsString
- render function targets at this location
- Usage: literalFunctionTargetsAsString()
$logic
- Add mindmap node
- Usage: logic(target="", label="")
- Parameters:
- target: "target lead or concept"; type=AstValString; default=""
- label: "Link label"; type=AstValString; default=""
$logicConcept
- Add mindmap node
- Usage: logicConcept(target="", label="")
- Parameters:
- target: "target lead or concept"; type=AstValString; default=""
- label: "Link label"; type=AstValString; default=""
$logicFollowedBy
- Add mindmap node
- Usage: logicFollowedBy(source, label="")
- Parameters:
- source: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$logicFollows
- Add mindmap node
- Usage: logicFollows(target, label="")
- Parameters:
- target: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$logicImpliedBy
- Add mindmap node
- Usage: logicImpliedBy(source, label="")
- Parameters:
- source: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$logicImplies
- Add mindmap node
- Usage: logicImplies(target, label="")
- Parameters:
- target: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$logicIrrelevant
- Add mindmap node
- Usage: logicIrrelevant(label="")
- Parameters:
- label: "Link label"; type=AstValString; default=""
$logicProceed
- Add mindmap node
- Usage: logicProceed(target= NONE, label="")
- Parameters:
- target: "target lead or concept"; type=AstValString
- label: "Link label"; type=AstValString; default=""
$logicSuggestedBy
- Add mindmap node
- Usage: logicSuggestedBy(source, label="")
- Parameters:
- source: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$logicSuggests
- Add mindmap node
- Usage: logicSuggests(target, label="")
- Parameters:
- target: "Lead id"; type=AstValString; required
- label: "Link label"; type=AstValString; default=""
$marginNote
- Add a short bit of text to the left or right margin; note that this doesn't seem to work right currently; left margins not showing?
- Usage: marginNote(pos="left"): {targetblock}
- Parameters:
- pos: "position of note"; type=['left', 'right']; default="left"
- :{targetblock} - a braced group of text to operate on
$mark
- Mark checkboxes
- Usage: mark(type= NONE, count=0, demerits=0, culture=0, reputation=0, extra=0, helpful= NONE, why= NONE, upto=false)
- Parameters:
- type: "type of mark to make"; type=AstValString
- count: "How many to mark"; type=AstValNumber; default=0
- demerits: "Demerits to mark"; type=AstValNumber; default=0
- culture: "Culture boxes to mark"; type=AstValNumber; default=0
- reputation: "Reputation boxes to mark"; type=AstValNumber; default=0
- extra: "Extra boxes to mark"; type=AstValNumber; default=0
- helpful: "Instruct to mark only if helpful"; type=AstValBool
- why: "Label clarifying why"; type=AstValString
- upto: "Say up to (max)"; type=AstValBool; default=False
$mentionTags
- Just list some tags by their obfuscated ids (e.g. used when listing tags available for completionists)
- Usage: mentionTags(tags="")
- Parameters:
- tags: "list of tags"; type=AstValString; default=""
$missingTag
- Is player missing a tag
- Usage: missingTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$modifyText
- modify text
- Usage: modifyText(case= NONE): {targetblock}
- Parameters:
- case: "force case to uppercase, titlecase, or sentence case? [upper|title|sentence]"; type=['lower', 'upper', 'title', 'sentence']
- :{targetblock} - a braced group of text to operate on
$newsArticle
- an article
- Usage: newsArticle(style= NONE, block= NONE, dropCaps= NONE, headline= NONE, byline= NONE, headlineStyle= NONE, bylineStyle= NONE, divider= NONE, effectsOn= NONE, size= NONE): {targetblock}
- Parameters:
- style: "style variant"; type=AstValString
- block: "require this entire article to fit in a single block (column) together, dont split it"; type=AstValBool
- dropCaps: "Drop Caps style"; type=['letter', 'word']
- headline: "headline text"; type=AstValString
- byline: "byline text"; type=AstValString
- headlineStyle: "headline style variant"; type=AstValString
- bylineStyle: "byline style variant"; type=AstValString
- divider: "true to show divider at end of article, or specifiy divider id"; type=[
, ] - effectsOn: "use in interior commands like effectUp"; type=AstValBool
- size: "base font size"; type=[
, ] - :{targetblock} - a braced group of text to operate on
$newsBannerBox
- banner bax for right hand margin
- Usage: newsBannerBox(): {targetblock}
$newsByLine
- byline for article
- Usage: newsByLine(style="script", fit=false, bold=true): {targetblock}
- Parameters:
- style: "style variant"; type=AstValString; default="script"
- fit: "should force to fit on one line?"; type=AstValBool; default=False
- bold: "bold text?"; type=AstValBool; default=True
- :{targetblock} - a braced group of text to operate on
$newsEndLine
- helper to jsut say continued on Page X
- Usage: newsEndLine(text= NONE)
- Parameters:
- text: "text string (e.g. Continued on Page Four)"; type=AstValString
$newsGroup
- group of articles
- Usage: newsGroup(columns=3, raggedColumns= NONE): {targetblock}
- Parameters:
- columns: "number of columns"; type=AstValNumber; default=3
- raggedColumns: "disable column balancing?"; type=AstValBool
- :{targetblock} - a braced group of text to operate on
$newsHeadline
- headline for article
- Usage: newsHeadline(style="Large", fit=false, bold= NONE, underline= NONE, italic= NONE, case= NONE): {targetblock}
- Parameters:
- style: "style variant"; type=AstValString; default="Large"
- fit: "should force to fit on one line?"; type=AstValBool; default=False
- bold: "bold text?"; type=AstValBool
- underline: "underline text?"; type=AstValBool
- italic: "italic text?"; type=AstValBool
- case: "force case to uppercase, titlecase, or sentence case? [upper|title|sentence]"; type=['lower', 'upper', 'title', 'sentence']
- :{targetblock} - a braced group of text to operate on
$newsPaper
- a newspaper page
- Usage: newsPaper(style="nyTimes", day= NONE, date= NONE, dateString= NONE, dateStringExtra= NONE, columns= NONE, raggedColumns= NONE, priceString= NONE, issueString= NONE, bannerPath= NONE, bannerLines=true, font= NONE, fontSize= NONE, landscape=false, parSpaceHead=0.4, parSpaceBody=0.6, lineSpace=1.2, articleStyle= NONE, headlineStyle= NONE, bylineStyle= NONE, dropCaps= NONE, dropCapsMulti="none", indent=true, block= NONE, divider= NONE, effectsOn= NONE): {targetblock}
- Parameters:
- style: "style variant"; type=AstValString; default="nyTimes"
- day: "day number"; type=AstValNumber
- date: "date as string"; type=AstValString
- dateString: "arbitrary date string"; type=AstValString
- dateStringExtra: "arbitrary date string to add to date"; type=AstValString
- columns: "number of columns"; type=AstValNumber
- raggedColumns: "disable column balancing?"; type=AstValBool
- priceString: "price string (right hand margin)"; type=AstValString
- issueString: "issue string (left hand margin)"; type=AstValString
- bannerPath: "Relative path to file image"; type=AstValString
- bannerLines: "Put issue text etc inside banner lines below banner? If false they will be set above the banner bottom margin"; type=AstValBool; default=True
- font: "font id"; type=AstValString
- fontSize: "size in points"; type=AstValString
- landscape: "display paper in landscape mode?"; type=AstValBool; default=False
- parSpaceHead: "Change paragraph spacing for headline"; type=AstValNumber; default=0.4
- parSpaceBody: "Change paragraph spacing for body of article"; type=AstValNumber; default=0.6
- lineSpace: "Change line spacing"; type=AstValNumber; default=1.2
- articleStyle: "article style variant"; type=AstValString
- headlineStyle: "headline style variant"; type=AstValString
- bylineStyle: "byline style variant"; type=AstValString
- dropCaps: "Drop Caps style for articles"; type=['letter', 'word', 'none', 'bold']
- dropCapsMulti: "how to handle multiple paragraphs"; type=['none', 'wrap', 'gap']; default="none"
- indent: "indent paragraphs?"; type=AstValBool; default=True
- block: "require this all articles fit in a single (column) without splitting contents over a column"; type=AstValBool
- divider: "true to show divider at end of article, or specifiy divider id"; type=[
, ] - effectsOn: "use in interior commands like effectUp"; type=AstValBool
- :{targetblock} - a braced group of text to operate on
$newsRule
- an image for an article
- Usage: newsRule(style="nytimes")
- Parameters:
- style: "style variant"; type=AstValString; default="nytimes"
$onAfterDay
- Text saying if on or after day
- Usage: onAfterDay(day)
- Parameters:
- day: "Day number"; type=AstValNumber; required
$onDay
- Text saying if on day
- Usage: onDay(day)
- Parameters:
- day: "Day number"; type=AstValNumber; required
$otherwise
- Text saying otherwise
- Usage: otherwise()
$pageBackground
- Set the current page background (useful for covers, etc.)
- Usage: pageBackground(path, opacity=1.0)
- Parameters:
- path: "Relative path to image OR pdf file to use as the background image"; type=AstValString; required
- opacity: "Opacity of the background image"; type=AstValNumber; default=1.0
$pageStyle
- set the current page style
- Usage: pageStyle(style)
- Parameters:
- style: "Page style to use for the page (use 'empty' to hide footer)"; type=AstValString; required
$pointsLine
- Display a line with form after leder
- Usage: pointsLine(text)
- Parameters:
- text: "Text for left side"; type=AstValString; required
$pre
- format a text block (usually triple quotes) as code without justification and respecting linebreaks
- Usage: pre(text= NONE, monoSpace=true, markdown=false, box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE): {targetblock}
- Parameters:
- text: "Text to format"; type=AstValString
- monoSpace: "set to true to force monospacing of font; defaults false)"; type=AstValBool; default=True
- markdown: "text should be formatted in markdown format"; type=AstValBool; default=False
- box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$preBox
- format a text block (usually triple quotes) as code without justification and respecting linebreaks
- Usage: preBox(text= NONE, monoSpace=true, markdown=false, box="default", textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE): {targetblock}
- Parameters:
- text: "Text to format"; type=AstValString
- monoSpace: "set to true to force monospacing of font; defaults false)"; type=AstValBool; default=True
- markdown: "text should be formatted in markdown format"; type=AstValBool; default=False
- box: "box style"; type=AstValString; default="default"
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
- :{targetblock} - a braced group of text to operate on
- print value
- Usage: print(expression)
- Parameters:
- expression: "Expression to print"; required
$qrCode
- generate a qr code for a url
- Usage: qrCode(url= NONE, path= NONE, caption= NONE, height="1.75cm", style= NONE, hideUrl=false, hideIcon=false, box= NONE, backgroundLoop=false)
- Parameters:
- url: "url for qr code (leave this blank if specifying a path to an uploaded file for the game)"; type=AstValString
- path: "path (name) of attached game file to make a link to (useful with multimedia files); specify this OR url directly"; type=AstValString
- caption: "text caption; use [icon], [url], and or [verbiage] to expand"; type=AstValString
- height: "Height (e.g. 2cm)"; type=AstValString; default="1.75cm"
- style: "qrcode style"; type=['default', 'hide']
- hideUrl: "hide the url?"; type=AstValBool; default=False
- hideIcon: "hide the mediatype icon?"; type=AstValBool; default=False
- box: "box style (defaults to none, set to default to show a box)"; type=AstValString
- backgroundLoop: "if true, mark the url so the built-in pdf reader opens the audio in a separate tab and loops it"; type=AstValBool; default=False
$questionAnswer
- Display answer to a question
- Usage: questionAnswer(id= NONE, summary= NONE): {targetblock}
- Parameters:
- id: "Id of the question (like Q1)"; type=AstValString
- summary: "Override summary"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$questionTotal
- Display a line for them to record their total score from questions
- Usage: questionTotal()
$quote
- Quote format text
- Usage: quote(cite="", style="default", font= NONE, size= NONE, box= NONE, textColor= NONE, symbol= NONE, symbolColor= NONE, symbolSize= NONE, pos= NONE, width= NONE, backgroundColor= NONE): {targetblock}
- Parameters:
- cite: "citation credit (author); only used for quote type"; type=AstValString; default=""
- style: "style variant"; type=AstValString; default="default"
- font: "font id previously set with defineFont()"; type=AstValString
- size: "size of font"; type=[
, ] - box: "box style"; type=AstValString
- textColor: "color of Text"; type=AstValString
- symbol: "symbol"; type=AstValString
- symbolColor: "symbol color"; type=AstValString
- symbolSize: "symbol size"; type=AstValString
- pos: "position alignment of enclosing box"; type=AstValString
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[
, ] - backgroundColor: "background color"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$redact
- redact some text so it is unreadable
- Usage: redact(text= NONE): {targetblock}
- Parameters:
- text: "Text to redact if you don't want to put it in a target block"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$referDb
- Lookup a lead by NAME and display a link to it
- Usage: referDb(id= NONE, style="default")
- Parameters:
- id: "search string to look for"; type=AstValString
- style: "style to show lead info"; type=['default', 'full', 'nolabel', 'plainid', 'page', 'pageparen', 'pagenum']; default="default"
$referLead
- Add text to refer to lead
- Usage: referLead(id, style="default", back=false, bullet= NONE)
- Parameters:
- id: "ID of lead"; type=AstValString; required
- style: "style to show lead info"; type=['default', 'full', 'nolabel', 'plainid', 'page', 'pageparen', 'pagenum']; default="default"
- back: "tell them to come back after they visit lead"; type=AstValBool; default=False
- bullet: "use a bullet if on its own line"; type=AstValBool
$referTag
- refer to tag(s) by its obfuscated label
- Usage: referTag(id, combine="all")
- Parameters:
- id: "ID of tag"; type=AstValString; required
- combine: "combine style [and,or] for multiple tags"; type=['', 'any', 'all']; default="all"
$renderFunctionTargets
- render function targets at this location
- Usage: renderFunctionTargets()
$reportCoverageLeads
- In debug build, request a report on coverage of specific leads that have no entries
- Usage: reportCoverageLeads(leads, label= NONE)
- Parameters:
- leads: "comma separated list of leads"; type=AstValString; required
- label: "optional label for report"; type=AstValString
$reportCoverageName
- In debug build, request a report on coverage of people leads referring to a certain name
- Usage: reportCoverageName(range= NONE, neighborhood= NONE, nearLead= NONE, last= NONE, first= NONE, label= NONE)
- Parameters:
- range: "How far to look"; type=['in', 'near', 'global']
- neighborhood: "Neighborhood code (2-letters) to check in"; type=AstValString
- nearLead: "use neighborhood of this lead"; type=AstValString
- last: "last Name to search for"; type=AstValString
- first: "last Name to search for"; type=AstValString
- label: "optional label for report"; type=AstValString
$reportCoverageYellowCategory
- In debug build, request a report on coverage of leads referring to certain yellow categories
- Usage: reportCoverageYellowCategory(range= NONE, neighborhood= NONE, nearLead= NONE, pcat= NONE, pcatg= NONE, likeLead= NONE, label= NONE)
- Parameters:
- range: "How far to look"; type=['in', 'near', 'global']
- neighborhood: "Neighborhood code (2-letters) to check in"; type=AstValString
- nearLead: "use neighborhood of this lead"; type=AstValString
- pcat: "yellow pages pcat code(s) separate with |"; type=AstValString
- pcatg: "yellow pages pcatg code(s) separate with |"; type=AstValString
- likeLead: "use pcat and pcatg from this lead"; type=AstValString
- label: "optional label for report"; type=AstValString
$requireTag
- Tell user they should leave if they dont have tag and come back when they do
- Usage: requireTag(id, check="all", box= NONE, count= NONE, noif=false)
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
$reserveLead
- Reserve a lead from the unused list so it will not be used by the auto lead generator
- Usage: reserveLead(id= NONE)
- Parameters:
- id: "ID of lead"; type=AstValString
$returnLead
- Add text to go to lead
- Usage: returnLead(id= NONE, style="default", back=false, bullet= NONE)
- Parameters:
- id: "ID of lead"; type=AstValString
- style: "style to show lead info"; type=['default', 'full', 'nolabel', 'plainid', 'page', 'pageparen', 'pagenum']; default="default"
- back: "tell them to come back after they visit lead"; type=AstValBool; default=False
- bullet: "use a bullet if on its own line"; type=AstValBool
$scheduleIrp
- Boilerplate language to schedule an irp expenditure to read a lead
- Usage: scheduleIrp(lead, cost=1, when= NONE)
- Parameters:
- lead: "What lead player should read at schedule time"; type=AstValString; required
- cost: "Cost in IRP"; type=AstValNumber; default=1
- when: "When they can read/visit the lead"; type=[
, ]
$set
- Sets a variable to a value
- Usage: set(var, val)
- Parameters:
- var: "The variable name to set"; type=AstValIdentifier; required
- val: "The new value for the variable"; required
$setDefault
- Sets a variable to a value IF its not already set
- Usage: setDefault(var, val)
- Parameters:
- var: "The variable name to set"; type=AstValIdentifier; required
- val: "The new value for the variable"; required
$setTrack
- set track value
- Usage: setTrack(id, val="", min= NONE, max= NONE)
- Parameters:
- id: "track id (A,B,C,D)"; type=AstValString; required
- val: "value to set"; type=[
, ]; default="" - min: "min value"; type=AstValNumber
- max: "max value"; type=AstValNumber
$strikeCircledTag
- instruct user to strike a circled tag and then extra
- Usage: strikeCircledTag(id, check="all", box= NONE, count= NONE, noif=false, related= NONE): {targetblock}
- Parameters:
- id: "ID of tag (separate multiple by commas inside the single string)"; type=AstValString; required
- check: "check style for multiple tags"; type=['', 'any', 'all', 'some']; default="all"
- box: "box style"; type=AstValString
- count: "number of markers they must have"; type=AstValNumber
- noif: "hide the preliminary if"; type=AstValBool; default=False
- related: "add text saying related to this"; type=AstValString
- :{targetblock} - a braced group of text to operate on
$strikeTag
- Strike through a tag
- Usage: strikeTag(id, box= NONE, related= NONE)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; required
- box: "box style"; type=AstValString
- related: "add text saying related to this"; type=AstValString
$supressContinuedOn
- suppress the auto continued on next page
- Usage: supressContinuedOn()
$symbol
- Insert symbol (unicode/icon) text
- Usage: symbol(id, color= NONE, size= NONE)
- Parameters:
- id: "Symbol id"; type=AstValString; required
- color: "color"; type=AstValString
- size: "size"; type=AstValString
$telegramWesternUnion
- put an image behind text or other contents
- Usage: telegramWesternUnion(path="props/telegram/westernUnion1.png", width=1, opacity=1.0, opacityImage= NONE, opacityText=0.25, padding=0.075, height= NONE, scale="image", align="left", shadow=false, caption= NONE, captionPos="top", captionSize= NONE, paddingTop="1in", font="telegramFont", size= NONE): {targetblock}
- Parameters:
- path: "Relative path to file image"; type=AstValString; default="props/telegram/westernUnion1.png"
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[
, ]; default=1 - opacity: "fraction (0 to 1)"; type=AstValNumber; default=1.0
- opacityImage: "fraction (0 to 1)"; type=AstValNumber
- opacityText: "fraction (0 to 1)"; type=AstValNumber; default=0.25
- padding: "padding fraction (default 0.025)"; type=AstValNumber; default=0.075
- height: "Force height (fraction of page; leave blank to match text"; type=AstValNumber
- scale: "Scaling mode "; type=['zoom', 'stretch', 'image']; default="image"
- align: "Alignment"; type=['center', 'left']; default="left"
- shadow: "Add drop shadow to image background?"; type=AstValBool; default=False
- caption: "caption to show under image"; type=AstValString
- captionPos: "Position for caption"; type=['top', 'bottom']; default="top"
- captionSize: "Size of caption; default='normal'"; type=AstValString
- paddingTop: "extra Padding at top"; type=AstValString; default="1in"
- font: "font id previously set with defineFont()"; type=AstValString; default="telegramFont"
- size: "size of font from "; type=[
, ] - :{targetblock} - a braced group of text to operate on
$timeHere
- Show lead time here (instead of normally at start or end)
- Usage: timeHere()
$toc
- Generate and insert table of contents
- Usage: toc(columns= NONE)
- Parameters:
- columns: "Number of columns for table of contents (leave blank for automatic based on page width)"; type=AstValNumber
$underlineTag
- Underline a tag
- Usage: underlineTag(id, box= NONE, related= NONE)
- Parameters:
- id: "ID of tag (or list of ids)"; type=AstValString; required
- box: "box style"; type=AstValString
- related: "add text saying related to this"; type=AstValString
$url
- generate a clickable link to a url
- Usage: url(url= NONE, caption= NONE)
- Parameters:
- url: "url to link to"; type=AstValString
- caption: "optional caption to override the url text displayed"; type=AstValString
$vspace
- add or remove vertical space
- Usage: vspace(amount, force=false)
- Parameters:
- amount: "postive to add space, negative to remove; should be formatted as a number and then 'em' or 'pt' (eg. -5.5pt)"; type=AstValString; required
- force: "force the space and dont allow latex to tweak"; type=AstValBool; default=False
GLOBAL DATA
documentData
- defaultLocation: back
- printLocation: inline
- printStyle: simple
info
- name: None
- title: None
- subtitle: None
- authors: None
- version: None
- versionDate: None
- status: None
- difficulty: None
- duration: None
- cautions: None
- ai: None
- summary: None
- extraCredits: None
- url: None
- copyright: None
- keywords: None
- gameSystem: None
- gameDate: None
- campaignName: None
- campaignPosition: None
- clockMode: True
- features: {}
- gamePage: {}
leadDbData
- version: None
- versionPrevious: None
- seed: 0
- leadPlugin: None
localeData
- language: en
parserData
- DICT: EMPTY
rendererData
- doubleSided: True
- latexPaperSize: letter
- latexFontSize: 10
- isNarrowPaperSize: False
- autoStyleQuotes: False
- bypassErrorOnMissingImage: None
- timeStyle: box
- defaultTimeStyle: bold
- zeroTimeStyle: hide
tagData
- alwaysNumber: True
- consistentNumber: True
- mode: sequential
- sortRequire: True
targetBuildDebug
- targets:
- zip: False
targetBuildDraft
- targets:
- zip: False
targetBuildPreferred
- targets:
- zip: False
task
- VALUE: NULL