Reference for all built-in casebook functions and global data (casebook v7.07).
BUILT-IN FUNCTION DEFINITIONS
$_entryApplyOptions
- Internal function for applying options to entry
- Usage: _entryApplyOptions(id= None, isDefault= None, autoLead= None, time= None, timePos= None, sectionColumns= None, leadColumns= None, sectionBreak= None, leadBreak= None, childSectionBreak= 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
- isDefault: "If true this entry is only a default (placeholder) definition: any later entry with the same id under the same parent section replaces it entirely (label, options, body, child entries), and the case's own entry always wins whichever comes first, so a shared source file pulled in with $macro.include() can supply default leads a case may override. Must be a literal true/false and is only accepted as a heading $() option -- it is decided while parsing"; type=AstValBool
- 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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
$addContacts
- Add contacts (allies) to the case by id; each id needs a contact image named contact_ID.png, looked for in a contacts/ subdirectory first and then at the top level of the case and shared image directories (an id that already starts with contact_ or already has a file extension is used as-is, so contact_bob.jpg names a file too)
- Usage: addContacts(ids)
- Parameters:
- ids: "comma separated list of contact ids"; type=AstValString; required
$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=[AstValString]; 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, padding= 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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, padding= 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']; 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- backgroundColor: "background color"; type=AstValString
$blurbDepartments
- Add instructions about a list of departments, not all of which have entries in the case book
- Usage: blurbDepartments(box=true, demerits=1, time=30)
- Parameters:
- box: "Put this text in a standalone box (true for the default style, or a box style name)"; type=[AstValString, AstValBool]; default=True
- demerits: "Demerits to mark for looking up a missing entry (0 for none)"; type=AstValNumber; default=1
- time: "Time to advance (in minutes) for looking up a missing entry (0 for none)"; type=AstValNumber; default=30
$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', 'nextDay', 'dayEnd', 'conclusion', 'questions', 'questionPause', 'leads', 'documents', 'hints', 'briefingEnd', 'dayStartThenConclusion', 'nightStart', 'nightEnd', 'resolvePause', 'solution', 'end', 'noMore', 'begin']; 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, padding= 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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', 'doublePage', 'dividerPage']; 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, padding= 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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
$character
- Insert one character by name, placed as a bare glyph that neither the automatic quote styling ($configureRenderer(autoStyleQuotes=true), which otherwise fails the build on a double quote that is not one of a pair) nor the TeX ligature mapping (which turns a plain " into a closing curly quote) can rewrite; e.g. a height: 5'11$character("inch"). Names: dquote/doubleQuote/inch/inches (straight double quote ", the inch mark); squote/singleQuote/foot/feet (straight single quote ', the foot mark); ldquote/leftDoubleQuote (left double quotation mark); rdquote/rightDoubleQuote (right double quotation mark); lsquote/leftSingleQuote (left single quotation mark); rsquote/rightSingleQuote/apostrophe (right single quotation mark, the apostrophe); ellipsis (ellipsis); endash (en dash); emdash (em dash); nbsp (non-breaking space); bullet (bullet); middot (middle dot); degree (degree sign); section (section sign); pilcrow/paragraph (pilcrow (paragraph sign)); dagger (dagger); doubleDagger (double dagger); copyright (copyright sign); registered (registered sign); trademark (trade mark sign); cent (cent sign); pound (pound sign); times/multiply (multiplication sign); divide (division sign); plusMinus (plus-minus sign); half (fraction one half); quarter (fraction one quarter); threeQuarters (fraction three quarters); numero (numero sign)
- Usage: character(id)
- Parameters:
- id: "Character name (see the list above)"; 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=[AstValString, AstValNumber]
- 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
$configureCampaign
- Configure the campaign this case belongs to (cases meant to be played in a fixed order or part of a series). Order the case within the campaign EITHER by a position (shown as 'part N') OR, for a date-centric campaign, by the year (and optionally month and day) it is set in (shown as 'Mar. 1938' / 'Mar. 5, 1938'); when both are given the position wins.
- Usage: configureCampaign(name= None, position= None, year= None, month= None, day= None)
- Parameters:
- name: "Campaign name"; type=AstValString
- position: "Position in the campaign sequence (a part number, or text such as 'prologue'); leave blank to order the case by year/month/day instead"; type=[AstValNumber, AstValString]
- year: "Year the case is set in, used to order and label the case within the campaign when no position is given (e.g. 1938)"; type=AstValNumber
- month: "Month (1-12) the case is set in; requires year"; type=AstValNumber
- day: "Day of the month (1-31) the case is set in; requires month"; type=AstValNumber
$configureClock
- Configure case 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
$configureCollection
- Configure a collection/series (same protagonist/setting/universe) in no particular order
- Usage: configureCollection(name= None)
- Parameters:
- name: "Collection name"; type=AstValString
$configureDay
- Configure a day
- Usage: configureDay(day, type="normal", start=9, end=18, date= None, flagCount=true, hintAlly="", allyFreeStart=-1, allyFreeEnd=-1, autoLead= None, time= None, timePos= None, sectionColumns= None, leadColumns= None, sectionBreak= None, leadBreak= None, childSectionBreak= 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=['normal', 'last']; default="normal"
- start: "24 hour clock hour or string"; type=[AstValNumber, AstValString]; default=9
- end: "24 hour clock hour"; type=[AstValNumber, AstValString]; default=18
- date: "Date in form mm/dd/yyyy"; type=AstValString
- flagCount: "Should we count this day in stats?"; type=AstValBool; default=True
- hintAlly: "is there an ally they can visit for more help"; type=['', 'financialPrecinct']; default=""
- allyFreeStart: "start time where hint is free"; type=[AstValNumber, AstValString]; default=-1
- allyFreeEnd: "end time where hint is free"; type=[AstValNumber, AstValString]; 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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=[AstValNumber, AstValString]; 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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 case 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, featured= 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, utility= None, alpha= 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
- featured: "Featured case that showcases the system"; type=AstValBool
- recommended: "Legacy alias for 'featured'"; 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
- utility: "Utility case (author tools, tutorials, reference)"; type=AstValBool
- alpha: "Official playtesters only (alpha testing, before beta)"; type=AstValBool
$configureFront
- Configure front section
- Usage: configureFront(autoLead= None, time= None, timePos= None, sectionColumns= None, leadColumns= None, sectionBreak= None, leadBreak= None, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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 case 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 <email> 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 case (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 case 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 casebook layout and look
- Usage: configureGamePage(thumbnail= None, thumbnailStyle= None, info= None, language= None)
- Parameters:
- thumbnail: "Thumbnail image on the website: the exact name of an image uploaded to the case, or the path of an image in the shared image library (e.g. "portraits/20240330_125252.jpg", as the Image Catalogs show it)"; 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 case 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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, childSectionBreak= 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']
- childSectionBreak: "Break style for child sections (e.g. the auto-generated lead subsections 1,2,3..); when unset the build layout decides (facing pages for one-column layouts, plain page breaks for two-column)"; 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', 'small']
- childHeadingStyle: "default style for child lead rendering heading"; type=['header', 'footer', 'alsoFooter', 'huge', 'small']
- layout: "rendering layout styles"; type=AstValString
- label: "Label as parameter"; type=AstValString
- sortGroup: "sort group"; type=[AstValString, AstValNumber]
- sortKey: "sort key"; type=AstValString
- multiPage: "Should we show page N of M in header"; type=[AstValString, AstValBool]
- 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 mode is not sequential 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=[AstValString, AstValNumber]
- 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
$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=[AstValNumber, AstValString]; default=0.5
- height: "Max height cap of each image (fraction of page height) or string ending in [in|cm]; defaults 0.25"; type=[AstValNumber, AstValString]; 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
$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=[AstValString, AstValNumber]
- 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=[AstValString, 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=[AstValString, AstValNumber]
- 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 case 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, facing="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']
- facing: "When printing double sided: 'before' starts the pdf on a right-hand (facing) page, adding a blank page first when needed; 'after' makes whatever follows the pdf start on a right-hand page, so a one-page sheet keeps a blank back; 'both' does both. One-sided layouts just see a plain page break."; type=['none', 'before', 'after', 'both']; default="none"
$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, viewer= None)
- Parameters:
- path: "path (name) of attached case file to make a link to (useful with multimedia files)"; type=AstValString
- viewer: "use nynoir media viewer"; type=AstValBool
$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 (not supported yet)"; type=AstValString; default=""
- width: "Width (fraction where 0.5 is half page width) or string ending in [in|cm]"; type=[AstValNumber, AstValString]; 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 (not supported yet)"; 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 (not supported yet: the note always goes at the 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=[AstValNumber, AstValString]; 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
$formNumber
- Short number line or box
- Usage: formNumber(width="1cm", after= None)
- Parameters:
- width: "Width of box"; type=[AstValNumber, AstValString]; default="1cm"
- after: "Text to display at end of line"; type=AstValString
$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=[AstValNumber, AstValString]; 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
$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=[AstValNumber, AstValString]
- 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, padding= None, backgroundColor= None): {targetblock}
- Parameters:
- style: "style for formatting"; type=['', 'font', 'radio', 'news', 'culture', 'handwriting', 'typewriter', 'typewriterClassic', 'choice', 'warning', 'dayTest', 'quote', 'tornYellow', 'tornGray', 'compact', 'ttcompact', 'tight', 'block', '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=[AstValNumber, AstValString]
- 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- backgroundColor: "background color"; 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
$goLeadMiss
- Add text to refer to lead
- Usage: goLeadMiss(id, style="plainid", 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="plainid"
- 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=[AstValNumber, AstValString]
- 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=[AstValBool, AstValNumber, AstValString]; 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=[AstValNumber, AstValString]; 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=[AstValNumber, AstValString]
- :{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=[AstValNumber, AstValString]; 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=[AstValNumber, AstValString]; default=1
- height: "Height (fraction of page or string ending in [in|cm]"; type=[AstValNumber, AstValString]; 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=0, 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 (0 for none)"; type=AstValNumber; default=0
- 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", when= None, 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"
- when: "Explicit when string (overrides automatic use of end of day time AND date)"; type=AstValString
- 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, embedContacts=true, extraText= None, internet= 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=[AstValBool, AstValString]; 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
- embedContacts: "embed contact images"; type=AstValBool; default=True
- extraText: "extra text in Markdown format (in a one-line "..." string, write \n for a line break; a triple-quoted string keeps its own line breaks)"; type=AstValString
- internet: "allow use of internet"; type=AstValBool
$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=[AstValNumber, AstValString]
- :{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=[AstValString, AstValBool]; 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=[AstValBool, AstValString]
- effectsOn: "use in interior commands like effectUp"; type=AstValBool
- size: "base font size"; type=[AstValString, AstValNumber]
- :{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=[AstValBool, AstValString]
- 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, resize="fill")
- 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
- resize: "How the image is sized to the page: 'fill' (default) keeps its proportions and covers the whole page, cropping whatever overflows (centered); 'fit' keeps its proportions and shows the whole image, centered, leaving blank margins on two sides if its shape differs from the page; 'stretch' distorts it to cover the page exactly."; type=['stretch', 'fit', 'fill']; default="fill"
$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, padding= 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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, padding= 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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, viewer= 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 case)"; type=AstValString
- path: "path (name) of attached case 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']
- viewer: "use nynoir media viewer"; type=AstValBool
- 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, padding= 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=[AstValNumber, AstValString]
- 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=['none', 'center', 'left', 'right', 'topLeft', 'topRight']
- width: "Width as a decimal percentage (0.1 to 1.0) or string ending in [in|cm]"; type=[AstValNumber, AstValString]
- padding: "padding width (in points; 0 for none); default 0"; type=AstValNumber
- 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 (not supported yet: every style shows the lead the same way)"; 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 for multiple tags: all (A and B) or any (A or B)"; type=['all', 'any']; 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=[AstValNumber, AstValString]
$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=[AstValString, AstValNumber]; 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
$table
- generate a table; the contents go in a {...} block after the function call, one row of the table per line, with the cells of a row separated by '|' (write '\|' for a literal pipe character)
- Usage: table(header= None, align="center", markdown=true, font= None, fontSize= None, headerFont= None, headerFontSize= None): {targetblock}
- Parameters:
- header: "the column headings for the top row of the table, separated by '|' (e.g. Name|Age); prefix a heading with 'C:', 'L:' or 'R:' to centre, left or right align that whole column, or with 'H:' to hide that column from the table while still writing its cells in the contents (e.g. Name|R:Points|H:Notes); leave blank for a table with no heading row"; type=AstValString
- align: "how the text in each cell is aligned, for any column that does not set its own alignment in the header"; type=['left', 'center', 'right']; default="center"
- markdown: "cell text should be formatted as markdown"; type=AstValBool; default=True
- font: "font id previously set with defineFont()"; type=AstValString
- fontSize: "size in points, or a 'size,lineSpacing' pair (defaults to the surrounding text size)"; type=[AstValString, AstValNumber]
- headerFont: "font id for the heading row only (defaults to the table's own font)"; type=AstValString
- headerFontSize: "size in points, or a 'size,lineSpacing' pair, for the heading row only (defaults to the table's own size)"; type=[AstValString, AstValNumber]
- :{targetblock} - a braced group of text to operate on
$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=[AstValNumber, AstValString]; 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=[AstValNumber, AstValString]
- :{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
$unicode
- Insert one character by Unicode code point, placed as a bare glyph exactly like $character() (so $unicode("U+0022") is a straight double quote that bypasses the automatic quote styling). A number is a decimal code point ($unicode(8243)); a string is hexadecimal in Unicode notation ("U+2033", "0x2033" or "2033") or the single character itself ($unicode("″")). The font in use must have the glyph: a missing one prints only an empty box (or nothing) and is reported as a warning in the build log.
- Usage: unicode(id)
- Parameters:
- id: "Code point: decimal number, hexadecimal string ("U+2033"), or the single character"; type=[AstValNumber, AstValString]; required
$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
$usaHeight
- Insert a height written the American way, in feet and inches (e.g. $usaHeight(5, 11) prints 5'11"; with feet=0 only the inches are written and any number of inches is allowed, so $usaHeight(0, 11) prints 11" and $usaHeight(0, 70) prints 70"), with the foot and inch marks as straight quotes that the automatic quote styling (autoStyleQuotes=true) leaves alone; a plain 5'11" typed into the text would otherwise leave a quotation open and fail the build.
- Usage: usaHeight(feet, inches=0)
- Parameters:
- feet: "Whole feet"; type=AstValNumber; required
- inches: "Inches (0-11 when feet are given, any number with feet=0; may be fractional, and .25, .5 and .75 print as the ¼ ½ ¾ fraction symbols, e.g. 4.5 -> 4½)"; type=AstValNumber; default=0
$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
- campaignYear: None
- campaignMonth: None
- campaignDay: None
- collectionName: 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
task
- VALUE: NULL