All In One Example Table - FizX, FLEEP, Ball Rolling, PUP SSF, DOF - Easy to add!

I have been reading people’s responses to fizx and pinevent tables and it is clear this is the right path

It’s an entirely subjective ethereal consensus like just about everything else in life so what the heck, I am in !

I am looking forward to trying a real machine again to see how we are doing and I guess that is the “gold standard “

Even multiple versions of the same real machine can play different... depending on the wear of the solenoids, the wear of the rubber, the kind rubber used... the angles / position of the flippers... the slope of the table... the location its played... etc. :)
 
Even multiple versions of the same real machine can play different... depending on the wear of the solenoids, the wear of the rubber, the kind rubber used... the angles / position of the flippers... the slope of the table... the location its played... etc. :)
He he
I remember about 20 yrs ago modding a vp version of Captain Fantastic to play exactly the way I remembered it in that corner store that we zipped across Brandy Lake in my friends home made “Sea Flea” to play in the 70’s .

I had it playing EXACTLY like that rickety old table and I wept as I played it LOL .

I triumphantly shared it with the table author who thought it played like a dead horse …ya but it was my dead horse… how dare he !!!
 
Updated table file to version 1.1

- added latest FizX v2.0 fixes from JLou

Get the new update on the tutorial on the first page.
 

ALL in One Example table Tutorial: Add FizX, FLEEP, PUP SSF, DOF to any Future Pinball table! Easy!​


What was once a daunting task, has now been made easy! Add the latest FizX v2.0 physics, FLEEP sounds, Ball Rolling sounds, PUP SSF and DOF to any Future Pinball table quickly and easily using this new All In One Example table and tutorial!

This video is a non-stop, start to finish example of me showing how to use this All in One Example Table (and my posted Tutorial) to easily update a Future Pinball table to support all these new features. You don't even need to have PUP or DOF installed to do this, or to play the completed table! If you do have DOF and PUP, then DOF and PUP SSF will work automatically!




The video is broken into chapters, similar to the Tutorial on the first page of this topic! So you can go at your own pace, and easily pickup where you left off.

Adding the new code and essentials items is quick and easy to do to get a table up and running... its the table specific additions that take the most time afterward. I probably spend more time explaining things and showing how they work before and after than I do actually updating the table. :)

I also added this to the first post of this Tutorial.


****** Chapters ******

Intro - 0:00
Overview, Features, Requirements - 2:50
START - Download Example file - 14:33
Install 1K Physics Ball - 16:04
Install FP PUP SSF PuP-Pack - 18:84
Prepare your table - 20:02
Sci-fi Classic table - Everything is OLD! Needs to be updated! - 22:06
Preview - All In One Example Table - 25:18
Import FizX Models - 28:22
Import FLEEP and Ball Rolling Sounds - 30:15
Import Invisible Textures - 33:19
Change Table slope, and add Timer - 34:26
Create a HUD DMD for FizX Tweaker Tool - 36:03
Copy Example Table code to your table - 37:48
Copy FizX Tweaker Tool keys code - 41:43
Save table, start table, and do a quick check for any startup errors - 46:42
Update Flippers settings, and FizX settings for Profile and XML - 47:07
Quick test of Flippers, Ball Hit sounds, Ball Rolling sounds, and SSF - 53:07
Update Slingshots (add diverters, code and rubbers) - 56:54
Test Slingshots - 1:19:26
Update Bumpers - 1:21:53
Test Bumpers - 1:29:00
Add FizX Rubber Posts and Rubber Bands - 1:30:39
Update FizX Rubber Post and Rubber Band settings - 1:42:51
Quick first test of slingshot rubbers - 1:45:11
FizX Drop Targets overview - 1:46:25
Update settings for kickers, vuks, plunger, etc - 1:52:51
Quick test of table with all updates so far - 1:57:07
Ball Hit sounds and settings - 1:59:32
Ball Rolling sounds - 2:10:58
What should be working and not working at this point? - 2:18:35
PUP SSF compared to FP Sounds - 2:19:50
PinMechSound - How it works - Updating / Adding more events - 2:22:06
PinMechSound - Link commands to their table actions - 2:46:56
Start with Debugger to test all features - 3:14:45
Play Updated Sci-Fi table! WOW! What a Difference! - 3:20:41
Add DOFClose and PUPClose - 3:24:30
Update every FizX Profile's settings - 3:26:35
FizX Tweaker Tool - enable it and add missing font - 3:28:20
FizX Tweaker Tool - how it works - FizX settings - 3:30:50
FizX Profile Changer - 3:38:55
CLOSING - I"M TIRED! - 3:44:00
 
