Showing posts with label Tutorials. Show all posts
Showing posts with label Tutorials. Show all posts

Monday, October 14, 2013

Ads - Making Sure Yours Run The Best

Greetings Roblox News readers! I'm here today to give you some hopefully appreciated help concerning ads. There are a lot of different things that affect how well ads run. These include your tix bet amount, the size of the ad, the quality of the ad, and much more. We will focus on each of these specifically throughout this article. Lets start with just explaining how ads work.

An Introduction
Ads are a way for Robloxians to advertise his/her place, clothing, model, or group. To run an ad, you have to choose a position for it to be displayed (banner, skyscraper or rectangle), details of the ad, upload the ad to ROBLOX, and then bet money on the ad. The more money you bet on the ad, the more times it'll be shown to a ROBLOXian. Note: Only TIX can be bet on an ad.

So this might not seem like a big deal to some people, but that's what I'm here for. I'm here, to explain how big of a deal it is to run an ad, and how important it is that you do it right.

There are many determinants that (guess what they do)...Determine - duh...That determine how well your ads run...They include...


  • Template Size
  • Page Positioning
  • 'Moneh' bet
  • Quality
  • Originality


Template Size and Page Positioning
First off, lets talk about size. There are 3 ad sizes that are conveniently named, Rectangle (300x250 Pixels), Skyscraper (160x600 Pixels), and Banner (728x90 Pixels). Now each of these sizes are important to consider when running ads. Why? Because certain ad sizes only run on certain pages. Below I've made a list of the different places each ad shows...
Skyscraper
Rectangle

Banner









Rectangle: Games Page (Main one, NOT on individual games pages'), Profile Page
Skyscraper: Home Page, Build Page, ALL pages concerning the forum, Groups Page, Money Page, Advertising Page
Banner: Catalog Page, Build Page, ALL pages concerning the forum, People (Browse) Page, Profile Page, Character Page, Friends Page, Groups Page, Inventory Page, Sets Page, Trade Page, Money Page, Advertising Page

As you can see, there is an OVERWHELMING difference between the amount of pages each type of ad could be viewed on. What can we learn here? Banner seems to be the best choice of all! It shows up on almost every page of Roblox! This leads us to our second point, positioning.

One major determinant of how well your ad(s) run is there positioning. For example, notice how rectangle ads are shown near the bottom of profiles? Where a banner ad is ALWAYS at the top? ROBLOXians who are quickly skimming a player's status will with no doubt see the banner ad, however, if they do not scroll down the page, they may not ever see your rectangle ad. A poor waste of money if your ad isn't even seen! Other ads that might be definitely seen when you open up a page are sometimes ignored, depending on the ROBLOXian and what the page is. Forum Pages fall directly under this category. On the forums, people don't usually look at the ads, they want to cut to the chase and post, post, post. They're so used to seeing ads on the sides that they are ignored by the majority of forumers. But then again, it depends on who it is.

Money Bet
Now lets look at yet another determinant of how well your ad(s) run. The determinant is called moneh. Yesh, good ol' fashioned moneh. I would've said 'green stuff' but since you bet on ads with tix, which are yellow, I couldn't.

Anyway, the amount of money you bet can really change how well your ads do. If you bet 50 (the minimum) your ad will show less than 300 times probably, coming up with a pretty ineffective use of your tix. However, if you bet the opposite extreme, 49k tix...You're looking at every user seeing the same ad MULTIPLE times. When a user sees the same ad multiple times, his innards keep saying, "I wonder what is behind that ad" The first time they see it they might glance over it...The second time they're like, "Hey, I've seen that before" The third time they're going to be like, "I really want to click it, but I must resist." And man...That fourth time knocks them down and they are like, "Right, I've GOT to click it now". Then they click it. So yeah, don't say, "No you, I don't do that." I know you do.

Quality
Next lets look at quality...Quality is one of the more important determinants that you'll have to learn to cope with. Well, quality or failure, one...When a Robloxian sees an ad, he's not really going to click it unless you find it interesting/cool. The way you make something 'cool' is by designing it well. This is such an important determinant that people make a living on Roblox by making quality ads for people. So this really isn't hard to understand, its just hard to do. Basically, want your ad to do well? Design the ad to where most Robloxians will want to see what's behind it. For example, if i just see a picture of a noob and it says, "before it clicked." And underneath it is a picture of an 'epic looking' Robloxian with the caption, "after he clicked." The background is whitish.


I think everyone here knows that this is simply a badly designed ad. The maker probably put less then 3 minutes into it. Now lets imagine you create an epic ad with the graphic design based around a motorcycle with flames coming up around it and a glowing sword, you might be like, "Heh, that is cooool...Its a glowing sword with a flame car...I wanna see what that game is!"

Yeah, no sword, but heh, the motorcycle on the left is definitely well designed, right?
That ad might take approximately 15 minutes to make...Alot more work, with alot more results.

Originality
Lastly, lets take a few quick seconds to go over originality. Remember the fail ad I mentioned before? That format and design has been used over and over and over and over and over and over and over and over and over and over and over and over again. Yes, the extra emphasis on the 'over and' was purposeful. It's originality has become a whopping 0. Now, lets take into consideration my sword/car ad...I think we can all agree that it is what I call..."o-riginal" Has anyone ever seen an ad with a car in it and a sword that glows? If you have, then it was only once or so because I certainly haven't. This ad (if it was real) would have a 100 on originality. If it had been used before, then maybe a 95, which is still pretty good.

Alright, now that I've gone over most of everything about running ads and probably confused you backwards, forwards and zigzagwards...Let me do a quick summary...Remember that...

1. Is your template size reaching out to the audience you are trying to grab?
2. Will it be in an easily viewable position or will it be hidden or ignored?
3. Did you bet enough money?
4. Is your ad of quality design?
5. Is your ad original?

Thanks for reading and I hope to elaborate on some of the ideas here. Cya guys later and I hope you were able to learn something!

Oh and, forgive me if you find the article to be badly written or not '---blank---'. This is my first article and I'll continue to improve each time.

Thursday, September 19, 2013

Making Your Code Professional

Good Coding Practice

Hello, my name is Cameron Stickley ( LOLFUNNY12345 | @roblox_tweeter ). You probably don't know me but I was a Roblox Builder and was very active but rarely use Roblox now. I have turned my head away from building and now spend my spare time using code to do complex maths algorithms and make programs to test my abilities. I know Pascal, Python and some RBX.Lua. 

When you learn computer science and research code structures you start to take on the ideas which go with them, these ideas being Code Structure. There are 4 main ideas I want to describe how to use properly.

Indentation

Some languages (inlcuding Python) don't use "end" to end a function or procedure instead they will use "white space". This means that the compiler will check to see if the next line of code has been indented to a same or greater distance and then skip over it. If it's not indented as far it is "out of the function" this means that the compiler thinks it is the continuation of the code. Indentation also makes your code look neater, cleaner and more organised, it helps with cleaning up or removing errors that occur in the code and mean you can edit code more simply.

Comments

You may be used to people occasionally placing comments in code as jokes, for instance as you read through "Person299's Admin Commands V2" wrote in RBX.Lua on the Roblox platform you will see him commenting just about a bug on his computer screen. This is not a useful use of comments, they are meant to be used to explain what is going on in that section of code and why. This means that you can debug the code easier and not affect the rest of the source code.

Functions/Procedures

Functions and procedures allow you to call a predefined set of code with certain parts of information entered to affect the code, you don't always need a parameter in a function but most do require one. For instance in RBX.Lua the most used function is probably wait([number]) not many people think of this as a function but it is, it stops the code for a selected amount of time and when there is no parameter or argument entered ( wait() ) the value is set to the default you can change in roblox studio settings (I think it's 0.0333333 seconds). Functions also make it easier to debug as you only have one line to change with an error rather than as many times as it appears. This allows easier debugging and neater code.

