Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
Quest 5 Docs
Home
Tutorial
Tutorial Introduction
Creating a simple game
Interacting with objects
Anatomy of a Quest game
Using scripts
Custom attributes
Custom commands
More things to do with objects
Using containers
Moving objects during the game
Status Attributes
Using timers and turn scripts
Releasing your game
Creating a gamebook
How to use commands
Commands Specific to a Room
How to use verbs
Complex commands
Handling Multiple Items (and All)
Pattern Matching with Regular Expressions
Advanced Scope For Items
Use verbs
Features
Text processor
Exits
Using Containers
Items that can be switched on and off
Handling light and dark
Wearable items
Score, Health and Money
Multi-state wearable items
Using lockable exits
WebEditor
Transcripts
When the Player Saves a Game
Multimedia
Images in Quest
Creating Images on the Fly
Adding Sounds to your Game
Adding Videos
Script commands
Setting variables
ask
create
create exit
create timer
create turnscript
destroy
dictionary add
dictionary remove
do
else
else if
error
finish
firsttime
for
foreach
get input
if
insert
invoke
list add
list remove
msg
on ready
otherwise
picture
play sound
request
return
rundelegate
set
show menu
start transaction
stop sound
switch
undo
wait
while
Functions
Functions for Attributes
DecreaseHealth
DecreaseMoney
DecreaseScore
GetAttribute
GetAttributeNames
GetBoolean
GetDouble
GetInt
GetString
HasAttribute
HasBoolean
HasDelegateImplementation
HasDouble
HasInt
HasObject
HasScript
HasString
IncreaseHealth
IncreaseMoney
IncreaseScore
SetObjectFlagOff
SetObjectFlagOn
Functions for Variables
Equal
IsDefined
IsDouble
IsInt
ToDouble
ToInt
ToString
TypeOf
Functions for Objects and Exits
Clone
CloneObject
CloneObjectAndMove
CloneObjectAndMoveHere
CreateBiExits
DoesInherit
GetExitByLink
GetExitByName
GetObject
LockExit
MakeExitInvisible
MakeExitVisible
MakeObjectInvisible
MakeObjectVisible
MoveObject
RemoveObject
UnlockExit
Timers and Turnscripts
DisableTimer
DisableTurnScript
EnableTimer
EnableTurnScript
GetTimer
Pause
SetTimeout
SetTimeoutID
SetTimerInterval
SetTimerScript
SetTurnScript
SetTurnTimeout
SetTurnTimeoutID
SuppressTurnscripts
User Interface Functions
Ask
ClearFramePicture
ClearScreen
DisplayList
DisplayMailtoLink
GetCurrentFontFamily
GetInput
InitUserInterface
OutputText
OutputTextNoBr
OutputTextRaw
OutputTextRawNoBr
PrintCentered
SetAlignment
SetBackgroundColour
SetBackgroundImage
SetBackgroundOpacity
SetFontName
SetFontSize
SetForegroundColour
SetFramePicture
SetWebFontName
ShowMenu
ShowVimeo
ShowYouTube
TextFX_Typewriter
TextFX_Unscramble
UpdateStatusAttributes
WaitForKeyPress
List Functions
Contains
FilterByAttribute
FilterByNotAttribute
FilterByType
IndexOf
ListCombine
ListCompact
ListContains
ListCount
ListExclude
ListItem
NewList
NewObjectList
NewStringList
ObjectListCompact
ObjectListItem
ObjectListSort
ObjectListSortDescending
ObjectListToStringList
RemoveSceneryObjects
StringListItem
StringListSort
StringListSortDescending
Scope Functions
AllCommands
AllExits
AllObjects
AllRooms
AllTurnScripts
GetAllChildObjects
GetDirectChildren
ListVisible
ListVisibleFor
ScopeAllExitsForRoom
ScopeCommands
ScopeExits
ScopeExitsAll
ScopeExitsForRoom
ScopeInventory
ScopeInventoryNotScenery
ScopeReachable
ScopeReachableForRoom
ScopeReachableInventory
ScopeReachableNotHeld
ScopeReachableNotHeldForRoom
ScopeUnlockedExitsForRoom
ScopeUnlockedExitsForRoom
ScopeVisible
ScopeVisibleForRoom
ScopeVisibleNotHeld
ScopeVisibleNotHeldForRoom
ScopeVisibleNotHeldNotScenery
ScopeVisibleNotHeldNotSceneryForRoom
ScopeVisibleNotReachable
ScopeVisibleNotReachableForRoom
Dictionary Functions
DictionaryAdd
DictionaryContains
DictionaryCount
DictionaryItem
DictionaryRemove
NewDictionary
NewObjectDictionary
NewScriptDictionary
NewStringDictionary
ObjectDictionaryItem
QuickParams
ScriptDictionaryItem
StringDictionaryItem
String Functions
Asc
CapFirst
Chr
Conjugate
Decimalise
DisplayMoney
DisplayNumber
DynamicTemplate
EndsWith
FormatList
GetMatchStrength
Instr
InstrRev
IsNumeric
IsRegexMatch
Join
LCase
LTrim
Left
LengthOf
Mid
PadString
ProcessText
RTrim
Replace
ReverseDirection
Right
SafeXML
Spaces
Split
StartsWith
Template
ToRoman
ToWords
Trim
UCase
WriteVerb
Clothing Functions
GetArmour
GetArmourFor
GetOuterFor
ListWorn
ListWorn
ListWornFor
RemoveGarment
WearGarment
Randomising Functions
DiceRoll
GetRandomDouble
GetRandomInt
PickOneChild
PickOneChildOfType
PickOneExit
PickOneObject
PickOneString
PickOneUnlockedExit
RandomChance
General Functions
CurrentDateUTC
Eval
GetFileData
GetFileURL
Log
RunDelegateFunction
Core.aslx Functions
AddToInventory
CanReachThrough
CanSeeThrough
ChangePOV
CheckDarkness
FormatExitList
FormatObjectList
GetBlockingObject
GetDefiniteName
GetDisplayAlias
GetDisplayName
GetDisplayNameLink
GetDisplayVerbs
GetListDisplayAlias
GetNonTransparentParent
GetVolume
Got
HelperCloseObject
HelperOpenObject
IsSwitchedOn
ListParents
SetDark
SetExitLightstrength
SetLight
SetObjectLightstrength
ShowRoomDescription
SwitchOff
SwitchOn
Internal Core.aslx Functions
AddExternalStylesheet
AddStatusAttributesForElement
CloseObject
CommandLink
CompareNames
ContainsAccessible
ContainsReachable
ContainsVisible
DisplayHttpLink
DoAskTell
DoDrop
DoTake
FormatStatusAttribute
GenerateMenuChoices
GetDefaultPrefix
GetKeywordsMatchStrength
GetPlacesObjectsList
GetTaggedName
GetUniqueElementName
Grid CalculateMapCoordinates
Grid DrawPlayerInRoom
Grid DrawRoom
Grid SetScale
Grid ShowCustomLayer
Grid_AddNewShapePoint
Grid_ClearCustomLayer
Grid_DrawArrow
Grid_DrawGridLines
Grid_DrawImage
Grid_DrawLine
Grid_DrawShape
Grid_DrawSquare
Grid_DrawSvg
Grid_LoadSvg
Grid_Redraw
Grid_SetCentre
HandleCommand
HandleSingleCommand
HandleSingleCommandPattern
InitInterface
InitPOV
InitVerbsList
IsGameRunning
ListObjectContents
ObjectLink
OnEnterRoom
OpenObject
Populate
ResolveName
ResolveNameInternal
ResolveNameList
ResolveNameListItem
RunTurnScripts
StartGame
TryOpenClose
Mathematical Functions
Attributes
Important Attributes
Status Attributes
Change Script
Attribute Types
Null
String
Script
Boolean
Int
Double
Object
Stringlist
Objectlist
List
Objectdictionary
Scriptdictionary
Dictionary
Using Delegates
Command pattern
Stringdictionary
Attribute Reference
alias
allobjects
alt
appendobjectdescription
article
ask
askdefault
autodescription
autodisplayverbs
autoopen
autounlock
backgroundimage
backgroundopacity
beforefirstenter
canlockopen
clearframe
close
closescript
compassdirections
container
container_base
container_closed
container_limited
container_lockable
container_open
containerfullmessage
contentsprefix
dark
darklevel
defaultbackground
defaultfont
defaultfontsize
defaultforeground
defaultlinkforeground
defaultobject
defaultwebfont
descprefix
description
displayroomdescriptiononstart
displayverbs
drop
dropmsg
echohyperlinks
edible
editor_object
editor_room
enablehyperlinks
enter
exitslistprefix
female
femaleplural
firstenter
gender
give
giveanything
givesingle
giveto
givetoanything
grid_border
grid_bordersides
grid_borderwidth
grid_fill
grid_label
grid_length
grid_parent_offset_auto
grid_parent_offset_x
grid_parent_offset_y
grid_render
grid_width
gridmap
hidechildren
inventoryverbs
isopen
key
languageid
lightstrength
listchildren
listchildrenprefix
locked
lockmessage
look
male
maleplural
mapscale
mapsize
maxobjects
menubackground
menufont
menufontsize
menuforeground
menuhoverbackground
menuhoverforeground
namedfemale
namedmale
nokeymessage
objectslistprefix
onclose
ondrop
onexit
onlock
onopen
onswitchoff
onswitchon
ontake
onunlock
open
openable
openscript
parent
parserignoreprefixes
picture (attribute)
plural
pov_alias
pov_alt
pov_article
pov_gender
pov_look
prefix
scenery
selfuseanything
selfuseon
setbackgroundopacity
showdescriptiononenter
showhealth
showpanes
showscore
start
statusattributes
suffix
surface
switchable
switchedoffdesc
switchedon
switchedondesc
switchoffmsg
switchonmsg
take
takemsg
tell
telldefault
transparent
underlinehyperlinks
unlockmessage
use
useanything
usedefaultprefix
useframe
useon
visible
visited
volume
Notes
How To
How to use functions
Multiple choices - using a switch script
Changing the player object
Handling water
Showing a map
Asking a simple question
Asking a question
Keeping a journal
How to Keep Score
How to Build a Transit System
Converting One Thing Into Another
Tracking Time
Setting up a shop
Setting Up a Door
Give the player character memory or Wiki
Move an object in a direction
Using neutral language
Randomisation
Showing a menu
Use maths functionality
Resolving Common Problems
User Experience
The UI and Game-play
The UI Style
Using Display Verbs
Custom Command Panes
Modifying the Status and Game Panes
Fonts
Messing with the Location Bar
Custom Status Pane
JavaScript to Quest with ASLEvent
Adding a Dialogue Panel
Adding a Dialogue Panel That Assigns Points
Customising the UI - Part 1
Customising the UI - Part 2
Customising the UI - Part 3
Customising the UI - Part 3
Characters (NPCs)
Followers
Introduction to Conversations
Handling SPEAK TO
Handling ASK/TELL
Making NPCs Patrol
Making NPCs Act Independently
Handling ASK/TELL
Introduction to RPGs
Character Creation
Zombie Apocalypse (part 1)
Zombie Apocalypse (part 2)
Spells for the Zombie Apocalypse
Coding With Quest
The Cloak of Darkness
Introduction to Coding
Creating functions
Using Lists
Using Dictionaries
Using Turnscripts
Scopes
Attack of the Clones!
Advanced game scripts
Using Javascript
Blocks and scripts
Expressions
Editing in Full Code View
Tips and Tricks for Editing in Full Code View
Much Ado About Nothing
Using "doubles"
Unit Testing
Types
How to Copy-and-Paste Code
Advanced Topics
Overriding functions
Using inherited types
Changing templates
Translating Quest
Using and creating libraries
Using Templates
Undo support
Desktop Features
Using walkthroughs
Using Tabs for Types
Debugging your game
Editor User Interface Elements
How to run Quest on Linux
Publishing
Competition Entry
Reference
XML Elements
asl element
library element
include element
template element
dynamictemplate element
verbtemplate element
function element
command element
verb element
type element
game element
object element
exit element
walkthrough element
timer element
turnscript element
implied element
delegate element
javascript element
editor element
tab element
control element
resource element
inherit element
JS functions
addScript
addText
ShowGrid
eval
scrollToEnd
setCommands
setCss
setCustomStatus
setInterfaceString
setPanes
ShowGrid
showPopup/showPopupCustomSize/showPopupFullscreen
uiShow/uiHide
updateLocation
updateStatus
whereAmI
Hard-coded Functions and Library Functions
ASLX File Format
ASL Requirements
Other Guides
Community Guides
Time-limited puzzles
Unlock with combination
Starting inventory
Immobilise the player
Help with InvisiClues
Random default answers
Port and starboard
A Hint System
Turn-based events
Adding Introduction Text
Hidden exit
Hyperlinks
Implementing components of an object
Helpsheets for beginners
Introduction at Start of Game
Irritated by “a” in your objects?
Object blocking an exit
Locked Exits and How to Open them?
Adding Baddies who want to Kill or Eat you!
Baddies behind a Door who want to kill you (but if you close the door you won’t die…!)
Making Objects Appear when a Light is Switched On
Adding a Yes/No Quiz Question
Adding a Yes/No Question to a Container
The CASE Command
Objects appearing (inside other objects)
Ask and Tell
“Key” Inside another Object
Multiple Options using Switch
Adding Music to a Radio
Creating a Countdown Timer
Creating with Trizbort and Quest
Release Notes
Quest 5.8
Quest 5.7
Upgrade Notes
Older Versions
Developers
Building from Source
Open source
Search Quest 5 Docs
GitHub
Discord
Functions
String Functions
RTrim
RTrim (input)
The RTrim function removes spaces on the right side of a
string
.