Getting Started with Scratch For Second Life (S4SL) |
|
1. Set up
- Download S4SL
- Launch S4SL
by double clicking
"Scratch for Second Life"
- Due to a bug, you may have better results if you drag Scratch.image and drop it onto "Scratch for Second Life" rather than double-clicking the .app or .exe file
- Log into Second Life
- Resize your Second Life window so that it can be side by side with S4SL
- To resize, drag it from the bottom right corner
- Also, you can quickly switch between the two applications by pressing alt-tab (windows) or apple-tab (mac)
|
 |
2. Make an Object
- In Second Life, switch to build mode
- click on the blue "build" button at the bottom of your screen
- Create an object (a prim)
- click the create button at the top of the edit window, pick a shape below that, then click the wand on the ground to create it
|
 |
3. Make a Script
- Switch back to S4SL
- Start with a "hat" block
- Click "control" to see the control blocks
- Pick one of the first five of these orange blocks (like "when I am touched"), and drag it to the scripting area on the right.
- These are the "hat" blocks. They are different ways to make a program run.
- For example, "when I am touched" makes the blocks connected below run when you click on the object. Here's what the others do:
- "When I receive" runs when you chat a particular message.
- "When I collide" runs when an avatar bumps into the object.
- "When I am created" runs when the script is first saved, and when the object is rezzed (like when it is pulled out of your inventory)
- "Forever" runs over and over, ten times per second.
- Add a command by snapping it onto the bottom of the stack
- Most of the other blocks are commands.
- For example, click on "looks" tab, and drag out a "say" block. You can change the text in the say block.
- If you connect this below the "When I am touched" block, your object will say something when you touch it.
- Experiment with other blocks!
- You can also open up the sample projects that come with S4SL to get ideas.
|


 |
4. Copy the script into your object
- In S4SL, click the "copy linden script" button. This puts your code on the clipboard.
- Switch back to SL
- Create a new script for your object
- In the edit window for your object, click more, click on the content tab, and click the"New Script..." button.
- Double click on the "New Script" that appears.
- A script window will open, and your object will run the default script (and say "Hello, Avatar")
- Paste in your script
- You want to replace the script that is there with the one you have on the clipboard
- In the script window, select all, then paste, then save
- If paste does not work, sorry! This is a bug that we are still working on. You can help us fix it by providing as much information as possible about the computer you are using. Here are some workarounds:
- Paste into a text editor, select all, copy that text, and then paste into second life
- Try a windows computer (so far we have only seen this problem on macs)
- A quick way to do this is with the keyboard shortcuts
- On windows: ctrl-a, ctrl-v, ctrl-s
- On mac: apple-a, apple-v, apple-s
- Once your script has saved, close the window and switch out of build mode
- Now you can test your object. For example, click on it to see if it says something
- Repeat! Try things out!
|



|
Things to make:
- Plants that react to people passing by
- A pet that does tricks when you give it chat commands
- Toys that change color, spin, or turn invisible
- A floor that reacts when you step on it
- A house with doors and windows that automatically open and close
- Interactive clothing or other crazy things you can attach to your body
- Whatever else you can imagine!
|
 

|
Other fun stuff to try:
- Use your own sounds: the sound block lets you can type in the name of a sound you want your object to play. You will need to put a sound with this exact name in the inventory of the object.
- Make many: Try making a bunch of copies of your object, for example a whole floor made of "intelligent" tiles (like the image above showing the sample project "rainbow floor tile"). Just make a single tile, then shift-drag to copy one object, or even copy a group of selected objects.
- Make things that communicate: Use "broadcast ..." and "when I receive ..." to make multiple objects communicate with each other (see the "door" and "rainbow floor tile" examples)
- Memory: Use variables to store numbers in your object so it can remember things
- Logic: Use the conditionals if and if-else to compare things to each other
- Sharing code: To share code, you can try the "paste script" button. To use it:
- In SL, open an existing object with S4SL code inside (say, created by another person who has made the scripts visible to you)
- Open the LSL script window, select all, and copy it
- In S4SL, click "paste script" to regenerate the blocks for that script
- This is an experimental feature! Thanks to Jens Moenig for Squeak code to save and load scratch blocks in XML format. Any bugs introduced here are mine.
|
|
Things to watch out for (known issues):
- The blocks in the "pen" category for drawing lines will not work unless your object has in its inventory a special object called "lineSegment." You can find out how to obtain this object at the S4SL blog.
- If you rotate your object using SL build mode, the move and point-toward commands may not behave as you expect.
- One workaround is to use these blocks only with objects that you have not manually rotated.
- For shapes that you need to rotate, or for more complicated shapes, you can link together multiple objects. Just be sure to put your script into a prim that has not been manually rotated.
- Special characters in variable names, broadcasts and when-I-receive may cause problems
- Scripts that have multiple loops running simultaneously, especially with wait blocks, may not behave as you expect
- Please do not resize the S4SL window (nothing will break, it will just look weird)
|
|
| |
|