Studio Lite lets you build, script and publish games just like Roblox Studio, but simpler and mobile friendly! Experience: Studio Lite - Roblox Community: Studio Lite - Official Community - Roblox
<- tap to view recent updates.
Recent Updates:
02/22/2025: Model Inserter (see Tip#5).
02/24/2025: 300+ new MaterialVariants including pre-2022 materials.
03/02/2025: Support for Deprecated classes (showsicon).
03/09/2025: The 4MB save limit expanded to 36MB.
03/12/2025 : Enable publishing to Group/Community games (see Tip#1).
05/05/2025: Collaboration Lite (see Tip#22).
05/05/2025: Expanded max Studio Lite games from 10 to 100.
05/31/2025 : Fixed “script timeout” when loading large models. Block fake donations.
06/04/2025: “Delete” game option in Open/Save list. Recent saves sort to the top.
06/16/2025 : Improve Move/Scale/Rotate to prevent accidental dragging nearby objects. LocalScript you create can now be disabled. Plus, other minor bugs.
07/01/2025 : Load uncopylocked games published by Roblox Studio (see Tip#23).
07/19/2025 : Fixed published games not loading. Disable some viruses on model importer.
08/01/2025: Added FILE Restore to retrieve deleted/overwritten games. Files must be at least an hour old to be backed up, but can be restore immediately after it is overwritten. Backups are removed after 30 days.
08/07/2025: Fixed “Error 261 streaming data”. Hide Roblox’s “GuiService:AddSelectionParent” error.
08/15/2025: Toggle “Group” button with “Select children” to simplify un-grouping. Allow multi select to mass change properties of all selected objects with that property.
09/17/2025: Fixed Throttle Error on Restore. Added support for EditableImage, EditableMesh, new Content data type and vector library. Added Dark Mode to scripting window.
This is a collection of Tips and solutions to Frequently Asked Questions:
1. Publishing - create an API-key :
To publish your Studio Lite game to your Roblox profile, there are a few one-time steps to create an API key. When you FILE, Save… your game, checkmark (
) the Publish checkbox, and Save. The “Help” button on the Publish screen will show these 11 steps.
If your game’s name and description don’t appear on your published game, you might have missed something in step 9 above.
NEW: To publish to a group/community owned game: Make sure the group/community is your “Primary” group. If your group/community is not Primary go to your Community and tap the three dots (. . .) near the Community name and choose “Primary”. You must have a role in the Community that gives you permissions: “Create and Edit community experiences” and “Create community API keys”. More info: Grant publish access to specific Experiences, and more! Then to create a group/community API key, go to the Roblox Creator Hub: On mobile tap More (. . .) then Create (</>), then tap the “☰” to expand the menu. You should see your name at the top of the menu. Tap your name and choose your “Primary” group. Then continue with step 4 in the publish instructions above. To create new group games, see Tip#20 below.
2. Can't paste API key :
Pasting the API key works on mobile for most people. Some keyboard apps on mobile move your screen too far up to paste. If that happens, turn your screen the tall way to see and paste the key.
3. All Ages rating :
Thousands of younger players are blocked from playing Studio Lite games every day because the games are unrated. You can get more visitors to your published game by completing Roblox’s Audience Questionnaire in the Creator Hub. On mobile tap More (. . .) then Create (</>), tap your game, then tap the “☰” and find Audience, Maturity & Compliance. Based on your answers, you can get the “Maturity: Minimal” rating so all ages can play it.
4. No Undo :
Be sure to save your work often (every 10 minutes) just in case of a power or internet failure, or something else bad happens. And save a backup copy to a second game position. Then only “Publish” when you have a good working version of your game.
5. Insert any model from the Roblox store :
There are two ways to insert a model:
First way: Use the Studio Lite Toolbox, paste the asset address (from Step 1 & 2 below), and tap “Get”. This lets you see and edit the model’s parts and scripts. Unions and Surface Appearances might look a little different, but you can customize it. Very old and very large models might not insert. Models with “require” script or DataStoreService won’t work in Play mode, but could work in your published game.
Second way: You can spawn and position any model or mesh from create.roblox.com/store. Note this will error in Play mode, but works in the published game. This way saves a lot of space in your game since the model only appears at runtime. Unions and SurfaceAppearances look great, but it can be tricky to position and customize.
(1) Find the model you want at create.roblox.com/store and press “Get Model” to add it to your inventory.
(2) Copy the model’s asset_Id number from the store address bar between slashes (something like store/asset/123456/). If you only see “create.roblox. com” at the top of the screen, tap it to expand it.
(3) Place this script in ServerScriptService with the asset you copied:
local a = game.InsertService:LoadAsset(123456) --replace with asset_Id.
a.Parent = workspace
a:PivotTo(CFrame.new(0,5,70) * CFrame.Angles(0,math.rad(90),0)) --First CFrame is position, second is rotation.
If the model is a tool/weapon/gear, you can parent it to the players Backpack by putting the following script (not local) in StarterPlayer → StarterCharacterScripts:
game.InsertService:LoadAsset(ASSETNUMBER):FindFirstChildOfClass("Tool").Parent = game.Players:GetPlayerFromCharacter(script.Parent).Backpack
6. Make a walking NPC (R15):
Use the Rig Builder in Studio Lite’s Toolbox to build an NPC. Then checkmark “Zombie script”. This will add the standard animation and health scripts. Then in Explorer, find and delete the zNPC script, and insert a new script into the model:
local h = script.Parent:WaitForChild("Humanoid")
while true do
h.WalkToPoint = Vector3.new(20,0,10)
wait(3)
h.WalkToPoint = Vector3.new(-20,0,-10)
wait(3)
end
7. Animation :
To make all players walk like Zombies :
Replace the player’s animation with any animation codes shown at the end of this document: https://create.roblox.com/docs/animation/using#catalog-animations Put this Script (not local) in StarterCharacterScripts. Or put it in a Zombie model to make them walk Stylish (change the numbers according to the link above):
wait(1)
local animateScript = script.Parent:WaitForChild("Animate")
animateScript.run.RunAnim.AnimationId = "rbxassetid://616163682"
animateScript.walk.WalkAnim.AnimationId = "rbxassetid://616168032"
animateScript.idle.Animation1.AnimationId = "rbxassetid://616158929"
animateScript.idle.Animation2.AnimationId = "rbxassetid://616160636"
if animateScript.idle:FindFirstChild("Animation3") then
animateScript.idle.Animation3.AnimationId = "rbxassetid://885545458"
end
You can also change the default animation of NPCs. Use the Rig Builder in Studio Lite’s Toolbox, then paste any animations into its Humanoid.HumanoidDescription.
To make an NPC dance, use the Rig Builder and checkmark “Dance Script”, then you can edit the dance script to be any animationId on the Roblox store.
To find some animation ids, and to see sample scripts for playing animationIds on players and on NPCs, see Studio Lite’s FILE, Samples… Dance Club.
To pose an R15 NPC rig or make basic custom animations, use the joint motors C0 CFrames. Here is a sample that raises an NPC left arm. Place this script in the NPC model:
local LeftShoulder = script.Parent:WaitForChild("LeftUpperArm"):WaitForChild("LeftShoulder")
LeftShoulder.C0 = LeftShoulder.C0 * CFrame.Angles(math.rad(90),math.rad(20),0)
8. Output window of any published game :
You can see the Output window of any published game on Roblox by chatting “/console”. It’s a good way to check for script errors in a live game. Anyone can see Client messages, but only the creator can see Server messages.
9. Alt Keyboard :
A common problem can happen if you use the Alt Keyboard (your device’s keyboard instead of the small blue keyboard). Your device’s keyboard probably has autocorrect. That can cause problems for scripts. For example, if you want “local abc = game.Workspace” most autocorrects will insert a space after the period, or they might capitalize the first word in the sentence. Another easy mistake is in an “if” statement, if you want to compare something for equal, use ==.
10. Too many models or Game is very large :
If your game is more that 13MB you will get a size warning and it could take a long time to publish. If you exceed the 36MB limit your game might not save correctly. If you have many copies of the same model (like Zombies for example), you can reduce your game storage size by having just one Zombie in Workspace and use this script in ServerScriptService to clone and reposition it multiple times when your game starts:
local z=workspace:WaitForChild("Zombie")
for i=1,20 do
local zz=z:Clone()
zz:PivotTo(CFrame.new(40,4,i*10))
zz.Parent=workspace
end
Another way to save lots of space: If you insert models using the Toolbox, they can take a lot of space in your game’s storage. If possible, use the “second way” to insert models from Tip#5 above.
11. Badges :
Badges docs with sample scripts you can copy and paste: https://create.roblox.com/docs/production/publishing/badges
The Badge Service will cause an Error in the Studio Lite Play/test mode, but should work fine in your published game.
12. Gamepasses :
Gamepass docs with sample script you can copy and paste: create.roblox.com/docs/production/monetization/game-passes
Your Gamepasses will not be accessible while Play/testing in Studio Lite, but should work fine in your published game.
13. Welds :
To weld two parts together, first make sure the parts have unique names (like PartA and PartB). Then use the blue-plus to insert a WeldConstraint inside one of them. Next you need to set two properties of the weld constraint: Part0 and Part1. Tap the Part0 property value (the blank area), and in Explorer tap the first part you want included in the weld (PartA for example). Its name will show up in the weld constraint Part0 property. Then do the same with the Part1 property value and PartB.
14. HD Admin or similar scripts :
To get HD Admin in your published game (won’t work Play/testing in Studio Lite): Use the Toolbox and paste this asset address into the asset_id box and press “Get”. https://create.roblox.com/store/asset/857927023/HD-Admin
You can customize the settings script with ranks and gamepasses.
Note: To allow HD Admin to sell ranks in your game (and you earn commission), you must enable “AllowThirdPartySales” as described in Tip#19 below.
15. Sample Cutscene :
Works in Play/test mode and Published. Paste this into a LocalScript in StarterCharacterScripts. Experiment with different target position and rotation numbers.
local cam=workspace.CurrentCamera
local ts=game:GetService("TweenService")
cam.CameraType=Enum.CameraType.Scriptable
local target=CFrame.new(70,50,0)*CFrame.fromOrientation(math.rad(-30),math.rad(90),math.rad(0))
local tween=ts:Create(cam,TweenInfo.new(3),{CFrame=target})
tween:Play()
tween.Completed:Wait()
cam.CameraType=Enum.CameraType.Custom
16. Morph :
Use the Rig Builder in Studio Lite’s Toolbox (use the dropdown menu to choose Rig Builder). Use one of the sample rigs, or enter a player’s name (not displayname, exclude @), or enter a bundleId (bundleIds can be found here: Catalog ).
Dress up your Rig/NPC using the built-in Catalog Search button. Checkmark the box for Morph Prompt. That will add a ProximityPrompt and an editable script to the rig to allow players to morph.
17. Accessories :
Here is an example of how to add accessories to players, glasses in this case. You just need the accessory assetId. You don’t have to have it in your inventory. Works in Play/test mode and Published. Layered clothing requires a few more variables. More info here: https://create.roblox.com/docs/characters/appearance#applying-humanoiddescription
------------------------------------------------------------------------------
--ProximityGiveGlassesScript - When a player walks near this script's --
-- parent part, they will be prompted to get/remove a glasses accessory.--
------------------------------------------------------------------------------
local pp = Instance.new("ProximityPrompt")
pp.ActionText = "Glasses On/Off"
pp.Parent = script.Parent
pp.Triggered:Connect(function(player)
if player and player.Character then
local h = player.Character:FindFirstChild("Humanoid")
if h then
local desc = h:GetAppliedDescription()
-- Multiple face accessory assets are allowed in a comma-separated string
local cnt = 0
desc.FaceAccessory, cnt = desc.FaceAccessory:gsub("2535420239","") --already equipped? remove it.
if cnt == 0 then
desc.FaceAccessory = desc.FaceAccessory .. ",2535420239" --not equipped? add it.
end
h:ApplyDescription(desc)
end
end
end)
18. Terrain :
We hope to add a terrain editor in the future. But, in the meantime, you can build terrain with script.
workspace.Terrain:Clear() --Clear terrain, then fill a position and size with a material.
workspace.Terrain:FillBlock(CFrame.new(0,0,20), Vector3.new(20,6,20), Enum.Material.Water)
workspace.Terrain:FillBlock(CFrame.new(20,0,20), Vector3.new(20,6,20), Enum.Material.Grass)
More info: https://create.roblox.com/docs/reference/engine/classes/Terrain#FillBlock
19. Game Settings - AllowThirdPartySales, AllowTeleport, Private Servers, Force R6 :
Now your Studio Lite game can have: AllowTeleport, AllowThirdPartySales, Allow VR devices, Allow Private Server (and set the price) and Morph all players to R6 with no script needed, and more. These Game Settings are typically only available in Roblox Studio. Now you can adjust these setting on your published experience; all from your mobile device.
Note: The AllowThirdPartySales property in Workspace is ignored by Roblox. Without using the game setting below, players cannot buy UGC made by others (only your assets and Roblox assets).
Step 1) Get your game’s “Experience ID” (also called UniverseId) - This step also confirms you are logged into Roblox on your default browser. Even if you know your UniverseId, you should confirm you’re logged in by tapping this link. https://create.roblox.com/dashboard/creations
Then tap the Experience you want to update. At the top of the screen, you will see something like: create.roblox. com/dashboard/creations/experiences/123456789/overview (if you only see “create.roblox. com” tap it to expand it). Copy the number between slashes. Its your UniverseId for that Experience.
Step 2) Tap Roblox’s Swagger Develop Api v2 website: Swagger UI
Step 3) Tap “UniverseSettings – PATCH” to expand the Parameters.
Step 4) Tap “Try It Out”.
Step 5) Paste your UniverseId from step one. Do NOT tap Execute yet. Clear out the “model”(body). Select it all and delete it. Then copy the Game Settings below including the braces {…} and paste it into the “model”(body).
{
"allowPrivateServers": true,
"privateServerPrice": 90,
"universeAvatarType": 3,
"playableDevices": [ 1, 2, 3, 4, 5 ],
"permissions": {
"IsThirdPartyTeleportAllowed": true,
"IsThirdPartyAssetAllowed": true,
"IsThirdPartyPurchaseAllowed": true
}
}
Legend:
“universeAvatarType”: 1 = R6, 2 = Player’s choice., 3 = R15
“playableDevices”: 1 = Computer, 2 = Phone, 3= Tablet, 4 = Console, 5 = VR
Note: Changing the Private Server Price can halt any previous Private Server subscriptions.
Make any changes you want and tap the “Cancel” button below the “model”(body) Game Settings. Be careful, a comma or capital letter in the wrong place and it won’t work.
Step 6) Confirm that the Cancel button colorized and accepted your changes. Then tap the blue “Execute” button.
Step 7) After you press “Execute”, below that you should see “Responses”, “Curl”, “Request URL”, “Server response, Code 200, Response body”. The “Response body” should show your new settings along with a few other values. That means SUCCESS! If you only see “Code 200 OK, Example Value” then something went wrong. Refresh the web page and try again.
20. Publish to more than one game :
You can setup multiple games in a group/community and publish to them from Studio Lite all from mobile. It is best if you are the group owner. If you are not the group owner, others in the group could be given access to steal and overwrite your group games. Create email verified Alt accounts on Roblox. Your Alt accounts will each have a public place that you can transfer to your group using Tip#21 below. Then you will need a “Group API key” as described in the last paragraph of Tip#1 above.
Alternative: Some people have used a free app like NetBoom (after watching 15 minutes of ads and probably completing offers) to remotely access a PC for a limited time. Then you have to install Roblox on that PC and use Roblox Studio remotely to create more places using “File, Save to Roblox As”. I have not tried this and I am not sure this approach is safe, since the app can see everything you type including your Roblox password. If you use this method, change your Roblox password after.
21. Transfer ownership of your game to a group/community :
Before you transfer ownership of your experience to a group/community, you must have a role that gives you permissions: “Create and Edit community experiences” and “Create community API keys”. Once ownership is transferred, there is currently no way to get it back. Here are the steps to transfer: https://create.roblox.com/docs/projects/experience-ownership-transfer#transfer-an-experience To publish to it, the group must be your Primary group, and you must create an API key for the group (see last paragraph of Tip#1 above). The transfer process will leave your game set to Private. It is easier to publish in Studio Lite if you make it Public in the Creator Hub https://create.roblox.com/dashboard/creations
22. Collaboration Lite :
You cannot “Join” or “Start” a party. Server size = 1. But you can use the More… button in the FILE Open/Save menus to share all or part of your game with a friend. When done, you can review their work and save it or copy portions from Explorer, and paste them into your own game. You can use Party Chat to communicate while inside Studio Lite, but don’t use Party Start. You can have multiple friends help you; just give each a “Save As” shared game.
Here is a sample Collaboration scenario: Open your main game that you want help with. Strip out any parts you don’t want your friends to see. Then Save As to create a new work area for one friend. You can use the game description to explain the help you need. Then in the FILE Open/Save menu, tap More… on the new stripped-down version and tap Share to give full access to that version to a friend. Then do the same for other friends: Save As, then Share. When they complete their assignment, open their saved game to review their changes. If you like it, highlight the things you want in Explorer and tap Copy above the Explorer. Then open your main game, highlight the parent where you want it and tap Paste Into. If there are multiple things to copy you can use Multi Select if they all have the same parent. Otherwise, move them into a folder and copy the folder, and after pasting, move them to their appropriate locations.
23. Recover a previously published game back into Studio Lite :
UPDATE: This procedure is currently not working for games published in Studio Lite, but could work for other uncopylocked games published by Roblox Studio. For now, if you really need to restore your published game back into Studio Lite, you will need to open your published game in Roblox Studio and re-publish it from there. Then this procedure should work. If you don’t have a PC/Mac, you might have to borrow a friend’s device to do that step. We will be working on resolving this issue in the future.
OH NO: I accidentally overwrote my Studio Lite game. (That is why we recommend saving a second backup of your game). This recovery procedure is not easy, but it might be better than starting from nothing.
Step 1) Make sure you have a good copy of your published game. If you overwrote your published game too, no problem. Roblox lets you revert to an older version of your published game in the Creator Hub: More (. . .), then Create (</>), then tap “Creations”, then tap menu icon (☰), tap your experience twice, tap “☰” again, tap “Places”, tap your place icon twice, tap “☰” again, tap “Version History” to restore your published game to a previous version. Test your published game to make sure it’s the version you want to restore into Studio Lite.
Step 2) UnCopyLock your game temporarily so it can be loaded into Studio Lite using its Place Id as a model Id. Use Creator Hub: More (. . .), then Create (</>), then tap “Creations”, then tap menu icon (☰), tap your experience twice, tap “☰” again, tap “Places”, tap your place icon ONCE, three dots should appear on place icon, tap them to copy the Place Id. Then tap the place icon again, then “☰” again. Now tap “Permissions”. Checkmark “Allow users to download a copy of this place”. And “Save changes”. Important: Your game could be copied (stolen) by anyone while this is checked. To protect your game, we will uncheck this in step 4 below.
Step 3) Go back to Studio Lite Toolbox and import Model using your Place Id you copied above. This should load your game into the appropriate folders: Workspace, StarterGui, etc. Save it and save a backup copy.
Step 4) Go back to Creator Hub and uncheck the “Allow users to download a copy of this place”. And Save changes.
Note: This procedure could be used to load any uncopylocked game (or Roblox starting templates) into Studio Lite. But, as you may already know, Terrain is not imported, Unions are converted to blocks, and Surface Appearances, Material Variants and animations won’t load. We hope to improve this feature in the future.
24. Create Sub-Places (allowing you to create multiple places you can teleport players to) :
Use the Creator Hub to checkmark “Allow place to be copied as a template…” on your Place’s Permissions page (not the Experience’s Permissions page). Put the script below into StarterPlayerScripts and edit it, replace YOUR-PLACE-ID with your PlaceId (no quotes). Publish it. Every time someone joins your game a new place will be created!!! When you have enough sub-places, uncheck the above checkmark, disable the script, and republish. To publish to your sub-places change “Your Roblox profile” to “Private/Other” the publish panel. You will need the UniverseId and PlaceId (of your new sub-place). The print command will print the newly created place’s Id. You can find the print by chatting /console and look in the Server tab. Here is the Script:
print(game.AssetService:CreatePlaceAsync("new place", YOUR-PLACE-ID,""))











