As you'll know if you've read my previous blogs and my occasional rants in the comments section of the Alphaville Herald, ever since content creators began to assume by default that all their customers are thieves intent on ripping them off with Copybot-style programs, I've been pretty vocal about how this is destroying the whole concept of Second Life and turning it into Consumer Life. Also, please note that just because I link to a place where Copybot can be obtained does not mean I condone its use for purposes against the Second Life Terms Of Service - even Wikipedia has a page on Copybot with links to follow so remember that this information is easily accessible by all. I don't believe in censorship to benefit the few and so I provide that information merely so that the reader can make their own informed decisions in life rather than have their choices made for them by others.
Anyway, at the end of the blog I referenced above, I said that I was going to put my money where my mouth is and go out and start learning to become my own content creator and what is more, that I would share that content for free with anyone who wanted it, purely in the hope that they would then take it and improve it and continue to share everything with full permissions. This was intended to bring back the original spirit of Second Life, the spirit of collaborative creation. The rise of the content creators running businesses is in danger of destroying that spirit once and for all. I might not be able to stop it but I'll be damned if I'll support it!
So yes, after a brief break from Second Life due to computer problems, I came back and began to think about how I could begin learning to be a content creator. Building and scripting were the obvious places to start of course. The trick was to decide what to create. I would also need to decide on what skills I needed to learn and where from. Luckily I was able to call on the services of an old friend to give me some advice - take a bow Jessikiti Nikitin! She took me to a sandbox and began teaching me some of the basic tools of building. I'd played with the real basics over time of course but I'd never played further. I was lucky to be able to call on a friend but if an experienced friend isn't available, there are plenty of good classes available for building and scripting. After teaching me some basic tools, she sent me out to play with them and my hexagonal cargo pod was born. I wanted a cargo pod that would look reasonable and have a little control pad that when clicked would list the contents and then issue them to the person who had clicked it. Okay, in overall terms this is seriously beginner level stuff, right? No one is claiming otherwise. The best content creators had to start at the beginning - well, apart from those who stole the work of others that is. Hey, did I just say that out loud? Hehe.
Once I'd built my basic cargo pod (five prims but I think I can get this down to four), I added colour and textures. The textures were all freebies that I'd picked up over time and there are plenty of brilliant resources for free textures and other stuff like sounds too.
Now I needed to create a script that would first list the contents of the pod and then issue those contents. To keep it simple, I kept it to one item for this first attempt. The Nerf Maverick is another freebie I picked up over time. In theory I wanted the project to be completely made from scratch but then cheated and used the freebie gun instead. Future projects will aim to be more scratch-built of course, including textures and sounds.
I'm not entirely unfamiliar with programming of course but I'd never even tried lsl to be honest so this was the biggest bridge to cross. I could have easily just found someone else's script and modified that of course but I like to understand things, not just use them and so I started from scratch on page one of the book so to speak. There are some great resources out there which can help you learn. The Second Life Official Guide has a nice, easy chapter introducing the subject and there's also an entire book on the subject called Scripting Your World. There are other books too of course and it's well worth getting at least one for reference in my opinion. But even just using free online resources like this one and this one will get you scripting in no time. I'd also thoroughly recommend this interactive walkthrough tutorial on the basics of scripting which you can find at this SLurl. It's where I started out and I found it very easy to follow. The authors of Scripting Your World also have an in-world presence that you can visit at this SLurl.
Having decided what I wanted the script to do, it was relatively simple to work out the basic idea and then work out which functions were required. The biggest hurdle I faced was when it came to changing the colours of the faces on the control panel without hiding the texture on the front face. I understand the theory but got lost on working out how to actually write the code correctly because I didn't understand the format required. A quick call to my friend Jessi again and she explained it so I'd understand it and even gave me a little script tool she'd written that would help me out when it came to working out which face was which. The final script can be seen here.
default
{
touch_start(integer total_number)
{
llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES);
llSay(0, "+++CARGO CONTENTS - SMALL ARMS+++");
llSay(0, "+++CHECKING ID+++");
llSay(0, "+++ISSUING CARGO+++");
}
touch_end(integer total_number)
{
llSetColor(<0.0, 0.0, 0.0>, 0);
llSetColor(<0.0, 0.0, 0.0>, 1);
llSetColor(<0.0, 0.0, 0.0>, 2);
llSetColor(<0.0, 0.0, 0.0>, 3);
llSetColor(<1.0, 1.0, 1.0>, 4);
llSetColor(<0.0, 0.0, 0.0>, 5);
llTriggerSound("startrekdoor", 1.0);
llGiveInventory(llDetectedKey(0), "Nerf Maverick (Safe)");
}
}
The next stage was to put it all together and you can see me here, the proud creator of the Space Alien Cargo Pod mk1!

