I have a thought. When I get fizx implemented I might dabble and see if I can come up with a way of automating these two variables - eg check for the presence of a pup config file and if not present turn off pup, and similar for dof. I'd leave the lines discussed above commented so if my code doesn't work users could uncomment those to override it. Not sure which files I would check for yet, but as a concept I'm intrigued.
iCOM PLUG-IN
Make sure you have your iCOM security level is set correctly, or some things from the FizX AIO Example code (or PinEvent tables) won't work. Read about that here:
PSA: Future Pinball - BAM If you get a Meditation Error of "Object Required: fso" when trying to start a Future Pinball table, do the following: open the BAM menu while playing (~ or Q) goto plugins iCOM change the setting to Safe (disable blacklisted) exit BAM menu, then close FP completely...
pinballnirvana.com
PinMechSound SECTION
If you still get errors when enabling DOF or PUP, that may be a result from you linking PinMechSound subs to your main script, and not updating the pinmechound commands to use the correct parameters for your table items, etc. Those PinMechSound subs are not required for the table to function (they are required if you want dof and SSF for those events), but if you do use them and link them to your main script for those events, then they MUST be updated correctly for your table, or you WILL get errors.
DOF
For DOF, there is no file to check for. The only thing that can be checked is for the existence of DOF being installed at all on the PC and being accessible (if DOF was set to be enabled). The AIO Example code already does this, and disables DOF normally if DOF does not exist.
PUP
The AIO Example code does a similar check for PUP. If its not installed or can't be accessed then it normally is disabled, and FP mechanical sounds are used instead.
However... if PUP is installed... and the Pup-Pack the table needs is not installed... then you will have PUP running, but it won't have loaded any sounds to use... so your mechanical SSF sounds won't play at all.
DMDExt
The DMDext code on the AIO Example code is something JLou wanted on there. I think that 98% of people who would use DMDext with FP will NOT use it that way as cabinet users already launch DMDext with a front-end. Everyone else who wants to use it with any table (and nothing else needed) can easily launch it with FP using my "Start FP - DMDExt" BAT files.
Myself, I would remove that portion completely (and the option to enable it in TABLE OPTIONS) if it's something you don't know how to support (or want to support) when used from table script. (I show that in the removal section in the AIO Example PDF Guide).
I would highly recommend everyone (who used the AIO Exmplae coe in their table) keep DOF and PUP SSF disabled by default on your tables, and mention in the download page description what features you support. You do NOT have to support either DOF or PUP or DMDext on your tables if you do not want to. You can add a note in the table script "DO NOT ENABLE - Not supported, may cause errors, etc". Those features are in there as options... they are not required for the code and FizX to work.
It goes without saying... anyone using the AIO Example Table's code... MUST follow the updated PDF Guide included with it step by step in order to make sure your are adding it properly, and as required. Don't skip steps. Follow my video if that helps... but ALWAYS follow the PDF, as its more up to date.
=================================================================
PinEvent code and the AIO Example code are NOT the same!!! Do NOT try to use PinEvent code in your tables!
Don't compare how they work. The FizX AIO code / table was created because JLou wanted the basic functions of dof, pup, ball rolling added... so I made a more basic and simpler version of the code I created for PinEvent and added ot to that table (as the other PinEvent stuff is WAY overkill for you guys).
On PinEvent, I do MANY checks for different things on startup. The existence of the PinEvent_V2_Settings.txt file (for global PinEvent settings for all PinEvent tables to use by default). If the file is not found (or the correct file), the table will use the settings within the table script. Then it does many checks for DOF / PUP and will enable / disable them as desired or if they don't exist on the PC. I do a check for the existence of the "required" PuP-Pack and it's version. (I check for a version.txt file in the pup-pack folder, and the contents of that file) If it's not the correct pup-pack, then pup features are disabled. If pup is enabled and pupstream is enabled, then I do check for the existence of the windows specified in the pupstream settings.... and many more things.
Just run a Pinevent table in Debugger mode (F9) and you'll see some of the checks I do.
PinEvent code is not something I will provide support for on other tables, as it's hard enough to get people to understand the much simpler AIO table let alone everything I manage on a PinEvent table. Hell, I have to reteach myself each time I add it to a table if it's been a while.
No one should need to modify a PinEvent table to get it to run correctly! The only exception is if your PC refuses to find the PinEvent_V2_Setting.txt and gives that error on table startup (not a FP / table problem.. it's your PC or security, etc). If you get that error, then disable PinEvent in TABLE OPTIONS if you don't need those features, or enable PinEvent Custom Settings in the table script to bypass the check for that file completely, and use the table's settings.
If having issues with PinEvent tables... consult the PinEvent Guide, and The FAQ and Help Guide I include with my FP and BAM Essentials AIO.