X Plane 12 Your Own “Engines Running” Copilot Lua Script.
This X Plane 12 Your Own Engines Running Copilot Lua Script is designed and tested to make your your Next Adventure in X-Plane 12 more exciting and realistic. If your more in a hurry and don’t want to do all the Pre Takeoff checks etc you can use this script then this X Plane 12 Your Own Engines Running Copilot Lua Script will be your choice!
Further Refined 25/6/25
ENGINES MUST BE ON WHEN YOU SPAWN INTO YOUR FLIGHT!
It is still best to SPAWN on the RAMP and taxi following your X Plane 12 Co Pilots Advice! The ENGINES MUST BE RUNNING (ie ON) or the scripts will be detected as fault and Quarantined!
So if you get a Quarantined Script Message and your engines were off most likely when you spawned in so you can understand you understand why. This script relies on the Park Brake being applied when you spawn in and every time you move you release the Park Brake and Re-apply it at the next point.

Sequence of the Script.
It’s actually best to spawn in at the FBO/Hangar with this script! It just cuts out the initial startup procedures. I started with this script and then expanded into the Barron 58 COPILOT COLD & DARK Script latter on (FYI).

—————————————
The X Plane 12 Your Own Copilot Flow.
YOU SPAWN IN – ACTION – Park “Brake ON” – PARKED
Welcome Sir, Let’s go flying, Finalise Your Checklists Please, I’ll be finished checklists in a moment!, Great Day to Fly Isnt It – Gets you in Engines Running! Checks Complete!
————–
ACTION – PARK BRAKE “REMAINS ON” – Waits a few Seconds then it Says:
Checklists complete, Check Transponder Zero, two, Zero, Zero, ALT,ok, ,When You’re Ready, Park Brake OFF, ,Let’s go to the run-up area
————–
ACTION – PARK BRAKE “OFF” – As You TAXI OUT OF PARKING ->
Clear to taxi, Wing Tips Clear! Foot Brakes Check, Turn and Slip Indicator, Check, Heading Indicator, Check, Altimeter, Check
—————–
ACTION – PARK BRAKE “ON” After ARRIVE AT ENGINE RUNUP AREA MAG CHECKS ->
PARK BRAKE, ON, Mag checks, please, Check Park Brake, ON & Set, Throttles, Set for seventeen hundred RPM, Please SET, Propeller, Set Full Forward, Then, Mixture, Full Rich, ok check, Maximum One hundred and twenty five RPM drop on a single Mag, with fifty RPM difference between both engines
———————
ACTION – PARK BRAKE “OFF” Now TAXI To HOLD SHORT -> RUNWAY When Clear ->
Check, All Gauges in the GREEN, then, Volts Check, Reading, Trim Set for Take Off, Your Discretion, but about 3 to 6 degrees up, Flaps Set as Required, All Controls, Free, and, correct, OK, Checking the Circuit, Approach Clear, Downwind Clear, Upwind also Clear, The Runway is Clear, You can Enter Runway when you’re ready, Park Brake, ON when lined up please
———————–
ACTION – PARK BRAKE “ON” PRE TAKE OFF CHECKS ->
Final Pre Take Off Checks, Doors and Windows Secure, Pilots and Crew Seat Belts ON, Prop Full Forward, Mixture Full Rich, Transponder to ALT, Landing Lights ON, Clear
————————
ACTION – PARK BRAKE “ON” PRE TAKE OFF CHECKS #2 ->
Checklist, Rotate at 85 Knots, Maintain Centre Line, Ready When You are Sir!
———————-
ACTION – PARK BRAKE “OFF” NOW – TAKEOFF – END of SCRIPT !
Copy everything BETWEEN the Dotted LINES and Paste into a NOTEPAD page!
Name it Baron58_Copilot_Engines_Running.lua
ENSURE you change the file type from TXT to ALL FILES.
If you look at upir file and it says Baron58_Copilot_Engines_Running.lua.txt you didn’t do correctly ok! Resave it and change the FILE TYPE in the lower save box to ALL FILES and you will see it named correctly as Baron58_Copilot_Startup.lua – OK
Please the file in your X Plane 12/resources/plugins/flywithlua/scripts folder.
Your ready to GO!

