Custom Commands#
The below lists all custom commands available in Student Transfer, including their syntax and (hopefully) illustrative examples.
Syntax#
Values that have to be filled in by the user are marked by being enclosed in <>
. If you encounter such a value, remove it entirely (including <>
) and substitute your own value.
Optional values are marked by being enclosed in []
, e.g. [<optional_value>]
. This means they can be optionally appended to the command to enabled additional functionality. These brackets may appear around other enclosing characters to denote that they are optional, e.g. [(<value_a, value_b>)]
.
If a value takes one out of a set of fixed values, that is denoted by ()
, e.g. (<option_a, option_b, option_c>)
. This means that this specific value can only be one of the options listed in this definition.
If a value can contain multiple values, it is enclosed by &&
, e.g. &<value_a>&
. This means when substituting your own value, you can add multiple values as a comma-separated list, like this: val_a, val_b, val_c
.
Tip
Who am I kidding, nobody understands this shit anyway, just go and look at the examples already.
Data Types#
int
: An integer number, e.g.5
. Integers are full numbers without any decimal places.float
: A floating point number, e.g.5.4
. Floating point numbers can have decimal places, but anint
can be used in their stead as well.label
: A label that exists in the game, defined by thelabel
statement.string
: A piece of text surrounded by double quotes, e.g."this is a string"
.body
: The name of a body that exists in the game, e.g.johnGB
.character
: The script name of a character that exists in the game, e.g.john
.outfit
: An outfit that exists for a character, e.g. the outfituniform
for the characterjohn
.accessory
: An accessory that exists for a character, e.g. the accessorybedhead
for the charactersandra
.background
: A background that exists in the game, e.g.bg main room day shut
.
timedchoice
#
timedchoice <timeout:float> <fail_label:label> <menu_title:label>
# "C" will show up as an extra menu choice if the player
# has opted to disable timed choices in the preferences.
timedchoice 5.0 day2 "C"
menu:
"Which letter of the alphabet is better?"
"A":
"Nice!"
"B":
"Not so nice."
"Continuation of the main script."
label day2:
"You failed that choice pretty badly!"
gameover
#
gameover <title:string>
gameover "This is the end, my friend."
text
#
# To start a text message conversation
text start <from_character:character>
# To set the title of a text message conversation
text title <title:string>
# To end a text message conversation
text end
text start john
text title "Connie"
msg john "Connie, we need to break up."
think "That should do it. Short and to the point."
show john a_0
john "And it's sent."
text end
msg
#
msg <from_character:character> <message:string> [instant]
# To send a regular message
msg john "Connie, we need to break up."
# To send a message instantly without waiting for the user to click to continue
msg john "Connie, we need to break up." instant
title
#
title <header:string> [<subtitle:string>]
title "Day 1"
title "Day 1" "It's a wonderful world"
outfit
#
outfit <target_character:character> <target_outfit:outfit>
outfit john uniform
accessory
#
accessory <target_character:character> (<clear,add,remove,set>) &<accessory_name:accessory>&
# To clear all accessories
# This command does not support listing accessories in it
# since it clears them anyway
accessory sandra clear
# To add a new accessory
accessory sandra add glasses
# To add a multi-state accessory
accessory sadie add hair_twintail
# To remove an accessory
accessory sandra remove glasses
# To replace all current accessories
accessory sandra set bedhead, glasses
body
#
body <from_character:character> <to_character:character> [<target_outfit:outfit>]
# To set the body with the default outfit
body john katrina
# To set the body with a custom outfit
body john katrina uniform
swap
#
swap [(<float,zap>)] <character_from:character> <start_expr:expression> : <end_expr:expression>, <character_to:character> <start_expr:expression> : <end_expr:expression>
# To swap with the default effect
swap john a_0 : a_3, katrina a_0 : a_8
# To swap with an alternative effect
swap zap john a_0 : a_3, katrina a_0 : a_8
clone
#
clone <from_character:character> <to_character:character>
clone john katrina
morph
#
morph begin (<magic,alien>) <from_character:character> <to_character:character> <target_outfit:outfit> <target_expression:expression> [<relative_scale:float>] [<target_ypos:float>]
morph do <target_character:character>
morph end <target_character:character>
morph finish <target_character:character>
# To show the full morph animation
morph begin alien rachel yui uniform b_2
rachel "What is happening to me?!"
morph do rachel
"Finally, the transformation ground to a halt."
morph end rachel
# To quickly finish the morph
morph begin alien rachel yui uniform b_2
rachel "What the hell?!"
morph finish rachel
# To modify the relation scaling and the vertical positioning of the target sprite
morph begin alien rachel yui uniform b_2 3.0 1.2 # This reduces the scaling effect by 3 and sets the target ypos to 1.2
rachel "Where did my legs go?!"
morph finish rachel
exspirit
#
exspirit <target_character:character> <target_expression:expression>
exspirit john a_0
possess
#
possess <from_character:character> <to_character:character> <target_expression:expression> [<zorder:int>]
possess john mina a_3
possess john mina a_3 5 # on zorder layer 5
scry
#
scry (<into,outof>) <target_character:character>
scry into john
"Everything went black as I was pulled out of my body."
scene black
show yui a_0 at center
scry outof yui
placeholder
#
placeholder
"And thus the path ended abruptly."
placeholder
routename
#
routename <title:string>
routename "Hello, World!"
resetstate
#
resetstate
resetstate
phone_call
#
phone_call <from_character:character> @ <location:background> : <to_character:character> @ <location:background>
phone_call john @ bg house_davis bedroom_john day_shut : katrina @ bg school entrance day
pauseaudio
#
pauseaudio <channel:string>
pauseaudio music
resumeaudio
#
resumeaudio <channel:string>
resumeaudio music
FIXME
#
FIXME <message:string>
FIXME "This is broken as fuck."