Last edited:
Whoooosh!! Monstrous!!!

How big work you made. Congratulation!
 
To everyone:


ALWAYS follow the "written" tutorial for the most up to date and correct information! Use the video as a visual guide to help you along!


IMPORTANT:
Do not add new changes to the main code that the Example Tables uses! Use it as it was intended following the written tutorial! This table and its code may not always have the latest WIP / beta code for FizX, etc. Trying to mix in different bits of code or updating a table in a different way may result in the All In One Example table's code not working correctly for your table! Just follow the tutorial, and it should work fine for you.

I will update the All In One Example Table and the Tutorial as needed in the future when significant changes / features come along.
 
(Added this - after adding all the new code to your table)

****** Possible Conflicts with duplicate code / variables / Dims, etc ******

- it's possible, that some of the code / variables / dims, etc from the All In One Example table may conflict with what your table uses
- names that FizX uses such as rubbers (RubberPost1, RubberBand1), drop targets (DT1), etc can't be changed in the ALL In On Table's code
- flippers, rubbers, drop targets, and slingshots will be using required names for FizX! We will cover what those are in the rest of the tutorial!
- it would be a good idea to Save your table file to a new name, and do a quick test to see if there are any conflicts
- DO NOT make changes to the new code from the All In One Example table! Makes changes to the rest of your table (if needed)
- any conflicts MUST be resolved before going any farther in this tutorial!
 
Last edited:
VERY IMPORTANT!

(added to the REQUIREMENTS and Preparing your Table)

A "normal" Future Pinball table is REQUIRED!

- we need a future pinball table with nothing specialized added to it (this will conflict with the new features!)
- remove any previous physics related code or timers. Remove any PHYSICS XML code (the green text code)
- if any special / custom flipper models are used, replace them with normal flipper models! (Zed physics)
- remove any code / timers / commands used for ball rolling sounds (smoke)
- if a table was updated for DOFLinx, remove all DOFLinx related code (we are now using direct DOF support)
- confirm your table is working COMPLETELY after removing all the above!
- DO NOT go farther with this tutorial until this is completed!
 
BIG UPDATE!

Table version: 1.2 (Jan 6 - 2023)

FizX: v2.00


CHANGELOG


1.2 (Jan 6 - 2023)

- updated to JLou's newest FizX v2.0 code
- added JLou's bug fix for ball falling into 2nd or 3rd set of flippers
- new FizX code no longer requires flipper Swing Angle to be specified in the FizX Flipper settings!
- FizX slingshots, drop targets, rubbers are now set in the FizX General Settings section (not in a FizX Profile)
- FizX XML_FPS is now set in its own section
- updated FizX Profiles to only change FizX Flipper settings
- there are no longer FizX Profiles used for different physics xml settings
- any settings needed for a different PHYSICS XML FPS is now set in the FizX FPS settings section


Anyone who used the AIO Example table 1.0 or 1.1, should use all the new code from 1.2! This bug fixes are essential!


FizX Profiles


The table's new code changes how FizX Profiles work! It makes them simpler and cleaner to use. Now only Flipper Settings are being changed!

No more worries about the wrong FizX Profile being used with a certain XML FPS settings! You can change to any FizX Profile at anytime now without needing to change other settings!


