Skip to content

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 an int can be used in their stead as well.
  • label: A label that exists in the game, defined by the label 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 outfit uniform for the character john.
  • accessory: An accessory that exists for a character, e.g. the accessory bedhead for the character sandra.
  • background: A background that exists in the game, e.g. bg main room day shut.

timedchoice#

1
timedchoice <timeout:float> <fail_label:label>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
timedchoice 5.0 day2

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#

1
gameover <title:string>
1
gameover "This is the end, my friend."

text#

1
2
3
4
5
6
7
8
# 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
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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#

1
msg <from_character:character> <message:string>
1
msg john "Connie, we need to break up."

title#

1
title <header:string> [<subtitle:string>]
1
2
3
title "Day 1"

title "Day 1" "It's a wonderful world"

outfit#

1
outfit <target_character:character> <target_outfit:outfit>
1
outfit john uniform

accessory#

1
accessory <target_character:character> (<clear,add,remove,set>) &<accessory_name:accessory>&
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 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 remove an accessory
accessory sandra remove glasses

# To replace all current accessories
accessory sandra set bedhead, glasses

body#

1
body <from_character:character> <to_character:character> [<target_outfit:outfit>]
1
2
3
4
5
# To set the body with the default outfit
body john katrina

# To set the body with a custom outfit
body john katrina uniform

swap#

1
swap [(<float,zap>)] <character_from:character> <start_expr:expression> : <end_expr:expression>, <character_to:character> <start_expr:expression> : <end_expr:expression>
1
2
3
4
5
# 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#

1
clone <from_character:character> <to_character:character>
1
clone john katrina

morph#

1
2
3
4
morph begin (<magic,alien>) <from_character:character> <to_character:character> <target_outfit:outfit> <target_expression:expression>
morph do <target_character:character>
morph end <target_character:character>
morph finish <target_character:character>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 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

exspirit#

1
exspirit <target_character:character> <target_expression:expression>
1
exspirit john a_0

possess#

1
possess <from_character:character> <to_character:character> <target_expression:expression>
1
possess john mina a_3

scry#

1
scry (<into,outof>) <target_character:character>
1
2
3
4
5
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#

1
placeholder
1
2
3
"And thus the path ended abruptly."

placeholder

routename#

1
routename <title:string>
1
routename "Hello, World!"

resetstate#

1
resetstate
1
resetstate

phone_call#

1
phone_call <from_character:character> @ <location:background> : <to_character:character> @ <location:background>
1
phone_call john @ bg main room day shut : katrina @ bg school entrance day

FIXME#

1
FIXME <message:string>
1
FIXME "This is broken as fuck."