Variables

The 2 main variable problems are you need to define variables at the start of code to reset the value to prevent errors due to dividing by zero etc. The next problem is sensible names; you may think good coders use "for i = 1, 3 do" in RBX.Lua (sorry if code is incorrect syntax, been using varying languages recently) but this is the sign of an amateur. "i" is not a sensible variable name and does not help. Try using "count" rather than "i". 


Following these rules should help you become a better coder, thank you for reading.

Friday, June 14, 2013

The Changed Function

Changed is a function used often around ROBLOX, many users consider it a treasure to use in their game as it's brilliant at firing certain options once an element/property of an item with the changed event in it has been changed.
Example:
game.Lighting.Changed:connect(function(change) --This calls the function, names the event, stores the name of the changed property into the variable 'change'. 
if change == "TimeOfDay" then --Makes sure the changed item of lighting is the Time before it does anything.
 for _,parts in pairs (game.Workspace:GetChildren()) do --This gets the parts in the workspace, stores them into a variable named 'parts'. 
if parts:IsA("BasePart") then --This checks if the parts superclass/class is a BasePart/Part. 
for _,v in pairs (parts:GetChildren()) do --This gets the children of parts and stores them into the variable v. 
if v:IsA("Light") then --This checks if the children of parts is a light. 
if game.Lighting.TimeOfDay == "17:00:00" then -- This checks if the time of day is 17:00:00 (in-game time)
v.Enabled = true -- This enables the lights 
elseif game.Lighting.TimeOfDay == "08:00:00" then --This checks if the time is 8am (in-game) 
v.Enabled = false -- This enables if above is true. 
 end end end end end end end) -- This ends the code. 


You can use the changed function to do many things, it is only fired when something in the class you are using it in has changed. Therefore it's easier than using any while loop to keep checking with an if statement.

Fiddle around with the above code, learn from it.

This was a short tutorial/example by Zakary Wilson.
Thanks for reading.

Wednesday, June 5, 2013

CFraming - What is it?

What is CFraming?

CFraming or Coordinate Framing is a way of making multiple bricks 'merge' and still act under the normal code of physics in a region you choose. CFraming allows users to make more detailed and versatile models and/or places in Roblox Studio.


What Can I Use For CFraming?


CFraming can be done in many ways. The main way is with plugins for instance Anaminus' CmdUtl. Other ways include using Roblox Studio 2013's new Collision Check "Disabled" or using the command line and typing in the code yourself. For instance to change a bricks position to within the position of another brick you would have to use code like this:
"game.Workspace.[brickNameHere].CFrame = CFrame.new(xPos, yPos, zPos)" This simple line of code would allow you to CFrame a brick "inside" another brick which sounds very plain and boring but with CFraming you can make very interesting and complex models and places which really can amaze people.




EBR Logo

Have I Seen CFraming Before?

A lot of rather well know places have used CFraming and have used to their advantage very well. Some people are known just simply for their CFraming ability and look for instance geico480, finwei and WhoBloxedWho. There are also groups that have just been made for building which are now mostly CFramers the "main" most prestigious one being EBR (Elite Builders of Robloxia) - Currently Owned by WhoBloxedWho.





Will C-Framing Get Me Noticed?
Dirty Waters



Many people have been involved in major projects due to their CFraming. The whole group of EBR (Elite Builders of Robloxia)  had a build server in which Shedletsky tested the new feature Dynamic Lighting. I currently have a WIP CFraming place which has just over 1950 visits at the moment so I am relatively unknown but Shedletsky and stickmasterluke (two admins I think you may have heard of) have favourited a place of mine each along with other semi-famous/famous people.


Finally...

I would like to share with you my recent unfinished builds which have had CFraming in them.
A map for a new RPG - Forgotten Fate and
A map for a recently started FPS (First Person Shooter) - Because I Can


Both are being made  with zakary99.




Scripting Tutorial: Making A Chat Gui

