On this page
Atlas documentation
Set up Atlas for Windows, connect your capture card, controller or console, and write scripts that react to what Atlas sees.
Set up and use Atlas
Install and updateWhat Atlas for Windows needs, how it is installed and updated, and what uninstalling leaves behind.Account and activationCreate your Atlas account, link Discord, and activate Atlas for Windows on your PC.Capture sourcesChoose the video Atlas watches: a capture card connected to your PC, or an Xbox or PlayStation Remote Play stream.Controllers and outputConnect your controller and choose how Atlas sends its input to your console: through Remote Play or a Cronus Zen.Remote PlayPlay your Xbox or PlayStation through Atlas over your home network, with video and controller in one place.Vision and modelsHow Atlas runs detection models, when it uses your GPU, and how to add model files.Scripts and LibraryWrite, build and run scripts in Atlas for Windows, and get scripts and model weights from the Library.Network scriptingWhat scripts that capture network packets need: WinDivert installed by you, and one administrator approval each run.TroubleshootingFixes for the most common problems, what Atlas error messages mean, and what to include when you ask for help.
Atlas Script
Atlas Script connects what Atlas sees to what your controller does. Start with the overview to learn how a script runs, then use the reference whenever you need the details of an event, object, or method.
Atlas Script overviewHow a script runs, from loading to stopping, with a complete first example.LanguageDeclarations, values and types, arrays, structs, enums, and control flow.Functions & referencesParameters, return values, and when a value is copied or shared.Events and lifecycleWhen each event runs, and which APIs you can use inside it.7 eventsAPI referenceVision, controller input and output, feedback, overlays, and utilities.163 methods · 25 objectsRecipesComplete scripts for common tasks that you can copy or download.41 recipesScript diagnosticsWhat each editor message means, and how to fix the script.Symbol indexEvery event, object, method, and constant, on one page.
Your first script
This script watches for a colored marker in the video and holds Cross while the marker is visible. Video work happens in on_frame; controller changes happen in on_input.
marker-button.atlas
color markerColor = vision.color([0, 90, 80], [15, 255, 255]);
bool markerVisible = false;
event on_frame() {
markerVisible = markerColor.target != null;
}
event on_input() {
if (markerVisible) {
output.set_button("cross", true);
}
}
event on_stop() {
ui.clear();
}Why two events? Video frames and controller packets arrive independently.
on_frame updates what the script has seen, and on_input applies it to the controller. When no marker is visible, the script leaves Cross alone, so the physical button still works.