Baron58_Copilot_Engines_Running.lua
Copy the script between the lines and don’t include the lines please.
Further Updated and polished during testing 25/6/2025.
–[[
Custom startup voice script for X-Plane 12
Created by Brendon McALiece
–]]
— Datarefs (read-only)
dataref(“PARK_BRAKE”, “sim/flightmodel/controls/parkbrake”, “readonly”)
dataref(“IAS”, “sim/flightmodel/position/indicated_airspeed”, “readonly”)
dataref(“VS”, “sim/flightmodel/position/vh_ind_fpm”, “readonly”)
dataref(“Y_AGL”, “sim/flightmodel/position/y_agl”, “readonly”)
— Voice output function
function speakNoText(sText)
XPLMSpeakString(sText)
end
— Initial greeting
speakNoText(“Welcome Sir, let’s go flying, It’s a Great Day for it, I’ll be finished my checklists in a moment!”)
— State variables
local copilot_timer = 0
local checklist_called = false
local brake_released = false
local brake_announced = false
local brake_reapplied_for_mag = false
local mag_sequence_active = false
local mag_check_timer = 0
local mag_left_called = false
local mag_ok1_called = false
local mag_right_called = false
local mag_ok2_called = false
local brake_after_mag_released = false
local brake_after_mag_announced = false
local final_check_called = false
local final_park_check_called = false
local final_check_timer = 0
— Main loop
function copilotChecklistReminder()
local dt = SIM_PERIOD or 0.016
copilot_timer = copilot_timer + dt
— Initial checklist reminder
if not checklist_called and copilot_timer > 5 then
speakNoText(“My Checklists Are Now complete, ok, Let’s go to the run up area when you’re ready Sir!”)
checklist_called = true
end
— Brake release for taxi clearance
if PARK_BRAKE < 0.5 and not brake_released then
brake_released = true
if not brake_announced then
speakNoText(“Clear to taxi Sir! please Check Toe Brakes, Check Turn and Slip Indicator, Check Heading Indicator, Altimeter Setting, Check please”)
brake_announced = true
end
end
— Brake re-applied at runup area for mag checks
if brake_released and PARK_BRAKE >= 0.5 and not brake_reapplied_for_mag and not mag_sequence_active then
brake_reapplied_for_mag = true
mag_sequence_active = true
mag_check_timer = 0
speakNoText(“PRE Mag checks, Park Brake Set, Throttles for seventeen hundred RPM, Prop Full Forward, Mixture Full Rich please, ok check, Maximum One hundred and twenty five RPM drop, I’ll be ready in a moment! Please waite!”)
end
— Mag check sequence
if mag_sequence_active then
mag_check_timer = mag_check_timer + dtif mag_check_timer > 10 and not mag_left_called then speakNoText("Left mag check first Please") mag_left_called = true end if mag_check_timer > 12 and not mag_ok1_called then speakNoText("OK") mag_ok1_called = true end if mag_check_timer > 14 and not mag_right_called then speakNoText("Right mag checks please") mag_right_called = true end if mag_check_timer > 16 and not mag_ok2_called then speakNoText("OK great, let's go to the hold short line.") mag_ok2_called = true end
end
— Post-mag check taxi to runway
if mag_ok2_called and PARK_BRAKE < 0.5 and not brake_after_mag_released then
brake_after_mag_released = true
if not brake_after_mag_announced then
speakNoText(“Check, Prop Sync Now ON! All Gauges in the GREEN, Volts Check Reading, Trim Set for Take Off, 3 to 6 degrees up, Flaps Set as Required, Controls Free and correct, Checking the Circuit, Approach, Downwind, Upwind All Clear, Runway Clear, You can Enter Runway when you’re ready Sir, Park Brake on when lined up please.”)
brake_after_mag_announced = true
end
end
— Final pre-takeoff checks
if brake_after_mag_released and PARK_BRAKE >= 0.5 and not final_check_called then
final_check_timer = 0
speakNoText(“Final Pre Take Off Checks, Sir, Doors and Windows Secure, Pilots and Crew Seat Belts ON, Prop Full Forward, Mixture Full Rich, Transponder to One, Two, Zero Zeroand ALT On, Landing Lights ON, All Clear”)
final_check_called = true
end
— Delay before final takeoff checklist
if final_check_called and not final_park_check_called then
final_check_timer = final_check_timer + dt
if final_check_timer > 5 then
speakNoText(“Checklist, Rotate at 85 Knots, Maintain Centre Line, Ready When You are Sir!”)
final_park_check_called = true
end
end
end
— Register frame loop
do_every_frame(“copilotChecklistReminder()”)
—————————