When coding in ROBLOX Studio for things that will make your games look lots more stylish, you have your cookiez and milk next to you while coding a beautiful addition to your game. On this tutorial, I will create a chat gui, very simple, and can be modified however you wish. If you would like to edit this and do not know what to do, personal message me. (zakary99)

1. Write this in the command bar: Instance.new("ScreenGui", game.StarterGui).Name = "ChatGui" or add a new ScreenGui to StarterGui and name it 'ChatGui'.

2. Add this code to a script in the workspace:
game.Players.PlayerAdded:connect(function(player) -- Main two functions.
player.Chatted:connect(function(msg)
for _,v in pairs (game.Players:GetChildren()) do -- Gets all the players
for _,frame in pairs(v.PlayerGui.ChatGui:GetChildren()) do --Finds the chat children if there is one.
if frame:IsA("Frame") then-- Finds out if the chat's children is a frame
frame.Position = UDim2.new(frame.Position.X.Scale, 0, frame.Position.Y.Scale-0.05, 0) -- moves the frame up.
end
end
frame = Instance.new("Frame", v.PlayerGui.ChatGui)--Makes a new frame for the text.
frame.Size = UDim2.new(0.3, 0, 0.05, 0)--Chooses the main size.
frame.Position = UDim2.new(0, 0, 0.05, 0)--Gives the frame the correct position.
frame.Style = "RobloxRound" -- Makes the frame Roblox Round
frame.ClipDescendants = true -- Makes it so the text cannote escape the frame.
message=Instance.new("TextLabel", frame) -- Makes the message label.
message.Position = UDim2.new(0, 0, 0.5, 0) -- Chooses the correct position inside the frame.
message.TextXAlignment = "Left" -- Makes the text on a left alignment so it has a better length.
message.TextColor3 = BrickColor.new("White").Color --Chooses the color
message.Text = "["..player.Name.."]: "..msg -- Gets the message and player's name inside the message label.
message.FontSize = "Size18" -- gives the message's font size 18
message.Font = "Arial" -- A personal favourite
end
end)

end) -- Ends the functions.

Click here to take the model.


This is just a simple chat gui, you could integrate things like TweenPosition() method and Coroutines.

Thanks for reading,
Any questions? Tweet me @RBX_Zakary99, skype me: Zakary Wilson (hetrozakary), PM me (zakary99)

~Zakary Wilson

Friday, January 4, 2013

Data Persistence: How-to.


Hello Robloxians! TechTeam911 here again, with a new scripting tutorial on how to use the powerful Roblox feature, Data Persistence.

History:
Data Persistence was introduced by John Shedletsky back in April of 2011 (Blog article). Before it was released, users who were fluent in Rbx.Lua would use their own algorithims to convert data into text. Players would then be able to save the converted data as a string of numbers/letters onto their computer for later reference. When a user wished to retrieve data, they would then copy the string they were given into another area, where it could be decrypted. A well known users that created pseudo data persistence was Mariostar6464.

How it works:
Data Persistence is very similar to a database program called SQL. SQL is a database in which data can be saved/retrieved on the fly. SQL is commonly used among websites where data is meant to be stored on a server for later use, such as MeepCity, Amazon, Roblox, and other popular sites that require you to sign-up. SQL requires forms on sites that use it to enter a key specific to that database, so that hackers cannot randomly read/write data from the database.

Fun fact: When you hear a person on Roblox bragging/claiming that they "SQL'D Roblox" - it means that they are claiming that they found the passwords to the Roblox database, and were able to change/view data. Users that claim to SQL sites are frequently bluffing - because it would take years to find out the password for an SQL server with a strong password. (Think 20 - 30 characters, alphabet, numbers, symbols, lower and upper case.) If the user has an average computer, it would take ages to preform that at one password per second. However, if they have a very, very powerful computer, and the resources/programs to do it (Guessing at 1000 password a second, without CAPTCHA), it would take around 5 days. But, most sites have methods in place to prevent users from guessing so fast.

Data Persistence in Roblox:

Data Persistence in Roblox is like MySQL. You can read and write data to the database by using the methods supplied by the Roblox developers. In an effort to prevent users from reading/writing unwanted data using Data Persistence, Roblox developers implemented a few requirements, which must be met in order to use Data Persistence.

1. "Data persistence methods cannot be called from within a LocalScript. You'll need to process the saving in a Script."

What it means: It means that when using Data Persistence, you have to use it inside a script, not a local script.

Why they did it: Local scripts are loaded into the client environment and run client-side, scripts are never loaded into the client environment, they are run server-side. It prevents users from stealing a working copy of a place, because the server-side scripts won't be copied over. It also prevents users from using exploits to tamper with their own data/data of other users.

2. "There's a limit on how much data can be stored per player per place."