1672989409016.png



Swing Angle

The new FizX v2.0 code update removes the need for specifying the Swing Angle in FizX Flipper settings! FizX will automatically know what you are using based in the settings in the FP Editor!

1672989530526.png


Slingshots, Drop Targets, Rubbers

These are now in their own section, and no longer in a FizX Profile

1672989621641.png


FizX FPS Settings

If you have any FizX settings that need to be changed based on PHYSICS XML FPS settings, then you add those in this new section

1672989766028.png





The rest of the AIO Example code has been updated to reflect these changes! Now there are only two FizX Profiles to choose from, etc.



TUTORIAL

The written tutorial on the first page of this Topic has also been updated to reflect these changes, and has been reorganized a bit for more logical steps.

PLEASE everyone use the new 1.2 - AIO Example table and the updated written guide! Use the video guide as a reference and visual example, but any differences you see between the video or the written guide... means you follow the written guide... ALWAYS!



The 1.2 update for the AIO Example Table can be found on the download link on the Tutorial on the first page.


Enjoy!
 
Damned. I just updated 5 of my tables...
But, as it's easy to update, no problem.
 
Big Indian (new release with a custom vari target), Wizard, Sky Jump, Old Chicage, Grand Prix, Rack a Ball, Super Soccer in a first time...

Are you using Terry's all in one without adding PUP SSF or DOF?
 
--- OOOPPS WRONG TOPIC ---
 
Last edited:
Damned. I just updated 5 of my tables...
But, as it's easy to update, no problem.

Me too. :)

As you said... it's easy to copy and paste the new code (and use whatever FizX settings you were using). It was the whole idea of making an example like this..... to not have code for FizX, DOF, PUP SSF, Ball Rolling... everything, scattered all over (but still modular, and easy to follow each section of code).

This was an important update fix (and some easier to use changes), so its why I wanted it out there asap. I won't be updating this AIO Example table or tutorial for every small wip update or test. Just when its something really important to fix or get out there.
 
Are you using Terry's all in one without adding PUP SSF or DOF?

Nice thing is.... even if someone doesn't want to take the extra steps for PinMechSound commands (to link them to table events for flippers, bumpers, slings, kickers, etc)... FizX and PinMechSound will still make all ball hit and ball rolling work with SSF for everything else automatically for those who can use it.

I like to organize all PinMechSound events in one section. Then it's super easy to copy and paste to other tables. Most of the standard events will be the same for most tables (flippers, slings, bumpers, etc). Just change the names as needed for each PinMechSound command. Then just link them to the table events, which is pretty easy to do. It really is worth the extra effort, and its not hard to do, once you get it.




Oh, and if you are updating (using the AIO Example code) a table that has DOFLinx support... you "can" keep the DOFLinx code intact if you don't know how to remove it... but that means you MUST set DOF_Enabled = false ! This will disable any DOF related code on the AIO Example table, and allow DOFLinx commands to still work. You can't have both running at the same time! It's an easy workaround for this situation. Just make sure DOF_Enabled = false is not visible in any TABLE OPTIONS, etc as to not confuse anyone. Keep it in the DOF section instead.... and let others know this table has the original DOFLinx support it had instead, etc.
 
Last edited:

If you do have any questions about anything, please don't be shy. JLou knows better with how to best adjust the FizX settings... but I can help with anything to do with PinMechSound, or the other stuff :) My video is long, but you can watch just the PinMechSound portion and get a good idea of how to easily update any PinMechSound commands or add new ones, or where to link them, etc.
 
If you do have any questions about anything, please don't be shy. JLou knows better with how to best adjust the FizX settings... but I can help with anything to do with PinMechSound, or the other stuff :) My video is long, but you can watch just the PinMechSound portion and get a good idea of how to easily update any PinMechSound commands or add new ones, or where to link them, etc.
PinMechSound is easy to understand and implement. Concerning SSF and DOF, I just set the flag to False, so no problem too.
But thanks for your proposition.
 
