Hi! Welcome to the forum for Platinum Arts Sandbox Free 3D Game Maker. I currently have the forums locked as I am attempting to properly update them.

In the meantime please join the new Discord Server!

If you have any questions please e-mail me through the Platinum Arts website.

List of scripting commands

Learn more on how to use Sandbox, or submit your own tutorials or resources.
User avatar
Venima
Support Team
Support Team
Posts: 259
Joined: February 17th, 2010, 4:56 am
Name: Tombstone
IRC Username: Venima
Location: Somewhere in the eternal planes between the living and the dead

List of scripting commands

Post by Venima »

Any mode:

Declaring/modifying variables
number1 = 0 //variable "number1" now exists and becomes the value of 0
number1 = (+ $number1 2) //variable "number1" is increased by 2
number1 = (- $number1 $number2) //variable "number1" is decreased by variable "number2"

Mapmodel & Entity commands
level_trigger_3 = [] //when approaching mapmodels with trigger tags of 3, carries out the script within the square brackets []
trigger 2 1 //mapmodels with trigger tags of 2 will carry out an animation based on their trigger types (uses numbers ranging from -1 to 1) Trigger Types List
platform 4 1 //platforms with a tag of 4 will move forward (-1 backward, 0 stop, 1 forward)
platform 4 1 //elevators with a tag of 4 will move up (-1 down, 0 stop, 1 up)
part_text_2 = "Enter here to begin." //particles with type "text" and alias 2 will display "Enter here to begin."

Guis
newgui Hello [] //creates a new gui window like the one when hitting Esc, scripting name for the gui is "Hello", displayed name is same as scripting name
newgui Hello [] "Stranger" //same as above except the displayed name is "Stranger"
guitext "Hello and welcome to sandbox script list." //adds text to the gui window showing "Hello and welcome to sandbox script list."
guitext "Hello and welcome to sandbox script list." chat //same as above however the icon to the left of the text is a chat bubble.
guibutton "Continue" "" //adds a button to the gui window displaying "Continue" and carries out the script in the second pair of quotation marks ""
guibutton "Continue" [] //same as above only carries out the script within the square brackets []
guilist [] //creates a vertical bar that allows you to create a list, script within that list is within the square brackets []
guibar //adds a bar to the gui window.
showgui Hello //will trigger newgui Hello
cleargui //removes all gui windows that are open
cleargui 2 //goes back 2 gui windows (e.g. from Hello3 back to Hello1)

Handy side commands
echo "Wow this works!" //displays "Wow this works!" in the top-left corner of the screen/window.
if (> $number1 4) [] //if variable "number1" is more than 4, then the script in the square brackets is carried out []
if (= $number1 $number2) [] [] //if variable "number1" is equal to variable "number2", then the script in the first square brackets is carried out, otherwise the script in the second square brackets is carried out
sleep 1000 [] //waits 1000 milliseconds before carrying out the script within the square brackets []
music "filepath+filename" //plays music from the filepath and name given inside the quotation marks ""
In place of quotation marks for text you can have: (format "You have %1 gold and %2 silver" $countgold countsilver) //after "guitext" for example, say countgold was 3 and countsilver was 5, it would display "You have 3 gold and 5 silver"

Anything you can write in console with a forward slash can be used in the map script without one. Note: for console commands that are editmode only, you have to save and load the map again before it lets you use them in the map script.

code example:

Code: Select all

level_trigger_1 = [
	showgui Hello
]

newgui Hello [
	guitext "Hello and welcome to the script list." chat
	guitext "Would you like some help?" chat
	guibar
	guibutton "Yes" "showgui Hello_Yes"
	guibutton "No" "cleargui"
]
Trigger Types List
Tombstone's Tournament round 2 has begun! Tombstone's Posting Tournament

Try out my: CFG Easy Text Editor (Note: still in beta)

-----Venima
Image
Image
arcones
Support Team
Support Team
Posts: 2734
Joined: January 13th, 2010, 12:42 pm
Name: Timothy
IRC Username: I use Steam
Location: Looking over your shoulder...
Contact:

Re: List of scripting commands

Post by arcones »

That type of script is pretty much what I had. However I noticed this:
Venima wrote:newgui Hello [] "Stranger" //same as above except the displayed name is "Stranger"
So I'd basically be placing it after the gui's and before the last bracket?

Code: Select all

    level_trigger_1 = [
       showgui Hello
    ]

    newgui Hello [
       guitext "Hello and welcome to the script list." chat
       guitext "Would you like some help?" chat
       guibar
       guibutton "Yes" "showgui Hello_Yes"
       guibutton "No" "cleargui"
    ]