What it means: You can store up to 45000 bytes of data, per player, per place. If your curious as to how to figure out how much saving something would take up in terms of bytes, see this Roblox Wikipedia article (http://wiki.roblox.com/index.php/DataComplexity)

Why they did it: Roblox hosts data on a service offered by Amazon called AmazonS3. AmazonS3 allows a certain amount of storage with a certain amount of bandwidth for a certain amount each month. If Roblox goes over the limit Amazon sets, then they move into the next tier, which forces Roblox to pay more per month.

Consider it this way. If 100,000 users use data-persistence, and they upload a car that is 40 bytes in size, that's 4,000,000 bytes. 4 million bytes is 4 gigabytes. Roblox has millions of users. If 3 million users make a car that is 40 bytes in size, that's 120,000,000 bytes. 120,000,000 bytes is 120 gigabytes. Roblox set a limit as to how much data could be stored, because on a large-scale with millions of users, users uploading data to Amazon's servers could get out of hand quickly, and toss the Roblox budget into chaos.

45,000 bytes is more than enough for the average player. 45,000 bytes is the average WTRB (Welcome To Roblox Building) creation - with all the parts/scripts included. If 3 million users upload 45,000 bytes of data, that's 135,000,000,000 (135 billion) bytes of data. 135 billion bytes of data is 135,000 gigabytes of data, which is 135 terabytes. I currently do not know how many users play Roblox, so 3 million is an example.

3. "Data is specific to both the player and the place - it is not possible to save data to a player that is shared between places (such as a keeping data after a teleport), nor is it possible to save data to a place which is shared between players (such as saving high scores)"

What it means: Currently, Data Persistence is limited to being able to save data to only the player, and only to the place where the data was saved at. Currently, Roblox developers are considering an idea in which users can load/save data between places (http://blog.roblox.com/2012/01/the-big-bang-at-roblox-universe-creation/). This can be used to create multiple chapter RPG games that span across multiple games, being able to make a script that bans users from all places if necessary, and making models in-game that can be transferred across multiple places.

Now that the limitations are out of the way, lets look at the methods that will become handy while you are working with Data Persistence.

Most important thing about Data Persistence to remember is called, "Keys". Keys are what you save your data to, and what you use to find it later on. Think of it like a safety deposit box. You put your stuff in it, you can take your stuff out, and you can do what you want with it. If you forget where you put your safety deposit box, how will you put/take stuff out?

Worst of all, if you forget the key, there's no way to find out what it is later on. Currently, Roblox is lacking a Data Persistence management system for places, but that is something we should expect in the near future (Data Persistence is still new, so they're ironing out the kinks/improving on it.)

LoadBoolean()

How it's used: A boolean is a true or false statement. As the name says, it loads a true or false statement. This can be used to tell if a user was specified a permanent administrator while in a server by the owner, or if a user is banned etc.

How to use it:
When loading and saving data, the first thing you always must do is check to see if the data is ready to be accessed. If you try to access the data without waiting first, the script will toss you an error. It's like trying to make a car that is off accelerate - you can't do it.

Example: This loads a saved boolean called, "Ban"
game.Players.PlayerAdded:connect(function(player) -- Player entered the game.
player:WaitForDataReady() -- Crucial, you have to wait for the data server to be ready before retrieving.
local ban = player:LoadBoolean(Ban) -- Load the boolean called, "Ban".
if ban == false then -- Is the loaded Boolean false? It also returns false if Ban was never saved.
print ("Player is not banned") -- Player is not banned, self-explanatory.
else -- What if it isn't false?
print "Player is banned" -- The player is indeed banned.
player:Destroy() -- Removes the player
end -- End tag for the if ban == false statement.
end) -- End tag for the function.

LoadNumber()

How it's used: LoadNumber is as it describes - it loads a saved number. If the number doesn't exist, then it automatically returns 0. This is helpful when making persistent leaderboards and saving stats, such as time played, or how many kills a person has.

How to use it: Remember the rule with accessing data - always wait for the data to load first. If when you try to load a number, and it ends up it was never saved, it automatically returns 0.

Example: This loads a number called, "Kills" into a leaderboard.
game.Players.PlayerAdded:connect(function(player) -- Player entered the game.
player:WaitForDataReady() -- Wait for the data to be ready.
local leaderboard = Instance.new("Model") -- Create a new model.
leaderboard.Name = "leaderboard" -- Name it, "leaderboard".
leaderboard.Parent = player -- Put it inside the player.
local kills = Instance.new("IntValue") -- Create a new IntValue (Used for leaderboards)
kills.Name = "Kills" -- Name it kills
local killNum = player:LoadNumber(Kills) -- Try to load a number saved under the key, "Kills"
kills.Value = killNum -- Set the value of kills to killNum (If it didn't load, it would be 0, so it doesn't matter.)
kills.Parent = leaderboard -- Parent kills to the leaderboard
end) -- End for the function

LoadString()

How it's used: Lets say you want to load and save a specific thing about a player, so you can look at it later on. LoadString loads a string with the key you supply.

How to use it: Remember rule - wait for data to load first before accessing it. If you never saved a string under the key your trying to load, it'll return a blank string.

Example: This loads a string under the key, "ThingIenjoy" and makes a message with it, letting the world know what that user likes.

game.Players.PlayerAdded:connect(function(player) -- Player entered game.
player:WaitForDataReady() -- Wait for the data to be ready.
local thingPlayerEnjoys = player:LoadString("ThingIEnjoy") -- Load a string under the key, "ThingIEnjoy".
if thingPlayerEnjoys ~= "" then -- Make sure that it isn't blank.
local m = Instance.new("Message") -- Create a new message.
m.Name = "PlayerLikesThis" -- Name it, "PlayerLikesThis".
m.Text = (""..player.Name.." enjoys "..thingPlayerEnjoys.."") Set the text of the message to, "Playernamehere enjoys thing that the player enjoys".
m.Parent = game.Workspace -- Parent it to workspace.
game:GetService("Debris"):AddItem(m,5) -- Make the message vanish after 5 seconds.
end -- End for the if statement
end) -- End the function

LoadInstance()

How it's used: Lets say you have this elite game where users get to build their own cars and race them. A user spends an hour working on this drag-car, but he doesn't want to let his work vanish once he's gone. With Data Persistence, it is possible to save his work, and load it later on.

How to use it: Remember the rule (Need I remind you once more?) Also, in terms of how much data you can store, you used to be able to use something called DataCost on instances, but the developers locked it for some reason. If your thing is too big, it won't save - big being the maximum no. of parts in a WTRB creation (Huge house, mansion etc.) Also,

Example: This loads an instance under the key, "SavedCar" and puts it into workspace.

game.Players.PlayerAdded:connect(function(player) -- Player entered game.
player:WaitForDataReady() -- Wait for data to be ready.
local savedCar = player:LoadInstance("SavedCar") -- Loads an instance called, "SavedCar".
if savedCar ~= nil then -- Make sure that the car actually exists before we try to tinker with it.
savedCar.Parent = game.Workspace -- Parent it to workspace.
savedCar:MakeJoints() -- Make the joints of the car, otherwise it might fall apart.
savedCar:MoveTo(player.Character.Torso.Position + Vector3.new(0,5,0)) -- Move the car to the torso position of the player, and move it five studs up. Watch it fall on the player's head, lol.
end -- End for the if statement.
end) -- End for the function.

SaveBoolean()

How it's used: Lets say you want to ban a player from your place forever. You can save a boolean to him, and use the earlier example to see if he has indeed been banned before.

How to use it: Remember the rule. Booleans can only be true/false.

Example: This saves a boolean under the key, "Ban" to players that aren't epic enough to join our 1337 game.

game.Players.PlayerAdded:connect(function(player) -- Player entered.
player:WaitForDataReady() -- Wait for the data to load
if player.Name ~= "TechTeam911" or player.Name ~= "arbirator" then -- Is this person worthy enough to join?
print("Not epic enough")
player:SaveBoolean("Ban",true) -- Saves a boolean set to true under the key, "Ban".
player:Destroy() -- Destroy the player.
end -- End for the if statement.
end) -- End for the function.

SaveNumber()

How it's used: You were pwning noobs at your awesome game, and you want to keep track of all your pwnsome kills. Using SaveNumber, along with my earlier example, you can keep track of their kills.

How to use it: Remember the rule. Numbers are numbers, letters/symbols are obviously not numbers.

Example: This saves the player's kills to load later on.

game.Players.PlayerLeaving:connect(function(player) -- A player is leaving
player:WaitForDataReady() -- Wait for data to be ready to be accessed.
player:SaveNumber("Kills",player.leaderboard.Kills.Value) -- Save the player's kills under the key, "Kills".
end) -- End tag for the function.

SaveString()

How it's used: Lets say that you want to save a specific comment with a player, like something that they like. Using SaveString, you can do so.

How to use: Remember the rule. Strings are letters/numbers/symbols.

Example: This saves a string called, "pie" under the player when they leave. Using the earlier example with LoadString, it will say, "Usernamehere enjoys pie"

game.Players.PlayerLeaving:connect(function(player) -- When a player is leaving.
player:WaitForDataReady() -- Wait for data to be ready.
player:SaveString("ThingIEnjoy","pie") -- Saves the string, "pie" under the key, "ThingsIEnjoy".
end) -- End for the function.

SaveInstance()

How it's used: A user is building an awesome car in your car making game, but he doesn't want to lose that 1337 creation. Using SaveInstance, you can save that user's car and load it later LoadInstance().

How to use it: Remember rule. Total saved data to player cannot be over 40 kilobytes for everything.

Example: This saves a model in workspace called, "Car" into the player for later loading.

game.Players.PlayerLeaving:connect(function(player) -- Player is leaving
player:WaitForDataReady() -- Wait for the data to be ready.
player:SaveInstance("SavedCar",game.Workspace.Car) -- Saves a model to the player, the model being an object in workspace called, "Car" under the key, "SavedCar".
end) -- End of function.

Also, if you need to erase an instance, you can go, player:SaveInstance("keynamehere",nil). That allows you to erase an instance if necessary.

Summary:
Data Persistence is a very powerful feature that Roblox has offered users. New scripters may find Data Persistence difficult to understand, but they will come to understand it as their scripting skills increase. Data Persistence is bound to be upgraded, because as Roblox becomes older, newer features/upgrades are released. John Shedletsky once suggested the idea of a Data Persistence control panel, and it is under consideration.

This has been a scripting tutorial by TechTeam911 - I hope you enjoyed it! I will release more scripting tutorials as the time passes by.

Sunday, December 16, 2012

Gift Guesses Gift #5: Festival Gift of Group Fundraising

Greetings gift collectors of ROBLOX. Today I bring you a gift guesses post on the Festival Gift of Group Fundraising which has already been given out. The gift is currently on sale for R$75 is timed to go off-sale in around 1 day.

Festival Gift of Group Fundraising
'Raising the roof for fundraisers. Alright. Alright.'

How was the gift obtained? 

  • The gift was awarded to anyone who made an item for their group and sold at least 1 of them by December 11th, 2012. 

How do I make group items?

Although this gift achievement has passed, I believe it would worth investing in some group items to raise group funds for advertising, but also to provide uniform to your members - particularly if you are in a war group. 

1. Navigate to the 'my groups' page and select a group you own.  Click the 'create items' button on the right hand side near the top of the group page. 


2. Once clicked, you will be given the choice of either creating a shirt, a pair of pants or a t-shirt. These are then uploaded like any regular clothing item. 



3. Once you have uploaded your group item and put it on sale for a price of your choice, it will appear in the group items tab. From here you can navigate to any of your group items and configure them. 


The money raised by the group items is all added to the group fund and not the owners account. This provides an alternative means of funding for advertising of the group. 


What may be inside the gift?

Due to the word 'festive' in the gift's name, \the item inside is likely to be strongly related to Christmas and the festivities throughout. The item could relate reindeer, Christmas decorations, lights, and of course; Santa Claus. It could also have something to do with groups inside, perhaps a crown of linked ROBLOXians could be within - although, this is unlikely because the gift only costs R$75. It is most likely going to be some kind of knitted cap as a pair of Shades have already been released out of the Newshound Gift. It might even be a Christmas themed Sombrero, but hey, that's just a wild guess. 

Happy hunting!

Thanks,

-Arbirator
Editor of Roblox News 

Thursday, December 13, 2012

Gift Guesses Gift #4: Self-Referrential GIft of Referring

Greetings gift hoarders of ROBLOXia! Today I will be gift guessing the Self-Referential GIft of Reffering.  As the name suggests, this gift is likely to be all about ROBLOX's referral system.

The referral system is simply where an individuals tells another individual about ROBLOX and how to sign up. On the last page of the registering process, you are given an option to type in the name of the user who 'reffered you'. If you fill this in; the place will receive +1 to their all time refferal count and will be a step closer to the Inviter Badge. Alternatively this gift could actually be linked with referring yourself, which is an option on the 'share' section of the site.

Self-Referrential GIft of Referring
The description reads: 'Get the references. They're not going to get themselves.'

Here are the several possible methods of obtaining the gift:

  •  As mentioned above, the gift is most likely obtained by reffering users to join ROBLOX (not to sign up for BC however - this was used as a gift back in 2009 as the Wintery Gift of Thanks). You can do this through the 'Invite A Friend' and clicking 'Email to a Friend'. Perhaps you can get some new friends to join ROBLOX! You most likely need the 'Inviter Badge' to obtain the gift - this is simple to get; just get four new users to refer you. Alternatively you may need a larger amount of referrals - perhaps between 10-20, although this unlikely. 
  • With a slight difference to the method before; you may need to click the 'Email to Myself' option and then send it to your verified email address. This method is possibly hinted at by the words 'Self-Referencing' and the use of a capital 'I' within 'GIft'.                                                                                                                       
  • The final and least likely accurate method is referring to yourself in your own description. Some of my more hawk-eyed followers may have observed me copying TheEasterZombie's ingenious idea by putting: 'I'm going to refer to the Self-Refferential GIft of Referring in my description, just for banter.' in my account blurb. You may want to do something like this to - just to be sure to get the gift. 


A quick walk-through on how reffering works on ROBLOX:

1. You can choose to get your refferals through word of mouth or by emailing your friends through the ROBLOX interface. To do this, simply navigate to the 'Invite A Friend' page under the share section on the ROBLOX main bar. Before clicking 'Send invitation' button at the bottom of the page, ensure you provide a email address for the message to be sent to (you also have the option of personalising the message). 




2. When a user first signs up to ROBLOX, after going through the individuals age, username and password the site will ask you if you would like to add a user's name in the refferal box. This is shown below: 



What might be inside the gift: 

Because the gift is likely direcly linked to a ROBLOX badge; the gift inside could possibly be another medal hat similar to the ROBLOX Veteran's Medal from 2010. It could be a ROBLOX Inviter's Medal and even possibly be this retexture. On the otherhand, the gift could be relating to the gifts wrapping and including some kind of candy cane themed item such as a cap or gear. 

Thanks for reading Gift Guesses #4, happy hunting!

Thanks,

Arbirator
-Editor of Roblox News 


Sunday, December 9, 2012

Gift Guesses Gift #3: Commissioner's Gift of Commissions

Greetings fellow gift gatherers! Today I will be detailing the second gift released to the ROBLOX catalog. The gift is simply named ‘Commissioner’s Gift of Commissions’. The gift wrapping is of a light blue background with snowflakes of varying size randomly placed on it (much similar to the Snowpocalsype gift of 2011). However, on top of this is a collection of gear printed onto the wrapping. If you look closely you will be able to spot a ROBLOX skateboard, Woodland Staff, Decoy Deploy, Gravity Hammer, Katana, Red Stratrobloxxer, Fuse Bomb, and mini ninja.

The description of the gift reads ‘Do you have game? Do you sell gear? Did you do it more than 10 times? Great.’


 The method in which to get the gift is actually given to you in the description, you simply need to: 

• Add gear to your place and sell over 10 (I suggest selling 11 just to be sure). You will receive a 10% commission on each gear, meaning you will get 10% of the money the customer gave for the gear.


Courtesy of NonstopEpic - our very own Catalog Manager, here is a great strategy to get the gift: 


Okay, so if you've sold at least 11 commissions (since it's asking for more than 10) then you're going to get this gift. If not, then you can do the last-minute gift getting strategy.

  • First, go to the Silver Ninja Star of the Brilliant Light. This gear is the cheapest gear item in the catalog, hence why we're using this gear for the commission. Click "Add to Game" and add it to one of your active places.
  • Second, go try to find people who need commissions and/or are willing to help people get commissions. You can find people by going on the forums or checking item comments.
  • Third, talk with the person about getting a commission. Most times the person will ask you to pay their commission before they pay yours. Try to be careful when doing this.
  • Once you get at least 11 commissions, you can stop hunting for commission-buyers. You can check your commissions by going to your home page, then the money page, and then change it to commissions.
  • Due to having to likely help a lot of other people with commissions while trying to gain commissions, you'll spend around 150 robux. 



 If you aren’t sure how to add gear to your place, check out the tutorial below: 

 1. To add gear to your game you need to first navigate to ROBLOX Catalog and search for ROBLOX gear. (Try looking for older gear because gear created recently can’t be added to your game). For the example below; I used the ‘bestselling’ discriminator to find the gear I wanted.