I gave a copy to Jessi and she then rewrote the script to be a little more elegant and passed me a copy of my pod back. I'm now studying her more elegant script so I can further my own knowledge which will help me make better content next time round. I've also given copies to a few other people who I've met while working on the project at the sandbox. I hope they will take it away and improve upon it or at the very least, enjoy it, even if only briefly. Because enjoying it and growing from the collaborative learning process is what content creation in Second Life should be about I believe.
What next? I've already begun sketching out an idea for my next piece of content creation and on top of that I've just installed Blender and Qavimator on my computer so I can gain more knowledge. I've also begun to take some scripting classes in-world and will follow these up with some building classes. And as always, anything I create will be given free and with full permissions to absolutely anyone who would like a copy. It may not be the greatest stuff to ever rez on the grid but it will be created in the hope that at least a few people will remember what Second Life is meant to be about.
Which brings me nicely back to the title of this blog and why it is important for us to be our own content creators. This is supposed to be "our world, our imagination". If we allow others the luxury of dictating what the content of our world is to be, then it becomes "their world, their imagination" and ultimately that means we are merely consumers endlessly circling in someone else's exhibition and shopping mall. I'm sure you can work out how I feel about that ;)
Anyway, at the end of the blog I referenced above, I said that I was going to put my money where my mouth is and go out and start learning to become my own content creator and what is more, that I would share that content for free with anyone who wanted it, purely in the hope that they would then take it and improve it and continue to share everything with full permissions. This was intended to bring back the original spirit of Second Life, the spirit of collaborative creation. The rise of the content creators running businesses is in danger of destroying that spirit once and for all. I might not be able to stop it but I'll be damned if I'll support it!
So yes, after a brief break from Second Life due to computer problems, I came back and began to think about how I could begin learning to be a content creator. Building and scripting were the obvious places to start of course. The trick was to decide what to create. I would also need to decide on what skills I needed to learn and where from. Luckily I was able to call on the services of an old friend to give me some advice - take a bow Jessikiti Nikitin! She took me to a sandbox and began teaching me some of the basic tools of building. I'd played with the real basics over time of course but I'd never played further. I was lucky to be able to call on a friend but if an experienced friend isn't available, there are plenty of good classes available for building and scripting. After teaching me some basic tools, she sent me out to play with them and my hexagonal cargo pod was born. I wanted a cargo pod that would look reasonable and have a little control pad that when clicked would list the contents and then issue them to the person who had clicked it. Okay, in overall terms this is seriously beginner level stuff, right? No one is claiming otherwise. The best content creators had to start at the beginning - well, apart from those who stole the work of others that is. Hey, did I just say that out loud? Hehe.
Once I'd built my basic cargo pod (five prims but I think I can get this down to four), I added colour and textures. The textures were all freebies that I'd picked up over time and there are plenty of brilliant resources for free textures and other stuff like sounds too.
Now I needed to create a script that would first list the contents of the pod and then issue those contents. To keep it simple, I kept it to one item for this first attempt. The Nerf Maverick is another freebie I picked up over time. In theory I wanted the project to be completely made from scratch but then cheated and used the freebie gun instead. Future projects will aim to be more scratch-built of course, including textures and sounds.
I'm not entirely unfamiliar with programming of course but I'd never even tried lsl to be honest so this was the biggest bridge to cross. I could have easily just found someone else's script and modified that of course but I like to understand things, not just use them and so I started from scratch on page one of the book so to speak. There are some great resources out there which can help you learn. The Second Life Official Guide has a nice, easy chapter introducing the subject and there's also an entire book on the subject called Scripting Your World. There are other books too of course and it's well worth getting at least one for reference in my opinion. But even just using free online resources like this one and this one will get you scripting in no time. I'd also thoroughly recommend this interactive walkthrough tutorial on the basics of scripting which you can find at this SLurl. It's where I started out and I found it very easy to follow. The authors of Scripting Your World also have an in-world presence that you can visit at this SLurl.
Having decided what I wanted the script to do, it was relatively simple to work out the basic idea and then work out which functions were required. The biggest hurdle I faced was when it came to changing the colours of the faces on the control panel without hiding the texture on the front face. I understand the theory but got lost on working out how to actually write the code correctly because I didn't understand the format required. A quick call to my friend Jessi again and she explained it so I'd understand it and even gave me a little script tool she'd written that would help me out when it came to working out which face was which. The final script can be seen here.
default
{
touch_start(integer total_number)
{
llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES);
llSay(0, "+++CARGO CONTENTS - SMALL ARMS+++");
llSay(0, "+++CHECKING ID+++");
llSay(0, "+++ISSUING CARGO+++");
}
touch_end(integer total_number)
{
llSetColor(<0.0, 0.0, 0.0>, 0);
llSetColor(<0.0, 0.0, 0.0>, 1);
llSetColor(<0.0, 0.0, 0.0>, 2);
llSetColor(<0.0, 0.0, 0.0>, 3);
llSetColor(<1.0, 1.0, 1.0>, 4);
llSetColor(<0.0, 0.0, 0.0>, 5);
llTriggerSound("startrekdoor", 1.0);
llGiveInventory(llDetectedKey(0), "Nerf Maverick (Safe)");
}
}
The next stage was to put it all together and you can see me here, the proud creator of the Space Alien Cargo Pod mk1!

I gave a copy to Jessi and she then rewrote the script to be a little more elegant and passed me a copy of my pod back. I'm now studying her more elegant script so I can further my own knowledge which will help me make better content next time round. I've also given copies to a few other people who I've met while working on the project at the sandbox. I hope they will take it away and improve upon it or at the very least, enjoy it, even if only briefly. Because enjoying it and growing from the collaborative learning process is what content creation in Second Life should be about I believe.
What next? I've already begun sketching out an idea for my next piece of content creation and on top of that I've just installed Blender and Qavimator on my computer so I can gain more knowledge. I've also begun to take some scripting classes in-world and will follow these up with some building classes. And as always, anything I create will be given free and with full permissions to absolutely anyone who would like a copy. It may not be the greatest stuff to ever rez on the grid but it will be created in the hope that at least a few people will remember what Second Life is meant to be about.
Which brings me nicely back to the title of this blog and why it is important for us to be our own content creators. This is supposed to be "our world, our imagination". If we allow others the luxury of dictating what the content of our world is to be, then it becomes "their world, their imagination" and ultimately that means we are merely consumers endlessly circling in someone else's exhibition and shopping mall. I'm sure you can work out how I feel about that ;)