newgui "Hello_Yes" [
  guitext "Now once I place the stranger part after the" chat
  guitext "brackets, it'll appear?"
  guibar
  guibutton "Yes." "showgui Yes"
  guibutton "No." "showgui No"
] stranger //do I place it before or after the bracket?
Image
Want a user bar like this one? PM Leo!
User avatar
Venima
Support Team
Support Team
Posts: 259
Joined: February 17th, 2010, 4:56 am
Name: Tombstone
IRC Username: Venima
Location: Somewhere in the eternal planes between the living and the dead

Re: List of scripting commands

Post by Venima »

you place it here:

Code: Select all

newgui "Hello_Yes" [
  guitext "Now once I place the stranger part after the" chat
  guitext "brackets, it'll appear?"
  guibar
  guibutton "Yes." "showgui Yes"
  guibutton "No." "showgui No"
] "stranger"
The quotes around it are essential.
Tombstone's Tournament round 2 has begun! Tombstone's Posting Tournament

Try out my: CFG Easy Text Editor (Note: still in beta)

-----Venima
Image
Image
User avatar
Venima
Support Team
Support Team
Posts: 259
Joined: February 17th, 2010, 4:56 am
Name: Tombstone
IRC Username: Venima
Location: Somewhere in the eternal planes between the living and the dead

Re: List of scripting commands

Post by Venima »

Here's a great example of some simple but complex looking code:

By all means try it out. Level_trigger_1 should be an rpg character with trigger type 27.

Code: Select all

coins = 20
gChoice = 0
gTenMugs_Badmug = 0
gBet = 0
gTenMugs_RightGuesses = 0
gTenMugs_1 = 0
gTenMugs_2 = 0
gTenMugs_3 = 0
gTenMugs_4 = 0
gTenMugs_5 = 0
gTenMugs_6 = 0
gTenMugs_7 = 0
gTenMugs_8 = 0
gTenMugs_9 = 0

level_trigger_1 = [showgui Gamer1-1]

newgui Gamer1-1 [
	guitext "Wanna play a game?" chat
	guibar
	guibutton "Sure!" "showgui Gamer1-2" chat
	guibutton "Not right now thanks." "cleargui" chat
] "Bramier"
newgui Gamer1-2 [
	guitext "It's called Ten mugs..." chat
	guibar
	guibutton "Sure!" "showgui Game_TenMugsStart" chat
	guibutton "What is it?" "showgui Gamer1-3" chat
	guibutton "Sorry I've got to go now." "cleargui" chat
] "Bramier"
newgui Gamer1-3 [
	guitext "Well..." chat
	guitext "First of all you bet a certain amount of coins, say 10." chat
	guitext "You have to pay a 5th in advance." chat
	guitext "I then put a coin under 9 mugs of 10 and rotate them around." chat
	guitext "If you guess a mug with a coin under it, you get a 10th of what you bet for." chat
	guitext "If you guess a mug with nothing under it, I get the rest of your bet and the" chat
	guitext "game ends there." chat
	guitext "You can keep guessing mugs until you don't wish to continue." chat
	guitext "Remember you only have to pay your bet if you guess wrongly." chat
	guibar
	guibutton "I think I've got it." "showgui Gamer1-4" chat
	guibutton "Sorry I've got to go now." "cleargui" chat
] "Bramier"
newgui Gamer1-4 [
	guitext "So you wanna play?" chat
	guibar
	guibutton "Sure!" "showgui Game_TenMugsStart" chat
	guibutton "No thanks." "cleargui" chat
] "Bramier"