2. Then click on a gear of your choice, once on the item page, click the ‘add to game’ button underneath the buy button. A drop-down menu will appear and you can choose which of your active places to add it to (of course, BC members will have a wider choice). Rented gear is a popular option for gear commissions because it will require repeat purchase from players of your game if they want to continue using it.



What may be inside the gift?

 Due to the gift being based on Commissions which solely involve gear, the item inside Is likely to be a gear item. It could be some kind of money themed gear, such as a Robux or Tickets launcher linking with the money being raised from the commissions. On the other hand, the theme of the item could be related to the title; such as a Police Commissioners cap or badge, or perhaps even a baton.

 Thanks for reading and happy hunting!

 -Arbirator
Editor of Roblox News


Monday, November 26, 2012

Zakky's Scripting Tutorials #1 - Printing

BASICS #1

Printing is a simple thing... You have something called an "output" in ROBLOX Studio, which will display your prints. Printing is often used just to narrow down a diagnostic of a paragraph of code or so. You use prints to organize your scripts too. So if I had a cake generator script....

print("CAKE GENERATORZ LOADED")

That would print a line on the output saying "CAKE GENERATORZ LOADED").
But what if my Cake Generatorz script wasn't working and OUTPUT wasn't helping me fix it? Well... This line could help you diagnose it. Because, if you see the line printed, then there's something wrong with after it. Whereas if it didn't print something would be stopping it.

