Get started
Glowstone experiences are Minecraft games written in Luau, the typed Lua that Roblox made, and run on Glowstone's Ember servers. You write them in Glowstone Create, a desktop IDE that knows Ember's API: it completes, type-checks and formats your scripts as you go.
Install Glowstone Create
Download Glowstone Create for macOS, Windows or Linux and open it.
Start from a template
Choose New experience… on the welcome screen. Each template is a whole, working game you can pull apart:
- Coin Rush: race to grab the gold coins scattered around the map; first to three wins. The smallest whole game, and the best place to start.
- Bed Wars: teams defend their beds on floating islands and buy gear with generator loot. Shows teams, shops and rotating maps.
A project is a folder on disk, in Documents/Glowstone unless you pick somewhere else. Open it in VS Code with luau-lsp too if you like: Glowstone Create writes the type files and settings it needs.
What's in a project
experience.toml the experience's name, player counts and map
main.luau the entry script, run when a match starts
content.luau custom blocks, items, mobs and recipes (optional)
maps/*.embermap the maps matches are played on
assets/ models and textures for your content
The manifest is small. Coin Rush's:
id = "coinrush"
name = "Coin Rush"
minPlayers = 1
maxPlayers = 8
countdownSeconds = 5
map = "coinrush"
entry = "main.luau"
Your first change
Open main.luau and find where players join:
players.onJoin(function(player)
player:sendMessage("<yellow>Welcome to my game!")
end)
Text is MiniMessage, so <yellow> colours it. Hover any name for its docs, or look it up in the API reference: players and Player are good first stops.
Put it on Glowstone
On Glowstone your game is an experience, and you make it in the dashboard: sign in with the Microsoft account you play Minecraft on, choose New experience, and give it a name. Its address, like @you/coin-rush, follows the name until you change it, and so does its content namespace, which is fixed once the experience is made. Then add a world for each game it runs; one is plenty to start.
A new experience is private. When it's ready for players, ask for it to go public.
Next, read how what you make is organised: experiences, worlds and builds.