PinMechSound is easy to understand and implement. Concerning SSF and DOF, I just set the flag to False, so no problem too.
But thanks for your proposition.

Nice. You don't need to set the DOF or SSF flag to false.... even if you don't have them installed / use them, or if anyone else who plays the table doesn't either. When they are left enabled, the code does a check to see if DOF or PUP are installed on the PC, and if they can't be detected, then those features are automatically disabled! This allows your extra work put in to be enjoyed automatically by all who do have DOF and PUP installed (no need for them to enable it). No worries about the table working for everyone if they are left enabled.
 
Nice. You don't need to set the DOF or SSF flag to false.... even if you don't have them installed / use them, or if anyone else who plays the table doesn't either. When they are left enabled, the code does a check to see if DOF or PUP are installed on the PC, and if they can't be detected, then those features are automatically disabled! This allows your extra work put in to be enjoyed automatically by all who do have DOF and PUP installed (no need for them to enable it). No worries about the table working for everyone if they are left enabled.

I presume there is no need to test it then?
 
I presume there is no need to test it then?

Correct. That was the whole idea behind this. So that "anyone" with any setup can use it on another table.

As long as you use PinMechSound correctly (instead of the normal playsound for mechanical related sounds) and you link them to their table events in the script (like I did on the example table and tutorial video)... or instead just can just place the PinMechSound commands directly in the table events in the script... then it will just work for everyone.

You won't need to test the SSF or DOF if you can't do so yourself. Though, testing PUP SSF is easy, as installing PUP is simple (and you can enable / disable pup in the script to test both PUP SSF and FP Sounds). PUP will work automatically (for SSF) for any speaker setup.
 
Thanks for the super guide and the tables and files Terry! And again thanks to Jlou for FizX!

Questions as I'm following the guide and trying to update POTC to FizX:

1- For FizX to work on posts must I use only the new models we imported following the guide and use a Diverter? Or can we still use as an example, a FP original metal peg with a rubber, and name the rubber RubberPost10? I'm guessing the Diverter is the key...

2- For Rubberbands, I'm confused since the AIO example table has rubbers named Rubber5, Rubber6, Rubber7. So it's ok to keep those rubbers in place outside of the slingshots? And I guess this code here would not affect them then? Trying to understand why I need to replace posts with diverters or add transparent diverters over existing posts when I can leave other rubbers...

' =============================== Rubbers ==============================

ScatterRubber = 20 ' Degrees of randomize PF rubber element bounce

ThresholdSoft = 1000
BouncingCoeffSoft = 0.95 ' 1 - Soft Rubber
BouncingFallOffSoft = 0.2
elasticSoftFriction = 0.8

ThresholdMidSoft = 1000
BouncingCoeffMidSoft = 0.9 ' 2 - Medium-Soft Rubber
BouncingFallOffMidSoft = 0.3
elasticMidSoftFriction = 0.8

ThresholdMed = 1000
BouncingCoeffMed = 0.9 ' 3 - Medium Rubber
BouncingFallOffMed = 0.4
elasticMedFriction = 0.8

ThresholdMidhard = 1000
BouncingCoeffMidHard = 0.9 ' 4 - Medium-Hard Rubber
BouncingFallOffMidHard = 0.5
elasticMidHardFriction = 0.8

ThresholdHard = 1000
BouncingCoeffHard = 0.9 ' 5 - Hard Rubber
BouncingFallOffHard = 0.6
elasticHardFriction = 0.8

ThresholdExtrhard = 1000
BouncingCoeffExtrHard = 0.9 ' 6 - Extra-Hard Rubber
BouncingFallOffExtrHard = 0.7
elasticExtrHardFriction = 0.8

' ------------------ Rubber settings for Table items ------------------

' FizX Rubber Posts in the table editor must be named: RubberPost1, RubberPost2, RubberPost3, etc
' FizX Rubber Bands in the table editor must be named: RubberBand1, RubberBand2, RubberBand3, etc