Examples:
print("zakary99 model loaded")

You can also continuously print my name...

while true do 
print("Zakary99!!")
wait()
end

That would carry on printing my name forever.

This is a very short tutorial.

We will get more advanced as time goes by...

Tuesday, November 20, 2012

Mango's Tutorials: How to create successful ads

Advisement's; some are good, some are bad. Some get lots of clicks, some don't. Today I'm going to teach you how to make good ones, that people will click.

Really, there are only 2 types of ads people will click:

  • Humorous ads
  • Very well made ads

If you have an ad that includes humor, it doesn't necessarily have to be well made. Because if you can get the person to laugh, that's all the matters.

So, since this isn't "Mango's Tutorials: How to be funny", were going to focus on well made ads. Beautiful hand crafted ads that show whatever they are advertising.

Since I don't really know what graphics program you use, I'm just going to tell you what people like to click, and hopefully you can re-create those effects on your program.

Here's one of my simple examples:


See how the text is nice and bold? This is a plus for ads. When your clicking around the Roblox site, your going to completely ignore the ads unless something really pops out at you.

Here's an example of a poorly made ad:


Sorry to whoever made this, but it's not something I, or probably you, would click anytime soon. It's to simple, bland and looks like a stop sign. You want to ad many colors and ambient into your ad, it doesn't have to look like a stop sign to pop out.

