#This is a comment


: This is from the narrator!
NARRATOR: So is this!
        these lines as well

Rainbow Dash: blah blah blah
            halb floo de flah blah
Rainbow Dash (angry): ARHHGHGHHG

#these variables persist across dialog sessions, but not across login sessions

* $moon_goddess = Princess Luna
* $ponies = Jimmy, Horse, $moon_goddess
* $cool_pony = random($ponies)

Rainbow Dash: $cool_pony is a cool pony!

* if $cool_pony = Horse: goto ConditionalGoto1

* $gotonext = GotoInAVariable
* goto $gotonext


#Dialogue options
#If it's in brackets, it means it's just an action, not the character saying anything
#"I'll never answer your question" falls through to "Option1" because there was no goto label specified,
#  so it skips to the next action, which happens to be in Option1.
> The square root is 7 :Option1
> How about now :Option2
> ...I could just watch you practice flying... :Option7
> I'll never answer your question
> [Walk Away] :END

Twilight Sparkle (smug) : Incorrect!

* goto PinkiePieStartsSinging

Pinkie Pie : you used a conditional goto! 

Pinkie Pie : La la lah lah laaa laaa hum lee laaa

* hasitem? <0> :WantsYourBalloon
#goes to the label WantsYourBaloon if the player has item 0
# you can also check if the player has all the items in a list, like so:
* hasitem? <0, 1, 2, 3> :HasAllItems

* giveitem 0 10
# gives the player 10 of item ID 0
# use the item manager tool to see all the item id's
# item id -1 is bits.

* takeitem 0 10
#same syntax as giveitem

* hascutiemark? <5> :IsSuperGoodAtFlying
#goes to the label IsSuperGoodAtFlying if the player has the cutie mark with ID of 5
# use the cutiemark manager tool to see all the cutiemark ids

* israce? <Earth> :IsEarthPony
#goes to the label IsEarthPony if the player is an earth pony
#valid values are Earth, Unicorn, and Pegasus (not case sensitive)

* questactive? <SomeQuest> :QuestIsActive
# goes to the label QuestIsActive if the quest SomeQuest is active

* activatequest SomeQuest
#activates the quest SomeQuest (adds it to the player, and sets the stage to 0

# queststage
* queststage <SomeQuest> 0
#quests are not only just active/completed, but can go through stages. 
#this is how you save a player's progress through a quest. 
#stage 0 is the default stage for a new quest

* queststage? <SomeQuest> = 3 :QuestIsAtStage3
# go to label QuestIsAtStage3, if the quest is at stage 3

* queststage? <SomeQuest> > 3 :QuestIsAfterStage3
# go to the label if the quest stage value is greater than 3
* queststage? <SomeQuest> < 3 : QuestIsBeforeStage3
# go to the label if the quest stage value is less than 3

* questcomplete? <SomeQuest> :QuestCompleted
# go to the label if the quest is completed
# a completed quest technically is queststage of 2147483647 (signed integer max value)

* completequest SomeQuest
#complete the quest SomeQuest

#journal entries
{[Quest Identifier]Journal Entry Identifier}
#remember to always have the quest titles identical, or else it will become a different 'quest', and not be grouped together
#journal entries show up in the order that the player runs across them in the scripts. You cannot change the order after they have done something.
#define the actual quest names/journal entries as shown the players in the journal files

#"complete" a journal entry (the set of journal entries will be marked as 'done' to the player)
{[Quest Title As Shown To Player]COMPLETE}

#the following will run the script named Hello World.ponyscript, that exists next to this script
* runscript Hello World.ponyscript
#the following will run the script, as before, and then jump to the [Label] inside that script
* runscript Hello World.pscript goto [Label name]

# Using these labels will cause the script to ignore anything outside of them.
# You can also goto them if you want to restart the script or exit it.
# [END]

#You also cannot use the following names for characters:

#anything not on this list that exists on the 
#information is broken, and should not be used.