RubberBandType(1) = 6 ' Description : DropTarget Bank Rubber Band

RubberPostType(2) = 1 ' Description : Top Post Left Slinghsot
RubberPostType(3) = 1 ' Description : Mid Post Left Slingshot
RubberPostType(4) = 1 ' Description : Lower Post Left Slingshot "Post pass"
RubberBandType(5) = 1 ' Description : Left Band Left Slingshot
RubberBandType(6) = 1 ' Description : Lower Band Left Slingshot

RubberPostType(7) = 1 ' Description : Top Post Right Slinghsot
RubberPostType(8) = 1 ' Description : Mid Post Right Slingshot
RubberPostType(9) = 1 ' Description : Lower Post Right Slingshot "Post pass"
RubberBandType(10) = 1 ' Description : Right Band Right Slingshot
RubberBandType(11) = 1 ' Description : Lower Band Right Slingshot

RubberPostType(12) = 4 ' Description : Long Post Ramp Entrance
RubberPostType(13) = 4 ' Description : Long Post Ramp Entrance

RubberPostType(14) = 1 ' Description : Long Post Ramp Entrance
RubberPostType(15) = 1 ' Description : Long Post Ramp Entrance

RubberBandType(50) = 1 ' Description : Test
 
Thanks for the super guide and the tables and files Terry! And again thanks to Jlou for FizX!

Questions as I'm following the guide and trying to update POTC to FizX:

1- For FizX to work on posts must I use only the new models we imported following the guide and use a Diverter? Or can we still use as an example, a FP original metal peg with a rubber, and name the rubber RubberPost10? I'm guessing the Diverter is the key...

2- For Rubberbands, I'm confused since the AIO example table has rubbers named Rubber5, Rubber6, Rubber7. So it's ok to keep those rubbers in place outside of the slingshots? And I guess this code here would not affect them then? Trying to understand why I need to replace posts with diverters or add transparent diverters over existing posts when I can leave other rubbers...

' =============================== Rubbers ==============================

ScatterRubber = 20 ' Degrees of randomize PF rubber element bounce

ThresholdSoft = 1000
BouncingCoeffSoft = 0.95 ' 1 - Soft Rubber
BouncingFallOffSoft = 0.2
elasticSoftFriction = 0.8

ThresholdMidSoft = 1000
BouncingCoeffMidSoft = 0.9 ' 2 - Medium-Soft Rubber
BouncingFallOffMidSoft = 0.3
elasticMidSoftFriction = 0.8

ThresholdMed = 1000
BouncingCoeffMed = 0.9 ' 3 - Medium Rubber
BouncingFallOffMed = 0.4
elasticMedFriction = 0.8

ThresholdMidhard = 1000
BouncingCoeffMidHard = 0.9 ' 4 - Medium-Hard Rubber
BouncingFallOffMidHard = 0.5
elasticMidHardFriction = 0.8

ThresholdHard = 1000
BouncingCoeffHard = 0.9 ' 5 - Hard Rubber
BouncingFallOffHard = 0.6
elasticHardFriction = 0.8

ThresholdExtrhard = 1000
BouncingCoeffExtrHard = 0.9 ' 6 - Extra-Hard Rubber
BouncingFallOffExtrHard = 0.7
elasticExtrHardFriction = 0.8

' ------------------ Rubber settings for Table items ------------------

' FizX Rubber Posts in the table editor must be named: RubberPost1, RubberPost2, RubberPost3, etc
' FizX Rubber Bands in the table editor must be named: RubberBand1, RubberBand2, RubberBand3, etc

RubberBandType(1) = 6 ' Description : DropTarget Bank Rubber Band

RubberPostType(2) = 1 ' Description : Top Post Left Slinghsot
RubberPostType(3) = 1 ' Description : Mid Post Left Slingshot
RubberPostType(4) = 1 ' Description : Lower Post Left Slingshot "Post pass"
RubberBandType(5) = 1 ' Description : Left Band Left Slingshot
RubberBandType(6) = 1 ' Description : Lower Band Left Slingshot

