[ADD-ON] PaxStudio — The Professional Dispatch & Loadsheet Module for phpVMS 7

PaxStudio — The Professional Dispatch & Loadsheet Module for phpVMS 7


The Problem with the Default SimBrief Integration

If you’ve been using phpVMS 7 for a while, you know the issue: the built-in SimBrief integration is functional, but it leaves a lot to be desired. There’s no real loadsheet calculation, no weight-based cargo planning, no structured overview of active bookings — and above all, no unified dispatch experience that feels like real airline operations.

PaxStudio was built exactly for this case: as a complete, standalone replacement for the default SimBrief integration in phpVMS 7. Not a workaround, not a patch — but a full dispatch center that integrates seamlessly into your existing phpVMS installation.

PaxStudio was originally developed for the German Sky Group Virtual Airline — but it works with any phpVMS 7 installation.


What is PaxStudio?

PaxStudio is a phpVMS 7 module that provides the following core features:

  • Hub: Overview of all active bookings with OFP status
  • Loadsheet Studio: Professional passenger and cargo planning based on real aircraft weights
  • Smart Cargo Calculation: MZFW- and MTOW-based, live and in real time
  • OFP Dashboard: 6-tab interface with weather, performance, maps, route, and full SimBrief briefing
  • SimBrief Redirect Middleware: All existing /simbrief/* links are automatically redirected to PaxStudio — no changes to existing templates needed
  • Multi-Theme Support: SPTheme, Seven, Disposable_v3 — each in light and dark mode
  • PIREP Form: Pre-filled from SimBrief data, with per-class PAX counts
  • Admin Panel: Fetch, import, and manage SimBrief airframe weights

Requirements

Before installing PaxStudio, make sure the following requirements are met:

  • phpVMS 7.x (latest stable version recommended)
  • PHP 8.1 or higher
  • SimBrief Account with a valid API key (available for free at simbrief.com)
  • DisposableBasic — Provides enhanced fleet and airport data. The aircraft weights (DOW/MZFW/MTOW) that PaxStudio uses for its smart cargo calculation are typically managed through DisposableBasic
  • DisposableSpecial — Complements the dispatch workflow with additional features such as dynamic fares and extended flight planning
  • FTP access or file manager for uploading
  • Write permissions on the modules/ directory of your phpVMS installation

Note: PaxStudio technically works without DisposableBasic and DisposableSpecial — in that case, the fare-based fallback logic is used for cargo calculation. However, for full functionality (especially weight-based cargo planning), both modules are recommended.


Availability & Donation

PaxStudio is not available for free. A minimum donation of 8.00 EUR is required for use. The donation helps to actively develop and maintain PaxStudio.

Important when donating:
Please send the donation as “Friends & Family” (not as a purchase/goods) so that no PayPal fees are deducted and the full amount arrives. Alternatively, a bank transfer is also possible.

PayPal: PN or Discord

After receiving the donation, you will be granted access to the download.


Features in Detail

1. The Hub — /paxstudio

The Hub is the control center. Here, the pilot can see all currently booked flights at a glance — clear, organized, and action-oriented.

The layout follows the familiar flight board style: Each booking appears as its own card with flight number, route, aircraft type, and current dispatch status.

OFP Status Badges:

Badge Color Meaning
OFP Ready Green A valid SimBrief flight plan exists — ready for departure
OFP Pending Amber No SimBrief flight plan generated yet, or outdated

The buttons in the Hub are smart: They always show the contextually appropriate next action. If a flight has no OFP yet, the button reads “Go to Loadsheet”. If an OFP exists, it switches to “Open OFP”. This guides the pilot intuitively through the dispatch process without having to think about it.

Deleting a booking = full cleanup:
When a booking is deleted from the Hub, PaxStudio performs a complete cleanup:

  • The bid (flight booking) is removed
  • All associated SimBrief records in the database are deleted
  • The active session is cleared

No data clutter, no orphaned entries.


2. Dispatch Loadsheet Studio — /paxstudio/loadsheet

The Loadsheet Studio is the heart of the user experience. Here, the pilot plans passengers, baggage, and cargo — and immediately sees what this means for the aircraft weights.

The interface is split into two columns:

Left Column — Aircraft & Flight Overview:

  • Aircraft Selector: If multiple subfleets are available for the flight, they can be switched here
  • Flight Metrics: Flight number, route, scheduled departure time
  • Certified Weights — directly from the aircraft data:
    • DOW (Dry Operating Weight): Empty weight of the aircraft including crew and equipment
    • MZFW (Maximum Zero Fuel Weight): Maximum weight without fuel
    • MTOW (Maximum Takeoff Weight): Maximum takeoff weight
    • FOB (Fuel on Board): Planned fuel amount from the SimBrief OFP

These values are not just for display — they feed directly into the cargo calculation (more on that below).

Right Column — Load Configuration:

This is where the actual planning happens. At the top are preset buttons for quick configuration:

Preset Load Factor Description
Light 45% Low load
Medium 70% Medium load
Standard / Random ~86% +/- 20% Realistic variation around 86%
High 95% Nearly full
Full 100% Full capacity

The Standard/Random preset is particularly realistic: It draws a random load factor in the range of 66–100%, simulating real booking fluctuations.

PAX Slider with Cabin Class Breakdown:

The main PAX slider controls the overall load. Below it are individual sub-sliders per cabin class:

  • Economy
  • Business
  • Premium Economy
  • First Class

Each class only appears when a fare with capacity >= 1 is configured for it (calculation starts at 1 — 0 = no slider).

Dynamic Slider Colors provide immediate visual feedback on load:

Range Color
0% – 50% Light Blue
50% – 75% Blue
75% – 90% Dark Blue
90% – 100% Orange

Orange signals: Nearly or fully loaded — visually intuitive without text.


3. Smart Cargo Calculation — The Core Feature

This is the feature that sets PaxStudio apart from simple loadsheet solutions.

The available cargo capacity is not a fixed number. It is derived dynamically from the physical weight limits of the aircraft — just like in real aviation.

The Formula:

Available Cargo = min(MZFW Limit, MTOW Limit)

Where:

MZFW Limit = MZFW - DOW - (PAX x PAX Weight) - (PAX x Bag Weight)
MTOW Limit = MTOW - DOW - FOB - (PAX x PAX Weight) - (PAX x Bag Weight)

What does this mean in practice?

  • The MZFW limit calculates how much cargo is structurally possible — independent of fuel
  • The MTOW limit calculates how much cargo is possible given the takeoff weight — including fuel
  • The minimum of both limits is the actual available cargo weight

Live Update: As soon as the pilot moves the PAX slider and books more passengers, the cargo maximum drops immediately and in real time. So if you book 180 instead of 150 passengers, you can immediately see that less capacity remains for cargo. No manual recalculations, no overloading errors.

Fallback Logic: If no weight data is stored for an aircraft (DOW, MZFW, MTOW = 0), PaxStudio falls back to fare-based capacity. The maximum cargo amount then simply equals the capacity of the assigned cargo fare. Less precise, but functional.


4. Fare Configuration — The Foundation

The fare configuration is the most important step when setting up PaxStudio. Incorrectly or incompletely configured fares lead to classes not appearing or cargo not being available. Therefore, here is a very detailed explanation.

phpVMS distinguishes two fare types:

Type phpVMS Value Meaning
Passenger 0 Passenger fare
Cargo 1 Cargo fare

For PAX fares (Type 0):

  • capacity = maximum seats for this cabin class
    • Example Economy: 150
    • Example Business: 24
    • Example First Class: 8
  • amount = ticket price per passenger (can be 0 if no revenue is calculated)

For Cargo fares (Type 1):

  • capacity = maximum cargo in kilograms
    • Example: 5000 for 5 tons maximum cargo
  • amount = price per unit (can be 0 if no cargo revenue is to be calculated)

Mandatory rules — must be followed:

  1. Fare must be assigned to the flight — a fare that only exists globally but is not assigned to the flight will be ignored by PaxStudio
  2. Fare must be assigned to the subfleet — same rule: no subfleet assignment = no display
  3. capacity must be >= 1 — calculation starts at capacity = 1. A fare with capacity = 0 is completely ignored by PaxStudio. No slider, no cargo field
  4. Both conditions (flight AND subfleet) must be met

Special behavior:

  • No PAX fare with capacity > 0 present → PaxStudio automatically activates cargo-only mode. The loadsheet then shows only cargo planning, without PAX sliders
  • No fare present → PaxStudio recognizes the flight as a training flight. No loadsheet is required — the pilot can start directly

This logic allows flexible use: cargo flights, mixed flights, pure PAX flights, and training flights are all handled correctly without manual switching.


5. OFP Dashboard — 6 Tabs

After generating the SimBrief flight plan, the OFP Dashboard opens. It is divided into six tabs that cover all relevant information for a professional dispatch.


Tab 1: Summary

The Summary tab is the overview page of the flight plan. It contains:

  • Quick Info Cards: Flight number, route, aircraft, ETD/ETA, planned block time
  • Action Bar: Direct access to the most important actions (start PIREP, print briefing, delete booking)
  • Sector Graphic: Visual representation of the route with departure and arrival
  • Weight Envelope with Color Bars: Shows ZFW (Zero Fuel Weight), TOW (Takeoff Weight), and LDW (Landing Weight) as colored bars relative to certified limits — instantly visible whether all weights are in the green zone
  • Load Distribution: Distribution of payload by cabin and cargo
  • Network Filing Buttons: Direct links for filing the flight plan with VATSIM, IVAO, or other networks

Tab 2: Route & SigWX

Shows SimBrief maps for:

  • The planned route with waypoints
  • Significant Weather (SigWX) — the official severe weather chart from the SimBrief OFP

Tab 3: Weather

This tab provides all relevant weather data for the flight:

  • METAR and TAF for:
    • Departure airport
    • Destination airport
    • Alternate airport
  • Flight Categories — color-coded according to international standards:
Category Color Meaning
VFR Green Visual Flight Rules — good visibility
MVFR Blue Marginal VFR — reduced visibility
IFR Red Instrument Flight Rules — poor visibility
LIFR Purple Low IFR — very poor visibility
  • SIGMET Warnings: Active Significant Meteorological Information for the route is highlighted

Tab 4: Performance

The Performance tab provides detailed information for takeoff planning:

  • Runway Analysis: Available runways with length specifications
  • Weight Limits per Runway: Shows whether TOW and LDW are permissible for the available runways
  • Wind Components: Headwind/tailwind and crosswind for each runway configuration

Tab 5: Maps

Shows the complete flight plan maps from SimBrief:

  • Overview map of the entire route
  • Detail maps for departure and approach areas

Tab 6: Briefing

The complete SimBrief OFP text — exactly as generated by the SimBrief system. For those who prefer the classic text briefing or want to print it out.


6. SimBrief Redirect Middleware

PaxStudio includes a middleware that automatically intercepts all existing /simbrief/* URLs and redirects them to the corresponding PaxStudio pages.

This means: If you already have templates or links pointing to the old SimBrief routes, you don’t need to change anything. PaxStudio handles the redirect transparently.

Redirect Table:

Old URL New URL (PaxStudio)
/simbrief/generate?flight_id=X /paxstudio/loadsheet?flight_id=X
/simbrief/ofp?id=X /paxstudio/ofp?id=X
/simbrief /paxstudio

Important: API routes under /api/* are not affected by the middleware. External systems using the phpVMS API are not impacted by the redirect.


7. Multi-Theme Support

PaxStudio supports the most common phpVMS 7 themes — each in light and dark mode:

Theme Light Mode Dark Mode
SPTheme
Seven
Disposable_v3

The implementation uses CSS Custom Properties: PaxStudio reads the theme variables of the active theme and automatically adapts colors, backgrounds, and accents. There are no hardcoded color values — the module blends in visually.

The font is also inherited from the active theme. PaxStudio always looks like a native part of the installation.


8. PIREP Form

The PIREP form in PaxStudio is pre-filled from the SimBrief OFP:

  • Flight number, route, aircraft — automatically populated
  • Planned times as default values
  • Per-class PAX counts: Economy, Business, Premium Economy, and First Class are recorded as separate fields — for detailed analytics in your VA statistics
  • Cargo weight: Taken directly from the loadsheet, editable for actual values

9. Admin Panel — Managing SimBrief Airframe Weights

PaxStudio comes with its own admin panel, accessible under Admin → Add-ons → PaxStudio. This is where SimBrief airframe weights are centrally managed — the foundation for the smart cargo calculation.

What are SimBrief Airframes?

SimBrief stores weight data (DOW, MZFW, MTOW) for each aircraft type. PaxStudio can fetch this data directly from SimBrief and cache it locally, so it’s immediately available during loadsheet calculation.

Bundled Airframe Database:

PaxStudio ships with a pre-built JSON file (Install/paxstudio_airframe_weights.json) that already contains 323 SimBrief airframes with complete weight data. This file can be uploaded directly after installation via the “Import JSON” button in the admin panel — giving you instant access to weight data for the smart cargo calculation without having to fetch each airframe individually from SimBrief.

Admin Panel Functions:

  • SimBrief Pilot ID: Enter your SimBrief Pilot ID — required for API access
  • Fetch Airframe Weights: Fetch the latest weight data (PAX and cargo variants) for all configured aircraft types directly from SimBrief
  • JSON Import: Import the bundled JSON file or a previously exported file — the fastest way to load all airframe weights at once
  • JSON Export: Export all airframe weights as a JSON file — useful for backups or transferring between installations
  • Airframe Table: Overview of all cached airframes with status display:
    • Complete — All weight data fully available
    • Incomplete — Partial data available, manual editing possible
    • Missing — No data fetched yet
  • Manual Editing: Individual airframe weights can be edited directly in the table — e.g., for custom values
  • Reset: Reset individual airframe entries and re-fetch from SimBrief

KPI Dashboard: The admin panel also shows metrics like total generated OFPs, today’s OFPs, and payload/fare coverage.

Tip: The fastest way to get started: After installation, click “Import JSON” in the admin panel and upload the bundled file Install/paxstudio_airframe_weights.json. This makes all 323 airframes instantly operational. Alternatively, you can use “Fetch SimBrief Weights” to pull data directly from SimBrief — this takes a bit longer but always delivers the most up-to-date values.


Installation — Step by Step

1. Download the ZIP archive
   → https://github.com/MANFahrer-GF/PaxStudio/releases

2. Upload the contained "PaxStudio" folder via FTP
   to your phpVMS directory:
   → /modules/PaxStudio/

3. Enable the module (IMPORTANT — don't forget!):
   → Either via terminal:
     php artisan module:enable PaxStudio
   → Or in the admin panel:
     Admin → Add-ons → Modules → Enable PaxStudio

4. Install via the phpVMS admin panel:
   Admin → Add-ons → PaxStudio → Click "Install PaxStudio"
   (copies the required model overrides automatically)

5. Clear cache:
   php artisan optimize:clear
   → Or in the admin panel:
     Admin → Maintenance → Clear Cache

6. Configure SimBrief Pilot ID:
   Admin → Add-ons → PaxStudio
   → Enter SimBrief Pilot ID and save

7. Load airframe weights:
   Admin → Add-ons → PaxStudio
   → Option A (recommended): Click "Import JSON" and upload
     the bundled file Install/paxstudio_airframe_weights.json
     — instantly loads 323 airframes with all weights
   → Option B: Click "Fetch SimBrief Weights" to pull data
     directly from SimBrief (takes a bit longer)

8. Configure fares (see section below)

Tip: If weight data is not fully available (e.g., for older aircraft entries), PaxStudio automatically uses the fare-based fallback — so no error messages, just less precise cargo calculation.


Fare Configuration — Step by Step

The fare configuration is crucial for PaxStudio to correctly display all classes and cargo. Here is a practical guide:

Step 1: Create PAX Fares (per cabin class)

Admin → Fares → Create New Fare

Example Economy Class:

Field Value
Name Economy
Code Y
Type Passenger (= 0)
Capacity 150 (= maximum Economy seats)
Amount 0 (or ticket price e.g. 149.00)

Example Business Class:

Field Value
Name Business
Code C
Type Passenger (= 0)
Capacity 24
Amount 0 (or 399.00)

Step 2: Create Cargo Fare

Field Value
Name Cargo
Code CGO
Type Cargo (= 1)
Capacity 5000 (= 5,000 kg maximum cargo)
Amount 0 (or price per KG)

Step 3: Assign Fare to Subfleet

Admin → Aircraft → Subfleets → [Select Subfleet] → Fares

→ Assign all relevant fares (Economy, Business, Cargo, etc.) to the subfleet.

Step 4: Assign Fare to Flight

Admin → Flights → [Select Flight] → Fares

→ Assign the same fares to the respective flight.

Important: Both assignments (subfleet AND flight) are mandatory. If either is missing, PaxStudio ignores the fare.

Step 5: Verify

  • capacity >= 1 for all fares? → Required (calculation starts at 1, 0 = ignored)
  • Fare in subfleet? → Required
  • Fare in flight? → Required

Special cases:

  • Only cargo fare present (no PAX fares) → Cargo-only mode activates automatically
  • No fares at all → Training flight mode (no loadsheet required)

Bugs, Questions, Feature Requests

For bug reports and feature requests, please use the GitHub issue tracker exclusively:

→ GitHub Issues

This helps to track requests in a structured way and ensures nothing gets lost.


Developed for the German Sky Group Virtual Airline — and for everyone who takes phpVMS dispatch seriously.

I haven’t found any way to get in touch with you for the donation, screenshots, or just talking about this. How do we get connected?

@William You can send me a message here on the forum (PM) or via Discord.
[Thomas] 4TK
thomas_kant_38518

Bilder:



How can I sent a donation to get my hands on this?

Contact the OP via PM here or via a PM in Discord.