XPGuard documentation
XPGuard puts two kinds of VATSIM-driven runway-safety lights on the ground in X-Plane 12 and MSFS2020/2024: controller-switched stop bars at holding positions, and automatic Takeoff Hold Lights (THL) that warn a lined-up departure when the runway ahead is occupied. This guide covers pilots on X-Plane and MSFS, and the two controller clients — EuroScope and vatSys.
Overview
XPGuard draws two kinds of runway-safety lights — controller-switched stop bars and automatic Takeoff Hold Lights (THL). Both are driven live over VATSIM and shown to pilots only; pilots never switch them themselves.
A stop bar is a row of red lights across a taxiway at a holding position. Bars are detected automatically at every airport, so XPGuard works worldwide with no per-airport setup (a community correction can fine-tune an airport where a bar sits slightly off). A bar has two states:
- Red — hold short, do not cross.
- Off (dark) — Cleared to proceed or stop bar is not working. There is no green light.
Stop bars are driven live over VATSIM by the controller controlling your airport — pilots only see them, they never switch them. Controllers light and clear stop bars from EuroScope or vatSys. (THL, below, is automatic and isn't switched bar-by-bar.)
Takeoff Hold Lights (THL) — is a double row of red lights down the runway centerline ahead of an aircraft lined up to depart. Unlike stop bars, THL is automatic: the system lights them when the runway ahead is unsafe (traffic still on it, or one it predicts is about to cross it) and clears them by itself once it's safe. It's fed from the controller's live ground-radar picture, so it appears only where an online controller has THL active — available in both EuroScope and vatSys. See THL for pilots, THL for controllers, and the THL white paper.
Pilots (X-Plane) — Installation
Download the X-Plane plugin from your dashboard and unzip it into your plugins folder so the layout looks like this:
<X-Plane 12>/Resources/plugins/XPGuard/
win_x64/
XPGuard.xpl
mac_x64/
XPGuard.xpl
lin_x64/
XPGuard.xpl
resources/
stopbar_body.obj
stopbar_light.obj
node_arrow_small.obj
node_arrow_big.obj
fixture.png
fixture_lit.png
node_arrow.png
node_arrow_LIT.png
All three platform folders ship in the download — X-Plane loads the
XPGuard.xpl for your operating system, so you can leave them all in place. The
node_arrow files are the blue node markers you see in contribution mode.
A few extra files appear in resources/ after the first run — the plugin writes them
itself, they are not in the download: stopbar_light_day.obj /
stopbar_light_night.obj (the glow at your brightness settings) and
publishers.json (your remembered publisher picks).
Start X-Plane 12, then open Plugins → XPGuard → Show control panel to confirm it
loaded.

Pilots (X-Plane) — Settings
Everything lives in the control panel. You never switch the lights yourself — the controller active at your airport does that.

- Publisher — which scenery's stop-bar map you get at this airport: Default / Gateway or one of its published add-on publishers. Auto-selected from your detected scenery; only override it if it reads wrong — see Scenery & publisher.
- Brightness · Day % — how bright the red glow is in daylight (default 50%).
- Brightness · Night % — brightness at night (default 30%). Day/night switches automatically with the sun. Brightness applies to both stop bars and THL — they share the same red glow, so one setting drives them all.
- Spill size (m) — size of the light's ground spill pool (default 15; best-effort under X-Plane 12).
- Log level — how much the plugin writes to X-Plane's
Log.txt: Info (important events, default) or Debug (everything). Lines are tagged[INFO]/[DEBUG]with UTC time. - Reload light objects — re-applies the lights without restarting X-Plane, handy after changing brightness or errors during object loading.
- You can also bind a key to show/hide the control panel in X-Plane's Settings → Keyboard (search "XPGuard").
xpguard.net — there's nothing to configure to get
started.Pilots (X-Plane) — Using it
- Check your scenery — open the control panel and confirm the scenery detected at your airport is the one you're actually flying, and that the Publisher was auto-selected to match it. If either reads wrong, pick the right publisher from the dropdown — see Scenery & publisher.
- Connect to VATSIM with the xPilot pilot client. The stop bars only appear while you're online.
- Both stop bars and THL only render when your aircraft is below 1,000 ft AGL; above that the plugin idles (no polling) and shows nothing.
- If there is an active controller at your airport, you will see the stop-bar lights. If not, you see only the dark stop-bar fixtures (lights always OFF). Check the active-controller status in the XPGuard control panel.


The panel's status block shows the current airport and its light counts (N stopbars + M THL), the Server and VATSIM status, who's controlling the airport (Controlled by …), and a live list of which bars are currently red.

Pilots (X-Plane) — Scenery & publisher
Add-on ("3rd-party") sceneries paint their markings in slightly different spots than the default
(Gateway) airport, so XPGuard keeps a separate stop-bar map per scenery. The plugin reads
your Custom Scenery list to spot an add-on at the current airport and shows it in the panel.
- Default (Gateway) airport → the shared default map; the Publisher shows Default / Gateway.
- An add-on pack in Custom Scenery → XPGuard offers that publisher and serves its aligned bars when a map exists.
The Publisher dropdown in the panel sets which map you get: Default / Gateway
for the built-in map, or one of the airport's published add-on publishers. You normally don't touch
it — XPGuard matches the detected scenery folder's brand (an Aerosoft - LFMN… folder
reads as Aerosoft) against the airport's published publishers and auto-selects
the right one. If the auto-pick is wrong — or your folder is named unusually and nothing was matched —
pick the correct publisher from the list; your choice is remembered per scenery folder,
so it's a one-time fix. The dropdown only offers publishers already published at this airport
(adding a brand-new publisher is done in the web editor, when you contribute).
Pilots — Takeoff Hold Lights (THL)
Takeoff Hold Lights are a double row of red in-pavement lights running down the runway centerline from the start of the takeoff roll. They warn you not to start your takeoff when the runway ahead isn't clear.
- Red — do not begin the takeoff roll; there is traffic on, or entering, the runway ahead.
- Off (dark) — the runway ahead is clear. As with stop bars, there is no green light.
THL is automatic — no controller switches it bar-by-bar. XPGuard monitors the live ground controller radar picture and lights the runway when it detects a hazard (an aircraft still rolling out ahead of you, or one crossing further down), then extinguishes it once that clears.