RubberPostType(7) = 1 ' Description : Top Post Right Slinghsot
RubberPostType(8) = 1 ' Description : Mid Post Right Slingshot
RubberPostType(9) = 1 ' Description : Lower Post Right Slingshot "Post pass"
RubberBandType(10) = 1 ' Description : Right Band Right Slingshot
RubberBandType(11) = 1 ' Description : Lower Band Right Slingshot

RubberPostType(12) = 4 ' Description : Long Post Ramp Entrance
RubberPostType(13) = 4 ' Description : Long Post Ramp Entrance

RubberPostType(14) = 1 ' Description : Long Post Ramp Entrance
RubberPostType(15) = 1 ' Description : Long Post Ramp Entrance

RubberBandType(50) = 1 ' Description : Test

Example table is not a "complete" table compared to any of my Pinevent V2 tables. FizX v2.0 changed the naming convention compared to older versions (which is why I am updating them all to FizX v2.0)

When following the tutorial (and if you watch the video).... look at how the Sling shot rubbers are done. Or look at any of my Pinevent V2 tables that I just uploaded (that now have FizX v2.0) for a more "complete example".

The "rubber" materials are completely changed in the xml to be different to allow for FizX to have more control over them (stop them from working mostly to allow other FizX options to be used). If you don't use new FizX rubbers then the normal FP rubbers (when using FizX v2.0 code).... won't do much,

You are adding "FizX diverter rubber models", because that is what FizX v2.0 is using to allow more control over the rubber elements that will now collide with the ball. VPX nFozzy needs to do a similar idea.

So simply put... you are covering the rubber bands with both FizX rubber posts and FizX rubber bands (like on the Slingshot).... and for all other actual rubber posts... you add an invisible FizX rubber (diverter) thats a little bit bigger.... or you can replace it with a new FizX "rubber post" model if it matches up close enough.... or make your own Rubber Post model with similar properties using the FP Model Editor.

The proper "naming" in the FP Editor of the FizX invisible Rubber Post / Rubber Band diverter models, and any FizX Rubber Post visible models is required.... as is the related names in the "Rubber settings for Table items" section so they can match and allow FizX to do its thing.
 
Last edited:
Example table is not a "complete" table compared to any of my Pinevent V2 tables. FizX v2.0 changed the naming convention compared to older versions (which is why I am updating them all to FizX v2.0)

When following the tutorial (and if you watch the video).... look at how the Sling shot rubbers are done. Or look at any of my Pinevent V2 tables that I just uploaded (that now have FizX v2.0) for a more "complete example".

The "rubber" materials are completely changed in the xml to be different to allow for FizX to have more control over them (stop them from working mostly to allow other FizX options to be used). If you don't use new FizX rubbers then the normal FP rubbers (when using FizX v2.0 code).... won't do much,

You are adding "FizX diverter rubber models", because that is what FizX v2.0 is using to allow more control over the rubber elements that will now collide with the ball. VPX nFozzy needs to do a similar idea.

So simply put... you are covering the rubber bands with both FizX rubber posts and FizX rubber bands (like on the Slingshot).... and for all other actual rubber posts... you add an invisible FizX rubber (diverter) thats a little bit bigger.... or you can replace it with a new FizX "rubber post" model if it matches up close enough.... or make your own with similar properties using the FP Model Editor.

The proper "naming" in the FP Editor of the FizX invisible Rubber Post / Rubber Band diverter models, and any FizX Rubber Post visible models is required.... as is the related names in the "Rubber settings for Table items" section so they can match and allow FizX to do its thing.
Excellent so the slingshots is the example to follow! Awesome thanks again Terry!
 
General chit-chat
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
      Chat Bot Mibs Chat Bot Mibs: dizzeee has left the room.
      Back
      Top