newgui Game_TenMugsStart [
	if (> $coins 9) [
		guitext "How much do you want to bet?" chat
		guitext (format "You have %1 coins." $coins)
		guibar
		guilist [
			guibutton "10 coins." [
				gBet = 10
				gTenMugs_BadMug = (rnd 10)
				coins = (- $coins 2)
				showgui Game_TenMugs1
			] chat
			if (> $coins 19) [
				guibar
				guibutton "20 coins." [
					gBet = 20
					gTenMugs_BadMug = rnd 10
					coins = (- $coins 8)
					showgui Game_TenMugs1
				] chat
			] []
		]
		guilist [
			if (> $coins 49) [
				guibutton "50 coins." [
					gBet = 50
					gTenMugs_BadMug = rnd 10
					coins = (- $coins 20)
					showgui Game_TenMugs1
				] chat
			] []
			if (> $coins 99) [
				guibar
				guibutton "100 coins." [
					gBet = 100
					gTenMugs_BadMug = rnd 10
					coins = (- $coins 40)
					showgui Game_TenMugs1
				] chat
			] []
		]
		guibar
		guibutton "Sorry I've got to go now." "cleargui" chat
		gTenMugs_1 = 10
		gTenMugs_2 = 10
		gTenMugs_3 = 10
		gTenMugs_4 = 10
		gTenMugs_5 = 10
		gTenMugs_6 = 10
		gTenMugs_7 = 10
		gTenMugs_8 = 10
		gTenMugs_9 = 10
		gTenMugs_RightGuesses = 0
		RN2 = 0
	] [
		guitext "You don't have enough coins to play." chat
		guitext (format "You only have %1 coins" $coins) chat
		guitext "Come back when you have 10 coins." chat
		guibar
		guibutton "Oh, ok." "cleargui" chat
	]
] "Ten Mugs"
newgui Game_TenMugs5 [
	guitext "Another round?" chat
	guibar
	guibutton "Sure!" [
		showgui Game_TenMugsStart
	] chat
	guibutton "Sorry I've gotta go." "cleargui" chat
] "Ten Mugs"
newgui Game_TenMugs4 [
	guitext "That mug doesn't have a coin under it, too bad." chat
	guibar
	guibutton "Damn. Ah well." [
		//RN = (* $gBet 0.4)
		//RN2 = (- $gBet $RN)
		//coins = (- $coins $RN2)
		coins = (- $coins 8)
		showgui Game_TenMugs5
	] chat
] "Ten Mugs"
newgui Game_TenMugs3 [
	guitext "You have already chosen this mug. Choose another one." chat
	guibar
	guibutton "Oops... ok." "cleargui 2" chat
] "Ten Mugs"
newgui Game_TenMugs2 [
	if (= $gChoice $gTenMugs_1) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_2) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_3) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_4) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_5) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_6) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_7) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_8) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_9) [showgui Game_TenMugs3] 	[
		if (= $gChoice $gTenMugs_BadMug) [showgui Game_TenMugs4] [
			RN3 = (+ $RN2 1)
			guitext "That mug has a coin under it, well done!" chat
			guitext (format "So far you have earnt %1 coins." $RN3) chat
			guibar
			guibutton "Ok." [
			//RN = (* $gBet 0.1)
			//coins = (+ $coins $RN)
			coins = (+ $coins 1)
			RN2 = (+ $RN2 1)
			gTenMugs_RightGuesses = (+ $gTenMugs_RightGuesses 1)
			if (= $gTenMugs_RightGuesses 1) [gTenMugs_1 = $gChoice] []			
			if (= $gTenMugs_RightGuesses 2) [gTenMugs_2 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 3) [gTenMugs_3 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 4) [gTenMugs_4 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 5) [gTenMugs_5 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 6) [gTenMugs_6 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 7) [gTenMugs_7 = $gChoice] []
			if (= $gTenMugs_RightGuesses 8) [gTenMugs_8 = $gChoice] []	
			if (= $gTenMugs_RightGuesses 9) [gTenMugs_9 = $gChoice] []	
			cleargui 1] chat
		]
	]]]]]]]]]	
] "Ten Mugs"
newgui Game_TenMugs1 [
	//RN = (* $gBet 0.4)
	//RN2 = (* $gTenMugs_RightGuesses $gBet)
	//RN2 = (* $RN2 0.1)
	RN3 = (- 9 $gTenMugs_RightGuesses)

	// Temporary
	RN = 2
	guitext (format "Coins given in advance: %1, Coins earnt: %2" $RN $RN2) chat
	guibar
	guitext (format "There are %1 good choices left." $RN3) chat
	guibar
	guilist [
		guibutton "1" [
			gChoice = 0
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "2" [
			gChoice = 1
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "3" [
			gChoice = 2
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "4" [
			gChoice = 3
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "5" [
			gChoice = 4
			showgui Game_TenMugs2
		] chat
	]
		guibar
	guilist [
		guibutton "6" [
			gChoice = 5
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "7" [
			gChoice = 6
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "8" [
			gChoice = 7
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "9" [
			gChoice = 8
			showgui Game_TenMugs2
		] chat
		guibar
		guibutton "10" [
			gChoice = 9
			showgui Game_TenMugs2
		] chat
	]
	guibar
	guibutton "I'll leave it there." "showgui Game_TenMugs5" chat
	guibutton "Sorry I've got to go now." "Game_TenMugsGottaGo" chat
] "Ten Mugs"
newgui Game_TenMugsGottaGo [
	if (< $gTenMugs_RightGuesses 2) [
		guitext "You've barely even started, here have your coins back." chat
		guibar
		guibutton "Thanks." [
			//RN = (* $gBet 0.4)
			//coins = (+ $coins $RN)
			//RN2 = (* $gBet 0.1)
			//RN3 = (* $gTenMugs_RightGuesses $RN2)
			coins = (+ $coins 2)
			//coins = (- $coins $RN3)
			coins = (- $coins $gTenMugs_RightGuesses)
			cleargui
		] chat
	] [cleargui]
] "Ten Mugs"
Tombstone's Tournament round 2 has begun! Tombstone's Posting Tournament

Try out my: CFG Easy Text Editor (Note: still in beta)

-----Venima
Image
Image
Hirato
Developer
Developer
Posts: 689
Joined: May 30th, 2009, 1:23 pm
IRC Username: hirato

Re: List of scripting commands

Post by Hirato »

that's by no means a great example.
The code in question can still be simplified a lot.
  • When placing the bet, you can create those options through the use of a loop, and iterate though a list of the bets. betlist = "10 20 50 100" loop i (listlen $betlist) [create buttons here]
  • losing the round only takes 8 coins, the rules state it needs the other 4/5 of your bet
  • Don't list the mugs they've already chosen, this will greatly simplify the second GUI
  • choosing the mug can also be simplified through a loop: loop i 10 [] (remember the @ tokens, see our wiki)
otherwise, good work :)
This is not a url, clicking it is pointless
User avatar
Venima
Support Team
Support Team
Posts: 259
Joined: February 17th, 2010, 4:56 am
Name: Tombstone
IRC Username: Venima
Location: Somewhere in the eternal planes between the living and the dead

Re: List of scripting commands

Post by Venima »

When I made it I wasn't familiar with the loop yet, and I can't be bothered to change the code XD

At least people will understand it easily. :P
Tombstone's Tournament round 2 has begun! Tombstone's Posting Tournament

Try out my: CFG Easy Text Editor (Note: still in beta)

-----Venima
Image
Image
arcones
Support Team
Support Team
Posts: 2734
Joined: January 13th, 2010, 12:42 pm
Name: Timothy
IRC Username: I use Steam
Location: Looking over your shoulder...
Contact:

Re: List of scripting commands

Post by arcones »

Uh huh, makes perfect sense V... :roll:

Code: Select all

newgui Game_TenMugs2 [
   if (= $gChoice $gTenMugs_1) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_2) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_3) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_4) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_5) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_6) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_7) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_8) [showgui Game_TenMugs3] [if (= $gChoice $gTenMugs_9) [showgui Game_TenMugs3]    [
      if (= $gChoice $gTenMugs_BadMug) [showgui Game_TenMugs4] [
Once I got to this, I basically quit :lol: I understand how the name works tho' Thanks for the tip! :)
Image
Want a user bar like this one? PM Leo!
chocolatepie33
Support Team
Support Team
Posts: 2458
Joined: April 27th, 2010, 5:31 pm
IRC Username: CP

Re: List of scripting commands

Post by chocolatepie33 »

Maybe you should learn C++, Arc... I only know the basics, but this makes sense to me...
To me right now, Cubescript looks like (or maybe is actually) C++.
It shares with C++ :
  • If statements (If X = #, then action)
    Variable declaration (int X = 5 )
    Output (in C++, it's called cout, here, it's guitext)
    Pointers (Don't know enough to show you)
Just to name a few...
The one thing I haven't seen yet with Cubescript is input...
for example, C++ has the cin function, which is like (cin >> number) if number is a declared integer.
With that, you type it in. With cubescript, there's clickable guibuttons, but those make for limited options.
The only example is the "first time with PAS? type in your name." And I don't know how to make that.
Tutorial, anyone?
Julius wrote:Contribute to http://www.opengameart.org NOW!
Save the wiki!
chocolatepie33
Support Team
Support Team
Posts: 2458
Joined: April 27th, 2010, 5:31 pm
IRC Username: CP

Re: List of scripting commands

Post by chocolatepie33 »

Okay, never mind, I found it!
It's the complicated thing called a guifield. (Don't ask me how to use it, though.)
Julius wrote:Contribute to http://www.opengameart.org NOW!
Save the wiki!
Grafman
Member
Member
Posts: 4
Joined: September 26th, 2010, 6:37 pm
Name: Gary

Re: List of scripting commands

Post by Grafman »

Thanks for posting this for this is the first time I have seen the trigger list. Again, I am very new to Sandbox. I am taking a class at our community college in C Programming - so some of this looks familiar.

Can you tell me if there are any more quests (besides the baker and apple in the village map)? The trigger list mentioned something about a carrot...

I am hoping to have my students make a game for pre-school kids that the kids will go around a map and pick-up certain objects (mapmodels?) like fruits and vegetables (let's say a tomato) and when they Pick up the objects the response would be "This is a tomato" --- appreciate the help, Happy Thanksgiving!
grafman
Post Reply