Like stop bars, THL only appears while you're connected to VATSIM and below 1,000 ft AGL, and only when a controller has THL armed for your runway. The control panel header shows the count as (N stopbars + M THL).
THL needs an active controller. It only works when an online ATC is running XPGuard and has armed THL for your runway — the lights are driven entirely by the controller's ground-radar picture. If no controller is online (or none has THL on), you see no THL at all; that absence is not a clearance or an "all clear" to depart.
Pilots (MSFS) — Installation
XPGuard for Microsoft Flight Simulator is a small tray app that runs alongside MSFS
(2020 or 2024) and draws the stop bars and THL in the sim. Download XPGuardMSFS.zip from
your dashboard and run it — it's a per-user install (no admin needed).
The installer does three things:
- Installs the tray app.
- Finds your MSFS Community folder(s) — 2020 and/or 2024, Steam or Microsoft Store, auto-detected — and copies the stop-bar SimObject package into the one(s) you tick on the MSFS install targets page. (There's also a box for a custom / linked Community folder.)
- Optionally starts XPGuard with Windows (recommended — it lives in the tray).

It needs .NET Framework 4.8 (the installer checks and links it if missing). For the real VATSIM connection state it uses the free vPilot client — XPGuard adds a small vPilot bridge automatically when vPilot is present.
After installing, XPGuard runs in the system tray (bottom-right of Windows). Double-click its icon to open the window.
Pilots (MSFS) — The app & settings

The status card at the top shows, at a glance:
- Airport + a live state line (waiting… / connected / N bars).
- Scenery — the add-on detected here (or built-in / gateway) plus a Publisher dropdown — see Scenery & publisher.
- Server / VATSIM / ATC — the connection state and who's controlling the airport.
- Contribution Mode button — map this airport's bars. Needs a detected add-on scenery; the built-in airport is edited from the web editor instead (see below).
In the title bar (top-right) there are two small buttons:
- ⟳ Refresh — re-detect the scenery and reload the objects. Use it if the scenery reads wrong.
- 📌 Pin — keep the window always on top (handy next to a windowed sim).
The controls under the status card:
- Brightness · Day / Night % — how bright the red light is; it switches with the sun automatically.
Three tabs at the bottom switch the lower panel:
- Stopbars — every stop bar (alphabetical), the runway it protects, and whether it's currently red.
- Log — the live log, with a Log level selector: Info (important
events, default) or Debug (everything). The same lines are saved to
XPGuard-MSFS.lognext to the app, tagged[INFO]/[DEBUG]with UTC time. - Settings — Run at Windows startup and Alignment offset — a local fine-tune nudge (a few metres up / east / north) applied on top of the map's own published alignment, in case a bar sits slightly off on your system.
The window is resizable — drag any edge or corner.


Pilots (MSFS) — Using it
- Start MSFS (2020 or 2024). If XPGuard is already running it connects automatically; you can also click Launch MSFS in the app header.
- Check your scenery — the status card should show the scenery detected at your airport, with the Publisher auto-selected to match it. If either reads wrong, hit ⟳ Refresh or pick the right publisher from the dropdown — see Scenery & publisher.
- Connect to VATSIM with vPilot. Stop bars only appear while you're online, the same as real operations.
- Taxi toward a runway. Bars render when you're near the ground (below ~1,000 ft AGL); the app idles otherwise.
- If a controller is active at your airport, you'll see the red stop-bar lights. Red = hold short. Off (dark) = cleared to proceed. You never toggle them — the controller does.


The status card shows the current airport, the Server / VATSIM / ATC state, and who's controlling. The Stopbars tab lists every bar and whether it's currently red; the Log tab shows the live log.
Pilots (MSFS) — Scenery & publisher
Add-on ("3rd-party") airports paint their taxiway markings in slightly different spots than the built-in airport, so XPGuard keeps a separate stop-bar map per scenery. The app reads which scenery you're using from its manifest and shows it on the status card.
- Built-in / stock airport → you get the shared default map; the Publisher shows Default / Gateway.
- An add-on you installed (e.g. an Aerosoft or iniBuilds scenery) → XPGuard auto-selects that publisher when a map for it exists, and serves its aligned bars.
The Publisher dropdown lets you set the right one: Default / Gateway for the built-in map, or one of the airport's published add-on publishers. If yours isn't listed, no map for it has been contributed yet — you can be the first.

Controllers (Euroscope) — Installation
Download XPGuardES.zip from your dashboard, then extract it in
a folder. Then, in EuroScope open Plugins → Load and select it. Remember to move Ground Radar Display to Allowed to draw on types field.,
After clicking OK, a draggable XPGuard button with a status dot appears on your radar.


Set your token once: click the XPGuard button → Set token (or type
.xpg token <your token>) and paste the Controller Token from
your dashboard. It's saved with your settings, so this is a
one-time step.

Controllers — Settings
Click the draggable XPGuard button (with its status dot) to open the menu. The status dot is gray (no token), green (connected), or amber (token set but the server is unreachable). The number at the end of the button is the number of the claimed runways. Controls:
- AUTO BAR — when on, a stop bar you clear with a left-click re-lights itself
after a delay (default 45 s, shown as AUTO BAR (45 s)). Bars you set with a right-click
(permanent, marked
*) are never re-armed. - Bar style — cycle the stop-bar drawing between line (a solid-colored bar), circle (directional half-filled dots) and Scandinavian (the real-SMR look: a bar whose hooked ends point at the holding side).
- LVP — Low Visibility Procedures. When on, the CAT II/III stop bars on your claimed runways light up and each one's paired CAT I bar goes out; switching it off restores normal operations. Always starts off when the plugin loads. See LVP & CAT II/III bars.
- THL sound — when on, a short alert plays once when a runway's THL lights for an anticipated incursion (a crosser predicted to enter). Off by default. See Takeoff Hold Lights.
- THL horizon — how many seconds ahead the THL anticipates a crossing aircraft (default 12 s, range 3–30). Click the row to type a value.
- Show XPG status on traffic — when on, a small green dot is drawn on the radar target of every aircraft whose pilot is running XPGuard, so you can tell at a glance who actually sees your stop bars. The dot is painted straight onto the target, so it shows with any tag setup — including plugins that draw their own tags (Ground Radar Plugin, TopSky, vSMR).
- Set / Change token — Set or change your controller token by clicking. (Or via
.xpg token <token>)
Below those, each active airport is a collapsible + ICAO header — click it to reveal that airport's runways. Every runway row carries two checkboxes: BAR (claim its stop bars) and THL (arm its Takeoff Hold Lights) — see Takeoff Hold Lights.
EuroScope commands
Type these in the EuroScope command line:
.xpg— status report (active airports, connection, claimed runways)..xpg token <token>— set your API token..xpg auto [on|off]— toggle (or set) AUTO BAR mode without the menu..xpg autotime <10-60>— set the AUTO BAR re-light delay, in seconds..xpg logthl— toggle the detailed per-tick THL log (THL.log)..xpg minzoom <1-500>— set the decluttering zoom: hide the bars when the radar is wider than this many NM..xpg releaseall— release all your runway claims at once..xpg recenter— move the XPGuard button back to its default spot (if it was dragged off-screen)..xpg reload— re-readsettings.jsonand re-scan active airports..xpg log— toggle diagnostic logging toxpguard.login the plugin folder..xpg help— list these commands in the message window.
Controllers — Using it
- With your token set (green dot) and your position online, XPGuard auto-detects the airports your coverage includes. Click the XPGuard button to open the menu, then click an airport's + ICAO header to expand its runways.
- Claim a runway by ticking its BAR checkbox (the left of the two boxes on the runway row). A runway already held by another controller shows that controller's callsign with its BAR box filled muted-red, and clicking it is refused — only one controller holds a runway at a time.
- On the ground radar, left-click a stop bar to set it red (hold short) or clear it (off). You can only click bars on runways you currently hold.
- Right-click a bar to set it permanently (marked
*) so Auto leaves it alone; right-click again to flip it. - Release a runway by un-ticking its BAR checkbox. Disconnecting from VATSIM or unloading the plugin releases all your claims immediately; if the plugin stops without a clean exit (a crash), the server auto-expires them about 60 s after the last heartbeat.





Controllers (EuroScope) — Low Visibility Procedures (LVP) & CAT II/III stop bars
Larger airports have a second, farther-back holding position on many runway entries: the CAT II/III holding position, which protects the ILS critical area during low-visibility operations. XPGuard models these as separate stop bars — their names end in CATII/III, they are detected automatically from the airport's ILS-hold markings (or flagged by the map editor), and their tooltip on the radar says CAT II/III (LVP).
In line with real procedures, only the holding position in use is lit:
- Normal operations (LVP off) — claiming a runway lights its regular (CAT I) bars as usual; the CAT II/III bars stay dark.
- LVP on (XPGuard menu → LVP) — every CAT II/III bar on the runways you hold lights up, and the CAT I bar of the same entry goes out, so an aircraft cleared past the CAT II/III bar never faces a lit bar inside the ILS critical area. Entries that only have a CAT I bar are untouched and stay lit.
- LVP off again — the CAT II/III bars go dark and their paired CAT I bars re-light.
Notes:
- LVP always starts off when the plugin loads — CAT II/III bars are dark by default.
- A CAT II/III bar with no paired CAT I bar on its entry is that entry's only protection, so it behaves like a regular bar: lit while the runway is claimed, in LVP and out of it.
- Claiming another runway while LVP is on lights its CAT II/III bars automatically.
- Manual control always wins: you can still left-click any individual bar on your runways in either mode, and AUTO BAR re-arms your manual clears as usual.
Controllers (EuroScope) — Takeoff Hold Lights (THL)
THL is XPGuard's automatic runway-conflict warning: a double row of red lights down the runway that lights for an aircraft lined up to depart whenever the runway ahead is occupied or about to be crossed, and clears itself once it's safe. You don't switch THL bar-by-bar — you enable it on a runway, and the monitor drives the lights from live traffic.
How it works
Selecting THL for a runway activates that runway's THL monitor — a Runway-Status-Light surface monitor dedicated to it. From then on the system is fully automatic: you never light or clear a bar yourself. It runs on anticipation, not just on what's happening right now — it continuously predicts each target's path from its motion, so a crossing aircraft is lit before it reaches the runway and a lined-up departure's roll is projected ahead, then the lights clear the moment the conflict is predicted to resolve.
The monitor is fed from your EuroScope ground/surface radar picture — the simulation's equivalent of an ASMGCS surface-surveillance feed — reading your live in-session traffic directly. Because that radar feed is the only input, THL requires an active controller: it runs only while you're connected and monitoring the airport. Close the position and the runway's THL goes with it.
Turn it on
- Open the XPGuard menu from the XPGuard button and click the airport's + ICAO header to expand its runways. Each runway row has two checkboxes: BAR (stop bars, left) and THL (right).
- Tick THL on a runway to activate that runway's THL monitor (the box fills red); untick it to stop. THL is activated per runway and independently of its BAR claim.
- From there it's hands-off: when an aircraft lines up and the runway ahead is unsafe, the THL lights turn red in the sim; when it clears, they go dark.
On the radar, an armed runway shows the THL double-row in red along the runway and labels the protected aircraft THL <runway>.


Controllers — who can claim what
The server decides which runways your position may claim, from your controller facility/rating (as the plugin reports it — this normally matches your callsign suffix), with your callsign used to check the airport for own-airport positions. It's the same for the EuroScope and vatSys plugins.
- Delivery, Ground, Tower (
_DEL/_GND/_TWR) — your own airport only: the part of your callsign before the first_must match the airport ICAO. E.g.LTAC_TWRcan claim LTAC only. - Approach/Departure, Center, FSS (
_APP/_DEP/_CTR/_FSS) — top-down: any airport you cover. e.g.LTAA_CTRcan claim runways at LTAC, LTBA, and so on.
In all cases:
- A runway is held by one controller at a time — if someone else holds it, their callsign shows and the runway is greyed out.
- Switching to a new callsign releases the runways you held under the previous one.
- Claims are kept alive by a periodic heartbeat. A clean disconnect or plugin unload drops them immediately; if heart-beating simply stops (e.g., a crash), the server expires them about 60 s later.
- Any position that isn't Approach/Departure, Center, or FSS is treated as own-airport-only — it can claim only the airport whose ICAO matches your callsign prefix.
APRON — shared apron / ground bars
Stop bars out on the apron or a taxiway that belong to no runway are grouped under a special APRON claim (contributors tag them in the editor). APRON is the one shared claim: unlike a runway (one holder), any eligible position — Ground, Tower, or a top-down controller — may co-claim APRON at the same time. That suits airports with several ground sectors; who switches which apron bar is coordinated verbally between you (everyone sees the live state — the system doesn't pick an owner). APRON has no THL. In both plugins an APRON row appears once an airport has apron bars — tick it to claim; it isn't greyed when others hold it.
Controllers (vatSys) — Installation
Download the XPGuard vatSys plugin from your dashboard. Windows may block files downloaded from the internet, so unblock it first: right-click the downloaded .zip → Properties → tick "Unblock" → OK, then extract it. (If you skip this, vatSys won't load the plugin.)
Copy XPGuardVatsys.dll into your profiles Plugins or vatSys Plugins folder — usually
...\Program Files (x86)\vatSys\bin\Plugins
Launch vatSys, an XPGuard entry appears in the vatSys Windows menu; click it to open the XPGuard window.

Set your token once: in the XPGuard window, paste your Controller token (from your dashboard) into the Token box and click Save. It's the same token as the EuroScope plugin, and it's remembered — so this is a one-time step.
Controllers (vatSys) — Settings
Everything lives along the top of the XPGuard window:
- Token — your Controller token (above); paste it once and click Save.
- Auto — when ticked, a bar you clear lights itself again after the delay in the seconds box next to it (10–60 s, default 45 s). Leave it off to clear bars by hand.
- THL sound — when on, a short alert plays once on an anticipated THL incursion. Off by default. See Takeoff Hold Lights.
- THL horizon (s) — how many seconds ahead the THL anticipates a crossing aircraft (default 12, range 3–30).

Controllers (vatSys) — Using it
- Be online as a controller — connect your vatSys position first. Claiming a runway or arming THL while you're offline is refused (the window shows connect to VATSIM first).
- Add your airport — type its ICAO and click Add (you can add several — up to 6). Its ground layout draws on the map with the stop bars marked.
- Claim a runway — each airport in the left list shows its runways underneath; tick a runway to claim it, untick to release. You can only switch bars on runways you currently hold.
- Set a bar — left-click a stop bar on the map to turn it red (hold short) or clear it (off).
- Pin a bar — Ctrl + left-click sets it permanently (marked
*) so Auto won't touch it; Ctrl-click again to release it. - Once you're connected, live traffic appears on the map — green dots are moving, blue dots are stationary, each tagged with its callsign. Zoom with the mouse wheel; pan by dragging with the right (or middle) mouse button.
Controllers (vatSys) — Takeoff Hold Lights (THL)
The vatSys plugin has the same automatic THL monitor as EuroScope — see how THL works for the full explanation. It's fed from your live vatSys radar tracks, runs on anticipation, and requires an active controller.
- Arm THL on a runway — each runway in the left tree has a THL child node; tick it to activate that runway's THL monitor (independent of its bar claim).
- From there it's hands-off: the monitor lights and clears the runway's THL automatically from the live traffic — you never set a THL yourself.
Contributing — map an airport
Stop bars are detected automatically at every airport, so contributing isn't mapping from scratch — it's fine-tuning bars that sit wrong: off the hold-short line, facing the wrong way, missing, or extra. You can even submit an empty map to say an airport has no stop bars (clearing false auto-detected ones). A reviewer — an XPGuard admin or a community moderator for that country — checks your correction, and once approved it becomes the published map everyone gets. (You only map stop bars — Takeoff Hold Lights are worked out automatically from the runway and need no contribution.)
First — which scenery are you flying?
This matters, because XPGuard keeps two kinds of map for an airport. An add-on ("3rd-party") scenery paints its taxiway and hold-short markings in slightly different places than the built-in airport, so a map made for one won't line up on the other.
The built-in airport
The airport that ships with the sim — X-Plane's Gateway airport or MSFS's stock airport. One shared map; everyone on the default scenery gets it. Edit it straight from the dashboard — or from the sim in X-Plane (MSFS can't map the built-in airport from the sim).
A scenery you installed
A payware or freeware airport you added (say an Aerosoft or iniBuilds scenery). Its markings sit differently, so it gets its own map, tied to that exact scenery — only pilots on the same add-on receive it. You can map it only from inside the sim, where XPGuard detects which scenery is loaded.

Editing the built-in map is never wasted. Until an add-on scenery has its own published map, everyone flying it falls back to the built-in one — so the built-in map is the baseline every scenery starts from. A cleaner default helps add-on flyers too, right up until someone maps that specific add-on, which then takes over for its users.
Option A — in the sim (contribution mode)
Works in both X-Plane and MSFS, and it's the only way to map an add-on scenery. It pairs a browser map editor with your running sim, so your edits show live in the sim — you align the bars against the real 3D world.
- Taxi to the airport (the panel shows the airport and its bar count) and click Contribution Mode in the XPGuard panel. In MSFS a short prompt reminds you that contribution mode moves your aircraft — it jumps the plane to each bar you inspect. Click OK to continue.
- The plugin opens your browser to the editor for that airport (sign in if prompted). It automatically tells the editor whether you're on the built-in airport or an add-on scenery, so your map is filed in the right place.
- Every change is mirrored in the sim within a second or two. You also get All RED / All OFF buttons to flash the lights and confirm the bars sit right on the ground.
- Jump to a bar — it works both ways. Selecting a bar links the browser and the sim in
both directions:
- Click a bar in the editor (map or list) → the sim goes to it. In X-Plane the external camera flies there; in MSFS your aircraft teleports ~15 m in front of the bar, facing it.
- Click a bar in the app's Stopbars list → the same bar is selected and the editor map zooms to it.
- Click Submit in the editor when done — contribution mode ends and the plugin returns to the live map.

Nudging a bar's shape from the sim
You don't have to leave the 3D view to line a bar up. In contribution mode XPGuard draws a small blue arrow over every node — the points that define a bar's shape. Select a bar (in the editor or the app's Stopbars list); its selected node grows into a bigger arrow, and you walk it into place with the keyboard while watching the real markings:
X-Plane
- ↑ ↓ ← →Move the selected node 0.5 m, relative to the bar: Up/Down along the runway (the shine direction), Left/Right along the bar.
- TabJump to the next node of the selected bar.
MSFS — these are global, so they work while the MSFS window has focus:
- Ctrl + Shift + ↑ ↓ ← →Move the selected node 0.5 m, relative to the bar: Up/Down along the runway (the shine direction), Left/Right along the bar.
- Ctrl + Shift + NJump to the next node of the selected bar.
Each nudge moves the bar live and saves back to the editor, so the browser and your submission stay in sync. Adding or removing whole bars is done in the browser editor (below) — the sim is for fine-positioning what's already there.


Option B — from the dashboard (browser only)
No sim needed — edit straight in the browser. This edits the built-in / default map only.
- Open your dashboard → Contributions.
- Under Fine-tune an airport, search an airport by ICAO or name and click it to open the editor.
- Make your corrections and click Submit.

Editing the bars
Both routes open the same editor — a map of the airport (X-Plane diagram, OpenStreetMap, or satellite via the layer control) with the auto-detected bars already drawn. A Draw X-Plane data overlay toggle in the layer control hides or shows the X-Plane scenery (pavement, taxiways, runways) so you can check the bars against OSM or satellite. You can cycle the stopbar display type (line or circle) in the layer control.
- Move / reshape — click a bar to select it, then drag its dots (the endpoint handles). In contribution mode you can also nudge its nodes from inside the sim with the arrow keys (Option A).
- Aim it — drag the cyan arrow handle (or use the Direction slider) to point the way the bar shines, perpendicular to the taxiway toward the runway.
- Name & runways — set the bar's name and assign it to one or more runways (ctrl/cmd-click for several) in the sidebar. For an apron or taxiway bar that isn't at a runway hold-short, pick APRON instead of a runway — those are controlled by Ground (a shared claim), not tied to a runway. See APRON — shared bars.
- Add / delete — click + Add stop bar, click points on the map, Ctrl+Click to finish (Esc to cancel); or select a bar and click Delete selected. Adding and removing whole bars is always done here in the browser — including for add-on sceneries.
- Submit — clicking Submit opens a short dialog asking you to summarize the changes you made (e.g. "Fixed the C3 bar direction, removed a false bar at A1"). That note travels with your proposal and is shown to the reviewing admin, so a clear summary speeds approval.

Review & publishing
- Your submission is queued as pending — you get a confirmation email, and it appears in your dashboard's My submissions with a status badge.
- On approve, your map replaces the published bars — the built-in map if you edited the default, or that specific add-on scenery's map if you mapped one — and reflects in the sim almost immediately: connected plugins pick it up on their next poll, no restart needed.
- On reject, the live map is left unchanged and the reviewer's reason shows in your dashboard (and by email) so you can fix it and resubmit.
Track everything in your dashboard → Contributions: each submission shows its airport, bar count, status (pending / approved / rejected), the date and any reviewer note. An airport's full edit history — per sim, with the scenery/creator and who reviewed each entry — is on the same page under Find an airport.
Moderators — who reviews your map
Reviews are done by the XPGuard team and by community moderators: vetted members
who review the contributions for their own countries' airports only (a moderator
scoped to Türkiye sees the pending LT·· submissions, and so on). Approval works the
same either way — the map is checked against the real airport and published.
Want to become one? Apply in our Discord's #moderator-access-request channel — a short form asks for your VATSIM CID, name, vACC and role, and every application is verified with the vACC before access is granted. Once approved you'll get an email, and a Review queue link appears in the site menu whenever you're signed in.
FAQ
Pilots
I don't see any stop bars. Check that you're connected to VATSIM
via xPilot and below 1000 ft AGL. XPGuard needs the server — with no
connection, it shows nothing. The panel's VATSIM and Server lines, and Log.txt
lines starting XPGuard:, tell you what's wrong. Bars are also dark whenever no
controller has set them to red.
What is "Standby mode"? You're above 1000 ft AGL, so the plugin pauses and hides the bars by design. It resumes once you're near the ground again.
Can I turn the lights on or off myself? No — the active controller drives them. The plugin only reflects their state.
There's no green light — how do I know I'm cleared? There is no green light. Red and off are the only two states.
What are the red lights running down the middle of the runway? Those are Takeoff Hold Lights (THL) — an automatic warning not to start your takeoff while the runway ahead is occupied. They clear themselves when it's safe; there's no green light.
A bar is in the wrong place / my airport needs fixing. Click Enter contribution mode near that airport to open the browser editor, adjust the bars, and submit a correction. A reviewer publishes it for everyone.
Controllers
How do I get and set my token? Copy it from the Controller Token
field on your dashboard, then XPGuard button → Set token (or
.xpg token <t>). One-time.
Why can't I claim a runway? It may already be held by another controller (their callsign shows next to the runway and its BAR box is filled red), your position may not be eligible for that airport, or your token/connection failed — the reason appears in the EuroScope message window.
How do I enable THL (Takeoff Hold Lights)? Open the XPGuard menu, expand the airport (+ ICAO), and tick THL on a runway row. It reads your in-session ground traffic and drives the lights automatically — see Takeoff Hold Lights. THL is available in both the EuroScope and vatSys plugins (in vatSys, arm it from the per-runway THL node in the window's runway tree); the X-Plane plugin renders it for pilots.
What is AUTO BAR, and what does the * mean? AUTO BAR re-lights a
left-click-cleared stop bar after a configurable delay (default 45 s). A * marks a
"permanent" bar (set by right-click) that AUTO BAR leaves alone.
Why did my claim drop on its own? Claims are kept alive by a heartbeat; if
you disconnect or unload the plugin, the server releases them after about 60 s. Use
.xpg log to record claim events for troubleshooting.
Do pilots see my changes immediately? Near-real-time — changes sync through the server within a couple of seconds.