Your first place¶
This is the shortest path from the official platform to a playable place. It assumes you have an account on https://www.novalabs.top and creator access. See Get started if you do not.
1. Open the editor¶
Open the creator area on https://www.novalabs.top and launch NovaStudio if your account has editor access. There is no public Studio download in this documentation repository; Studio is distributed through the official platform.
2. Create or open a place¶
Start with an empty baseplate or open an existing .rbxl/.rbxm file. Nova
reads and writes both the classic XML format and the modern binary format, so
places saved by recent Roblox Studio versions usually load.
If a place contains a class Nova does not know, the loader logs a message such as:
The place still opens; the unknown instances are skipped. Check the compatibility matrix and the class page for that class before assuming it loaded correctly.
3. Add a part and a script¶
In the Explorer:
- Insert a
PartintoWorkspace. - Insert a
ScriptintoServerScriptService(server) or aLocalScriptintoStarterPlayerScripts(client). - Put this in the script:
local part = Instance.new("Part")
part.Name = "HelloNova"
part.Size = Vector3.new(4, 1, 2)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.BrickColor = BrickColor.new("Bright green")
part.Parent = workspace
- Press Play (or start a local server) and confirm the part appears.
workspace, game, Instance, Vector3, BrickColor, and the usual
DataModel globals are available. If you prefer explicit service access:
4. Understand client vs server¶
Nova uses the classic filtering model:
- A
Scriptruns on the server and owns the authoritative DataModel. - A
LocalScriptruns on the client and sees replicated state. RemoteEventandRemoteFunctionare the supported boundary.- The server should validate anything a client sends.
If a script changes something on the client and other players do not see it,
check whether the script is a LocalScript and whether the change needs to be
requested from the server.
5. Save and publish¶
Use Save for a local .rbxl file. Publish uploads the place to
www.novalabs.top and creates or updates the place entry.
Before publishing a ported place:
- Run it in Play Solo and, if possible, with two clients.
- Check the Output window for unknown classes, missing members, and permission errors.
- Read the porting checklist.
6. Try TweenService¶
TweenService is a good smoke test for the modern API backports:
local TweenService = game:GetService("TweenService")
local part = workspace:WaitForChild("HelloNova")
local info = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(part, info, {
Position = Vector3.new(0, 12, 0),
Color = Color3.fromRGB(80, 200, 255),
})
tween:Play()
If this runs, the core instance bridge, datatypes, signals, and scheduler are working.