Guides
How to do one thing, a page each, grouped by what you are making.
Graphics
- Draw shapes and textDraw shapes and text on a canvas: depth, groups, blending, and when to draw pixels.
- Pixel art and spritesDraw pixel frames with pictures, and animate sprites and tile maps from an atlas.
- 3D scenesBuild a 3D scene with a camera, lights, bloom and fog.
- ShadersApply shader presets, and write your own fragment programs.
- Bodies, joints and collisionsGive shapes physics bodies, join them, and react when they collide.
- Play soundPlay samples and tones, shape them as they play, and mix them on buses.
- Make musicPlay tracks you edit as they play, keep sounds on the beat, and make chip voices.
User interface
- Lay out a screenLay out widgets with flex, spacing, labels and cards, and follow size changes.
- Pages and tabsMove between pages with a router, and switch tabs that keep their place.
- Handle BackDecide what Escape, gamepad B and a browser's Back do in your app.
- Keyboard and gamepadHow focus moves between your widgets from the keyboard and a gamepad.
- Drag and context menusLet people drag things, and open an item's actions, with one handler each.
- Theme and densityPin a theme, write a theme file, and size controls for a mouse or a finger.
- Fit any window sizeFit your UI to any window, zoom and screen, and go full screen.
- Read keys, mouse, touch and gamepadsRead the keyboard, the pointer, touches and gamepads directly.
Data and files
- Open, pick and save filesOpen the files you are given, let people pick and save files, and decode bytes.
- Query and chart dataAggregate, facet and explore tabular data in charts.
- Save data between runsKeep data between runs in your package's store, or share a store with other apps.
- Write a bookWrite a book of pages with live elements, templates and scripts.
Apps working together
- Messages, events and shared stateSend messages between apps, hear system events, and share documents.
- Launch other appsStart other apps, pass them grants, and hear how they end.
- Write a window manager or launcherFrame and arrange apps, reserve shortcuts, and ask the person using the workstation about permissions.
Networked apps
- Sign people inSign in the person using your app, and read who they are.
- List and install packagesBrowse the package catalog, install packages, and offer updates.
- Sell a packageSell a paid package from your app.
Packages
- Modules and dependenciesSplit a package into modules, and depend on other packages.
- Work on several packages togetherDevelop related packages together as one workspace.
- Publish and maintain a releasePublish a package, and retire a release that should no longer be installed.
Tools and workflow
- Set up your editorGet completion, type checks and formatting in your editor.
- Test a packageRun a package's tests, measure their coverage, and write a report.
- Debug an appSet breakpoints and step through your Lua from your editor.
- Find what's slowFind where an app's frame time goes, from a quick counter to a full profile.
Help
- TroubleshootingSymptoms, their causes and their fixes.