Legal Notice
- FREE TO DOWNLOAD & USE: The BARON58_ColdAndDark Lua Script is completely free for personal use. You are welcome to download, install, and use it in your X-Plane 12 setup.
- NOT FREE TO REDISTRIBUTE: Redistribution of this script, in whole or in part, without the permission of the creator, Brendon McAliece of LetsFLYVFR.com, is strictly prohibited.
- USER MODIFICATIONS: While you are free to edit the script for your personal use, modifying the Lua script incorrectly may cause it to malfunction. Any modifications are done at your own risk. The script remains the intellectual property of Brendon McAliece, the creator and owner, associated with LETSFLYVFR.com and the LETSFLYVFR YouTube Channel.
Common Issues & Troubleshooting
While the BARON58_ColdAndDark Lua Script has been extensively tested by Brendon McAliece (AKA Gunnie) of LETSFLYVFR.com, there may still be occasional issues, especially as the script is still in beta.
Common Issues:
- No Speech or Callouts: Ensure FlyWithLua NG is properly installed. If the Lua script isn’t executing, it might be due to missing files or incorrect setup. Check the installation steps carefully.
- Script Not Running: Double-check that the script file is saved with the correct .lua extension and placed in the FlyWithLua/Scripts/ folder.
- Missing Datarefs or Errors in Log: If you see errors about missing datarefs, it may indicate that a specific part of the aircraft model or X-Plane setup is not fully compatible with the script. Report any issues in the comments or contact us.
- Performance Issues: If the script causes performance issues, try disabling other scripts temporarily to identify potential conflicts.
Current Baron 58 Lua Scripts Available.
- Baron 58 Cold and Dark (Completed & Published)
- Baron 58 Engines Running Lua (Completed & Published)
- Baron 58 Copilot – Take Off Climb Lua (Completed & Published)
- Baron 58 Co Pilot – Cruise Assistance (In Progress)
- Baron 58 Co Pilot – Decent – Landing (In Progress)
Conclusion

I hope you find the series of files I have created make your X-Plane 12 experience more enjoyable! They are simple files but still took a lot of time and testing to make them work as they currently do so be careful what you decide to edit. Keep a central bank of files separate unless you make a mistake ok.
Again I created these for the X Plane 12 community and myself! I will likely add more files in the future for you to enjoy. In creating these my focus was on the Baron 58 as its been my passion for a while so these enhance the experience there.
It’s not inconceivable that other aircraft like the Diamond DA 62 which I also have wouldn’t benefit from This LUA file with a little TEXT EDITING and apply the same format to it which is likely what ill do!
The Creation of these Files
I have found the process of Creating these files Enjoyable and Incredibly Frustrating all at the same time. I am not a programer and I do not hide the fact I used CHAT GPT to program these files!
Please be warned that it still took me a weeks work initially to get this one LUA script to work as it does now! It took probably 10 hours or more of work editing, testing, checking faults and rewriting it yet again then retesting etc.
You get the idea! Chat GPT is not a make this for me solution by a very very long way! But it is a great tool to enable someone like myself to create something I never thought I was possible of making. Please enjoy my sweat and tears!
Author

Brendon McAliece (Aka Gunnie) is a military veteran with 23 years working on Jet Fighters, their weapons systems and ejection seat/module systems as well as munitions and R&D. Involved with flight simulation since the 1980s, he has flown all the major flight simulators over the years.
He is an Australian expat who has lived in Malaysia, UK, Saudi Arabia and more recently Thailand. He is a multi-lingual blogger who loves to share his life experiences here on LetsFlyVFR.com and DreamingGuitar.com, with his lifestyle and Travel experiences Blog plus his Dreaming Coffee website.
Learn More @
DreamingGuitar.com – DreamingCoffee.com – LetsFlyVFR.com
( HOME – BLOG – SHOP – ABOUT )
This page has been viewed 10 times.
As an Amazon affiliate I may benefit from qualifying sales.
4 responses to “X Plane 12 Your Own Engines Running Copilot Lua Script.”