phpVMS
ACARS for phpVMS: How Clients Connect and File PIREPs
phpVMS doesn't read the simulator itself. A desktop ACARS client does that and talks to phpVMS over its API: it loads the pilot's booked flights, opens a PIREP when the flight starts, sends position reports and log entries while flying, then files the finished PIREP for staff to review.
phpVMS is a website. It knows your schedules, fleet and pilots, but it has no idea what's happening inside Microsoft Flight Simulator (MSFS) or X-Plane. The missing piece is an ACARS client: desktop software the pilot runs next to the simulator that reads the flight and reports it to phpVMS as it happens.
Without one, pilots can still file a PIREP by hand on the phpVMS website, typing in their times, fuel and landing rate. For a virtual airline (VA), we'd recommend requiring ACARS: the data comes straight from the simulator, and staff can see the flight on the live map and replay its route afterwards. If you're new to the term, what is ACARS in flight simulation covers the basics.
How an ACARS Client Talks to phpVMS
Every phpVMS 7 pilot account has an API key, issued when they register and regenerated on request. An ACARS client sends that key with each request, and phpVMS uses it to know which pilot is flying. From there, a flight follows the same steps:
| Step | What the client does | What phpVMS records |
|---|---|---|
| Sign in | Sends the pilot's credentials or API key | Identifies the pilot and their airline |
| Load data | Reads the pilot's bids, plus fleet and airport details | Nothing new; this is read-only |
| Start | Opens a new PIREP for the booked flight | A PIREP in the "in progress" state |
| Fly | Sends position reports on a timer, plus log entries and events | Rows in the ACARS table, shown on the live map |
| Finish | Files the PIREP with flight time, fuel used, distance and landing data | The PIREP moves to "pending" |
| Review | Nothing; this is staff work | Staff accept or reject the PIREP |
A flight can also be cancelled part-way, which marks the PIREP cancelled rather than leaving it hanging.
What's in a position report
A position report is a small snapshot of the aircraft: latitude and longitude, altitude, heading, ground speed, and the current phase of flight. A client sends one on a regular timer, and phpVMS stores each one as a point on the flight path. That's what draws the line on the live map and the route on the finished PIREP.
What's in a filed PIREP
The final PIREP carries the numbers your airline reviews: departure and arrival, aircraft, flight time, fuel used, distance, landing rate and the in-flight log. phpVMS 7 also supports custom PIREP fields, which a client can fill with extra data such as the simulator used or the departure runway. What is a PIREP goes through the contents in more detail.
What phpVMS Does With the Data
phpVMS keeps ACARS data in its own tables, linked to the PIREP:
- Flight path points become the route line on the PIREP page and the live map.
- Route waypoints are the planned route, kept alongside the flown one.
- Log entries become the timeline staff read when reviewing a flight: engine start, takeoff, landing, and anything else the client reports.
Once a PIREP is accepted, its hours count towards the pilot's totals and rank. A rejected PIREP stays on record but doesn't count.
Two Ways a Client Can Connect
There are two ways an ACARS client can hook into phpVMS 7.
Through phpVMS's built-in API. phpVMS 7 ships with REST endpoints for opening, updating, filing and cancelling PIREPs, posting ACARS positions and logs, and reading bids. A client built on these needs nothing extra installed on the server.
Through a phpVMS module. Some clients come with a module that adds their own endpoints to your phpVMS install. The module translates the client's requests into phpVMS's native PIREPs and ACARS records, so the website, live map and admin pages all work as normal. This lets the client send richer data or use a different sign-in flow, at the cost of one more thing to install and update. phpVMS modules explains how modules work.
Either way, the data should end up in phpVMS's own tables. If an ACARS option stores your flights somewhere you can't reach, we'd treat that as a warning sign.
Choosing an ACARS Client for phpVMS
When you compare options, look past the feature list and ask the questions that affect your pilots and your server:
- Simulators. Does it support every simulator your pilots fly: MSFS 2020, MSFS 2024, X-Plane 11 and 12, FSX, Prepar3D?
- Operating systems. X-Plane runs on Windows, macOS and Linux, so if any of your pilots fly it outside Windows, check the client runs there too.
- Cost to pilots. Does each pilot pay, or the airline, or nobody?
- phpVMS version. It must support phpVMS 7, and you'll want to know its plans for phpVMS 8.
- Recovery. What happens if the simulator crashes or the internet drops mid-flight? Does the flight continue, or is it lost?
- Server load. Every position report is a request to your web host, so faster updates and busy event nights add up quickly. phpVMS hosting has a table of what that looks like.
- Customisation. Can you control what's logged, how landings are scored and what extra fields reach your PIREPs?
Common phpVMS ACARS Problems
| Problem | Usual cause |
|---|---|
| Pilot can't sign in | Wrong credentials, a regenerated API key, or an inactive pilot account |
| PIREPs stuck "in progress" | The client closed or crashed before filing. Staff can edit or remove them in the admin panel |
| Live map is empty | Positions aren't reaching phpVMS, or no flights are in progress |
| Flight not on the bids list | The pilot booked it after the client loaded their bids. Refresh the list |
| Requests time out at busy times | Your host is struggling with the request volume. Lower the update rate or upgrade hosting |
Frequently Asked Questions
Does phpVMS have built-in ACARS?
phpVMS 7 includes the server side: the API, the ACARS tables and the live map. The part that reads the simulator is a separate desktop client, and several work with phpVMS 7, including free ones.
Can pilots file PIREPs without an ACARS client?
Yes. phpVMS lets pilots file a PIREP manually on the website. In our view it's best kept for exceptions, because nothing checks the numbers against the simulator.
Does phpVMS ACARS work with MSFS 2024 and X-Plane 12?
phpVMS itself doesn't care which simulator is used. Support depends entirely on the ACARS client, so check that the one you pick reads the simulators your pilots fly.
Why are my phpVMS PIREPs stuck in progress?
The client started the flight but never filed or cancelled it, usually after a crash or a closed app. An admin can edit the PIREP's state or delete it in the phpVMS admin panel.
Where Stratos Fits
For a phpVMS 7 airline, Stratos is a free ACARS client by Skyvex Software for MSFS, X-Plane, FSX and Prepar3D, on Windows, macOS and Linux. It connects to phpVMS 7 through Skyvex Software's Stratos modules for phpVMS, which write flights into phpVMS's native PIREP and ACARS tables, and flight data goes straight from the pilot's Stratos to your phpVMS site. Connect phpVMS to Stratos walks through the setup.
Stratos, by Skyvex Software
Bring Stratos
to your airline.
Free for every pilot, and it works with phpVMS or your own backend. We onboard each airline personally and make sure it works with your setup before you go live.