Here's another bad example:


Whats wrong with this one? Well for one, it doesn't pop out. Two, it looks like someone just cut out pictures of a magazine and pasted them onto an ad. This is another thing you don't want to do, copy and paste pictures to the ad, unless of course you actually have a nice background and have the ability to put drop shadows and ambient around them.

This is what a good ad should look like:


Clean. Organized. Pops out. Colorful. Ambient's. Drop shadows. Captivating text. All in all, you really want to include these in your ad, because if you don't, it will just get lost in the competition.

Thanks for reading! PM me any questions HERE.
Don't forget to comment and click the 'Helpful' button below the post!

-Mango

Sunday, November 11, 2012

Mango's Tutorials: Beginning Scripting

Hey guys! I've asked some people and it appears that scripting is something that a lot of users are wanting to understand.

Beginning scripting is very easy to learn, if you have the urge and willpower to overcome the twist and turns that it's rocky road brings fourth. Once you've got the basics down, you'll be able to understand more complicated tutorials.

But before we get started, you'll need to have Roblox Studio set up properly. To do that, open Roblox Studio and start a new project.

Move your mouse over the "View" tab that's located on the top of your screen. your going to want to select "Explorer" and "Properties".

This is what the explorer should look like:


This is what the properties tab should look like:


Once you've got those tabs opened, we can continue on with the tutorial.

Notice when you click something on the explorer, you can change it in the properties tab. And everything that appears in the explorer, is in the game. Also take notice that everything is under "Workspace" in the explorer.

Alright, now I want you to insert a brick, and I want you to name it 'test'. The brick should appear as a "Part" in the explorer tab. Now insert a script. Do this by rolling your mouse over the "Insert" tab on the top of your screen, then click "Insert Object".



A window should come up, select "Script". A "Script" should be added to your explorer.

Double click the script. A window should come up with the text "Hello world" in it. Since we don't really need that there, your going to want to erase that.

What we're going to do, is change some of the properties of our 'test' brick using a script. In order to do that, we first have to tell the script what we want to edit. But, how do we do that? Simple.

First, we tell the script to look under 'game', since everything is in the game, obviously the brick is going to be in there. Then, if you look at the explorer, your going to want to identify it under 'Workspace' as well.

It should look something like this:

game.Workspace.test

First it looks in game, then Workspace and then it's directed to our brick, 'test'.

Now we want to change our brick.

Click the 'test' brick on the explorer and look at the properties tab. Let's change the transparency, to do that, we're going to show the script what we want to change. So add 'transparency' to the script, like so:

game.Workspace.test.Transparency

Now we can go ahead and change it. We want to add an '=' sign and put in the decimal you prefer, just like this:

game.Workspace.test.Transparency = 0.3

Congratulations! You've created your first script. Push the play button, if you've done everything correctly,  the 'test' brick should become transparent.

Send me a message HERE to ask me any questions!
Don't forget to comment!

Thursday, November 1, 2012

Edge-less Bricks Tutorial

Have you ever wanted to build something that looked really nice? Have you thought the bricks that were put together had an edge that showed the individual parts and ruined the atmosphere? Well, I'm here to teach you how to get rid of that.

First, let's take a look at the common methods of building a simple wall with windows.


1.

Using regular bricks and concrete material.


The first method we will take a look at is the most common way, using regular blocks and a material to build a window. As you can easily see, there are ugly white lines caused by "bevels" where the bricks end and start. They make the structure really unpleasing to look at  and is just undesirable.


2.

Using blocks with "BlockMesh"
The second method is what more advanced builders choose to use. They smooth out the obtrusive lines by using a thing called the "BlockMesh." However, there is a huge problem when using this approach, bricks with "BlockMesh" cannot use the Roblox materials. This downfall makes them bland when up close, which is undesirable for really detailed building.


The Solution



This is what I will teach you to do in this tutorial
As you can see from the example above, this method allows material textures to be used but conceals the "bevel" edges well enough so that they are unnoticeable.


Tools needed:




  • CmdUtl v5.0.0 (Get it HERE, completely virus free.)
  • Roblox Studio
  • Basics of Roblox Studio
  • This article

Installation


First off, you will need to download CmdUtl from the link above (don't worry, there is no virus). Next, you will need to open Roblox Studios. Now, you need to open the plugins folder by clicking the Tools dropdown menu at the top and then selecting "Open Plugins Folder." Now, extract the file you just downloaded into the folder and restart Roblox Studios. If you did this correctly, you should see the tool bar below on your studio.


The Set Up


You will need to click the first button from the toolbar above to open the CmdUtl GUI. Locate the blue menu which is circled for you in the image to the right. You will then need to change the number in the blue menu to 0.13 (number pad is not supported) and select the "Resize Object" tool.












Performing The Trick


Once you have everything set up, this part is the easy part. Find the parts that the ugly edge is touching and click on one of them:
















A thing similar to the regular resizing tool will show up. Simply click and drag the dot like you are going to resize the brick into the other brick. Make sure to watch the "Resize" counter in the upper left corner to make sure it only resizes 0.13 studs.
















If you followed the guide, you should get results like the wall at the beginning or like this:


If you still have any questions or didn't get results you wanted, message me on Roblox at yomamadude6, on Reddit at Sheep_Goes_Baa, or on Twitter @FatCakeCows. Have fun with this and build some awesome buildings!

Thursday, August 23, 2012

Why do users visit certain games?


This is a nice lengthy post I am going to write for you readers tonight! There was two versions of this post, one has mysteriously disappeared from our dashboard, and two is this one! :P Today I am telling you about how games are popular and why.

Now, we know loads of great game developers like Crazyman32, Wingman8, and TheGamer101.
These three game creators all spend a lot of time developing and perfecting their games. But what makes their games so appealing? There is so many things on ROBLOX that makes a game appealing, and with some of them- provided by ROBLOX and designed and visualized by us.

Roblox users are critics, some may not know it, but all of us users are critics some how. We all judge games, we all play games. Game that are on the front page, were decided by users. Games that are on the front page of ROBLOX are always good games, some may not be original- for example "JaredValdez4", but the games Jared Valdez has, are great games. So therefore it is on the front page. Users don't really care about who's game it is, as long as it's a good game- like JaredValdez' games, it's a front-page material game.

All users must know that some games that are very good, can't always get noticed when they are up against Crazyman32's freeflight and Sword Fighting Tournament by TheGamer101.

I asked many users on ROBLOX which Genre of game they thought were the best, around 50% said "Military/War", and around 10% said "Adventure" the rest said "RPG". All three of this Genres are very appealing to many, many users. Personally, I like Adventure and Mystery. But that's my choice.

On to building, building on ROBLOX is actually not the top on my list of appealing objects of a game, but building is in the top 3. Building doesn't have to be CFramed, although CFraming helps the building go way-beyond what you expect. But there is one aspect of building that can actually replace CFraming, which surprisingly is Terrain, people are loving the Terrain. There is a few games on ROBLOX that show what you can do with terrain, like "Freeflight" by Crazyman32, Terrain can make people love the game, but it has to be made to perfection.

Another thing on my list was the front-cover of a game. Games like "Welcome To Roblox Building" have nice, nice pictures. Here is an example I whipped up:
This was easily made with Photoshop and can be made with other image editing software. The best three I would say on the internet are Paint.NET, Gimp, and Photoshop. They can all be found if you write their names in the google search. If you look at the example image, in a way it appeals to you. You like the way it is made, and CFramed, and the special effects on the image, make people love games. Like Crazyman32's Freeflight (I know I've mentioned it a lot) it has a great image, that was made fairly simple using ROBLOX tools and Photoshop text with Lens Flares. So, graphic design is one of the main things, it's probably fourth in my list.

Scripting, now scripting is probably second in everybody's list. It makes a game be a game. Without any scripting, your game is nothing. Even if it's only allowing gear, it's scripting and that's the bottom line. Games like "Mountain Brawl Gear Fight" by our very own IBarrageI, has few scripting like Swords, but that game does not need scripting, as it has allowed gear. That's scripting, even if the gear that you have bought isn't made by the creator, it's scripting. Especially if you allow ROBLOX gear, it is made by the masters, and will be good.

Now I was so confused about my results on this, according to my research, users are more appealed to a game, by the materials and the way they are put. I found this an astonishing result! Materials in a game, if they are put in the game well, they are a very attractive and alluring element. People love them. Games like "The Underground Base" by SuperAlpacaMan have many choices of materials that change the way users think of the game. I found, the most loved material was actually "Slate" followed by "Grass". But this can change on what computer you are using, if you are using a state of the art Graphics Card, like me. You see everything in a great, view. I have textures on top all the time, and they view amazing. Some textures like Foil aren't as nice on Low texture settings, this is something that makes things have to be chosen wisely. So be careful with your choices!

The conclusion I came to is that ROBLOX Materials are judged more then anything else on ROBLOX games.

Thanks for reading this nice, lengthy post by MEE!!!! :D

Care to tweet for us?



Also, want any updates on my newest posts, or projects?


Saturday, August 11, 2012

Some Gui Functions!

Yo, it's me again. Zak. I am going to show you some gui functions and the way of changing them. This will be a short tutorial on GUI. So remember- pay attention!

Creating your own function:
Creating a function of your own can easily be done, you can just do something like...








So, this is a function I made up in a few seconds.
Explanation:
function hover() --Custom function
BLANK--in these blank lines, will be what the script will do when you "hover" over the gui.
BLANK
BLANK
end --Ending the function.
script.Parent.MouseEnter:connect(hover) --script.Parent=the button you will hover over. MouseEnter:connect(hover)= connects the custom function to the mouse enter method.

Now, we'll add some things inside...











Here I have a frame, textbutton and a screengui - obviously! :P
The frame is not visible, so we can make it visible when you hover over it!
Inside the code:






A short video, what it does:
What about other functions?
Now, MouseEnter() is just one method. There is tons of others, and they never stop....
How about an intro? All we need is a frame, a screengui, and a textlabel!!
How about this...
Frame Size= {1, 0, 1, 0}
Frame position= {0, 0, 0, 0}
TextLabel Size = {0, 0, 0, 0}
TextLabel Position = {0.5, 0, 0.5 0}
[Note]: The TextLabel is in the Frame.
The script that is in the frame:









You can just cut out the textstroketransparency if you aren't using TextStroke. :)
What it does:
If you want to delete the background after the text has faded, or even fade the background at the same time, just do this instead of the code above...

wait(3)
for i=0.01, 1, 0.01 do
script.Parent.TextLabel.TextTransparency=0+i
script.Parent.TextLabel.TextStrokeTransparency=0+i
script.Parent.BackgroundTransparency=0+i
wait()
end