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

Excellent so the slingshots is the example to follow! Awesome thanks again Terry!

I would also say take a look at my PinEvent V2 tables with FizX v2.0 I just released. I personally didnt keep the FizX rubber band walls on the slingshot bottom (but still have the posts)... but the rest of them will give you an idea. Just note... the tables with FizX BEFORE v2.0 use a completely different naming convention for rubbers..... so that's why its important to stick to the AIO example table's code and naming as it uses what Fiz v2.0 and on will use.
 
@Runner , only Rubber Model i made work with Dynamic Physics ( surface and wall too ). For a simple reason, it's the only element on FP that could be find automaticaly by their name.
 
@Runner , only Rubber Model i made work with Dynamic Physics ( surface and wall too ). For a simple reason, it's the only element on FP that could be find automaticaly by their name.
Hey JLou and Terry, I'm noticing that the default spinning disk in the FP editor doesn't grab and redirect the ball when it spins with FizX. The ball goes straight down. Is there something I need to do there? Does that require a different model? I can share the table in question if that's easier.

Edit: The spinning disk is on an elevated platform if that makes a difference.
 
spindisk is probably the one object that was not tested (not by me at least).

Start changing <spindisk mass="10000.0" by <spindisk mass="99999.0" in the physics XML
 
spindisk is probably the one object that was not tested (not by me at least).

Start changing <spindisk mass="10000.0" by <spindisk mass="99999.0" in the physics XML
It's already at setup like that from Terry's AIO example table
<spindisk mass="99999999.0" angularDamp="0.1" linearDamp="0"></spindisk>
 
damn that's one hell of a number! Can you try just 99999? I'm unsure how long a number can be and if it is capped and/or can be too much for its own good.

I don't think this is the problem but...
You can also try to increase angularDamp. try like 10 or even higher just for testing purposes.
 
damn that's one hell of a number! Can you try just 99999? I'm unsure how long a number can be and if it is capped and/or can be too much for its own good.

I don't think this is the problem but...
You can also try to increase angularDamp. try like 10 or even higher just for testing purposes.
-Tried with just 99999 and that didn't change the ball being grabbed.
-Tried setting angularDamp to 10 and the spinnerdisk was barely rotating and again ball was not grabbed.
 
-Tried with just 99999 and that didn't change the ball being grabbed.
-Tried setting angularDamp to 10 and the spinnerdisk was barely rotating and again ball was not grabbed.

I mentioned in the start that this tutorial won't have the finer details about how to adjust everything for FizX, as some things haven't been used yet, and that part was going to come from JLou eventually, as I'm not the guy to best know how to adjust everything correctly. I'll link to a post like that when it comes. The example table will get adjusted as time goes on, the more and more others start using it and show what is needed, etc.

Some items like the spinning disk haven't really been used by anyone with FizX yet. Some table items you will need to adjust in the xml as needed for your table.

I actually am using the spinning disk in my unreleased Sonic update. It's used for the new Magna-Spinner toy. I've never used one before so I don't know how it's "supposed" to affect the ball normally. The way I use it is... once the spinning disk is active and spinning.... when the ball hits it, then a magnet traps the ball. So its not being used in the traditional sense to throw the ball around like in Fireball / Whirlwind, etc.

This is the settings I currently use with Sonic.

' <spindisk mass="10000.0" angularDamp="0.33" linearDamp="0.25"></spindisk>

Not sure if this will get it working the way you want.... but the bottom line is... with FizX, some things like this you will need to adjust both the xml and the item in the FP Editor until it works the way you want. It may even require editing the model itself with the FP Model Editor to make adjustments to the collision areas and material properties, etc.

As an example.... for BAM Magnets... I had to increase the values I needed for the magnet to a crazy large value (compared to before adding FizX) to get it working correctly (after adding FizX).
 
Tried your Sonic values and they also didn't affect the ball. As for your workaround, it wouldn't work for this table since the ball needs to be thrown around to hit targets that surrounds spindisk. Seems like the ball is too heavy to be moved by the default spindisk even being at full power in the FP editor. It's the Pirates of the Caribbean table.

I'll check with JLou, thanks again for your help Terry!
 
Tried your Sonic values and they also didn't affect the ball. As for your workaround, it wouldn't work for this table since the ball needs to be thrown around to hit targets that surrounds spindisk. Seems like the ball is too heavy to be moved by the default spindisk even being at full power in the FP editor. It's the Pirates of the Caribbean table.

I'll check with JLou, thanks again for your help Terry!

I wasn't using a "workaround" in Sonic.... it was more meant to be a magnet that traps the ball than a traditional spinning disk. The spinning disk is more a visual than anything. Try very high and very low values. Maybe JLou will know better how to adjust it, since he added the spinning disk to the example table.
 
Also.... when making physics changes... sometimes you need to save the table, completely close FP, then reload the table to see it working with the new changes correctly.
 
I would go further and say, just do it. That "sometimes" with FP can mean chasing own tail so better just close FP and open it again.
I actually have a .bat with taskkill at the end so I make sure it gets killed (as i've fp instances still running after just closing fp before)
 
I actually have a .bat with taskkill at the end so I make sure it gets killed (as i've fp instances still running after just closing fp before)

How did you code that?
 
@Popotte

I took a look at your new Wizard! update using the AIO Example code. Great stuff.

There are some things that need to be changed... and some cause the table to give an error if someone is using DOF / PUP. Easy fixes.

I'll explain everything below.



*** FizX Settings changes ***

I noticed you rearranged where some of the FizX Settings are placed in respect to General Settings and Profiles. There's nothing wrong with wanting to do this, but you need to change the order in how the FizX settings are "applied" if you do this.

Currently the General Settings on the 1.2 AIO example table are applied last. With your rearranged FizX settings, this means that the Profile settings will not be used because the General Settings come afterward.

This is how the settings are applied in order on the AIO Example table.

1673317825100.png


With the changes you made, you need to change it to this for the Profiles to work.

1673317903532.png


Assuming you are using "all" the new code from the 1.2 AIO Example table (important), Swing Angle is no longer needed to be specified at all. The new code with check what the table is using for Swing Angle, and FizX make changes automatically. You can remove the Swing Angle settings.

1673317614903.png


*** Rubbers ***

FizX code changes how the normal FP rubbers behave (to allow for more control / changes when using FizX replacements). That means that the FP rubbers don't really do much without adding new FizX rubbers.

You need to add FizX Diverter models for all the RubberPosts and FizX rubber "walls" for the RubberBands on the rest of your table, (only needed where the ball will actually collide). These will be invisible and just a little bit larger than your table's visible rubbers. (Same as how the Slingshots are done, and named correctly for FizX). This is your table with nothing added.


1673318876486.png


After the FizX rubber items are all added (and named correctly), then update this section for all your new RubberPost and RubberBands, and remove any that are not used in the table.

1673318459934.png


Here is an example of how I did some of Jaws BBE that I just uploaded.

1673319012112.png

...and the rubber settings to match everything added to that table.

1673319239792.png


Here is how Star Wars DSA GE (that I'm currently updating) looks when using a FizX rubber ring (diverter model) in the upper rollovers section. These can be made visible as they are to replace what you are using on the table (remove the old rubber completely). Just be sure to use a surface for height reference. Name them the same as all other FizX rubber items, and update the FizX settings ion the table script.

1673319390900.png



*** PUPClose and DOFCLose ***

These two commands should be added here to be sure that DOF and PUP close out correctly (hopefully) when you exit a table.

1673317743175.png




*** PinMechSound commands - need correcting for fp_item *** (IMPORTANT!)

- with PinMechSound, you MUST be sure that fp_item is used with a table item that has a NAME / X Position / Y Position in the FP Editor!
- using a table item without all of those gives an error to anyone who has PUP installed and enabled (you won't see the error if PUP is disable / not installed)
- this is because the command is missing the information about the fp_item (it doesn't exist)

Here are the two commands that give an error on your table once a Slingshot is hit (error only shows if you have PUP installed and enabled)

1673317155164.png

You can see the LSling and RSling has no "position" data for x and y (which is needed for fp_item)

1673317179248.png


Instead, use another item nearby that has a Name, X position and Y position info

1673317459349.png


Update the PinMechSound command with the new fp_item that will work correctly and not give an error

1673317282382.png


Other than that, great job on how you used PinMechSound. I can't test at my cabinet sadly.

It also sounds great in both FP Sounds and SSF! :)


**** Plunger ***

The plunger struggles to shoot the ball correctly sometimes when using digital plunger key, etc. Try looking at my Pinevent V2 of Jaws BBE with FizX v2.0 and see how that works. You may need to adjust both setting in the FP Editor and the PHYSICS XML section to make it work better.


=============================================================


As for how it plays... it seems pretty good to me though a bit fast for an EM? (Maybe reduce the slope more to 5.5). I'm not much of an EM guy, so I'm not the best reference for how it's "supposed" to play. :) I do notice then when the ball falls down the right side lane and curves to the left, that it seems to drain easily. Not sure of that's how it's supposed to work.

With the new rubbers added, the fixes done, and fine tuning... it should be good. As long as your happy with how it plays. Some may say the flippers should be different somehow for an EM, but again, I'm not the best one to ask. @JLou5641 or @AnonTet may be a better reference for that.
 
Last edited:
@Popotte

**** Plunger ***

The plunger struggles to shoot the ball correctly sometimes when using digital plunger key, etc. Try looking at my Pinevent V2 of Jaws BBE with FizX v2.0 and see how that works. You may need to adjust both setting in the FP Editor and the PHYSICS XML section to make it work better.

On my PC, the plunger doesn't have enough strength to allow the ball to leave the launch lane.
 
@TerryRed
I'm not sure if the AIO example refers at some point that the C&P should follow an order so forgive me if i'm being redundant.
Just want to make sure this is written somewhere for anyone new to FizX. This was important before (still remember the headache around this issue :D ) and still is apparently. As they say, better safe than sorry.
 
@TerryRed
I'm not sure if the AIO example refers at some point that the C&P should follow an order so forgive me if i'm being redundant.
Just want to make sure this is written somewhere for anyone new to FizX. This was important before (still remember the headache around this issue :D ) and still is apparently. As they say, better safe than sorry.

The "big" tutorial on the first page has a step by step in order. The video demo uses the tutorial to show how it's done as well. The video will be a bit different as the tutorial and table were already updated after the video was made (videos are always out of date), but it's still the same (just some things were arranged a bit more logical after the video was made).

It's one big chunk of code for "everything". Then the small bits for the slings, etc. It's insanely easier to not only add FizX, but SSF / DOF / Ball Rolling now.

The finer details of FizX settings, etc are being left to JLou to post on his own at some point, and I'll link to that, etc. This tutorial and table are a constant wip.
 
Last edited:
How did you code that?

Like so (mind the paths to reflect yours)
@echo off


cd "C:\Emus\Future Pinball\BAM\"

echo.
echo ---------------------------------------------------------------
echo This windows should close automatically AFTER you exit the game
echo ---------------------------------------------------------------
echo.

rem FPLoader.exe /STAYINRAM /open %1 /PLAY /exit
FPLoader.exe

echo Make sure Future Pinball.exe is killed
taskkill /f /im "Future Pinball.exe"

I used this to double click .fpt file and run the table directly but that command is commented (rem) and like this it just calls FP and you go from there.
The bold part is what kills all references found (if any) to "future pinball.exe"
 
Like so (mind the paths to reflect yours)


I used this to double click .fpt file and run the table directly but that command is commented (rem) and like this it just calls FP and you go from there.
The bold part is what kills all references found (if any) to "future pinball.exe"

Like so (mind the paths to reflect yours)


I used this to double click .fpt file and run the table directly but that command is commented (rem) and like this it just calls FP and you go from there.
The bold part is what kills all references found (if any) to "future pinball.exe"

I use the method at the link to double-click the .fpt file and run the table:


How do you set it up? Does it automatically run?
 
Updated AIO Example Table. New update is at the same link in the tutorial on the first post of this topic

1.3 update:

- rearranged the order of how FizX settings are applied. the General Settings are now applied first
- adding missing rubber post and rubber bands in the upper rubbers around the bumpers and ramp
 
Something to keep in mind about PUP SSF....

When someone plays a table with this code.... if they have PUP installed, and they don't have the FP_PUP_SSF pup-pack installed... they will NOT hear any mechanical sounds or ball rolling sounds! PUP will look for the FP_PUP_SSF pup-pack, and if it doesn't find it, then it has no sounds to play.

The Debugger will show that you have PUP SSF enabled, which means you have Pinup Player installed (and you have PUP SSF enabled in your script). If you didn't have PUP installed...then PUP SSF would have been disabled automatically, and it would have shown that with the debugger.

You won't get an error telling you the PuP-Pack is not installed or anything like that. (I kept that code out, as it can.... complicate things).

Keep in mind... PUP sounds are normally much lower than FP game and music sounds.... so if you are using PUP SSF, you may need to reduce the FP game sounds (HOME/END, PAGEUP/PAGEDOWN) so you can hear the PUP SSF / Rolling sounds to match volume levels. This will vary depending on the player's sound system setup.

If you have PUP installed and want to hear and test the "FP Mechanical Sounds" that are part of the table and played like all other FP sounds.... then you need to set PUP_SSF_Enabled = false in the table script. This will forcefully disable PUP SSF and use FP Sounds for mechanical sounds and ball rolling. (this is only needed if have PUP installed)

Anyone who uses this AIO Example table code, be sure to include the FP_PUP_SSF pup-pack with your table, and include with your table description / install instructions: "anyone with Pinup Player (PUP) installed, copy the FP_PUP_SSF pup-pack to your PUPVideos folder to use PUP SFF and make sure PUP_SSF_Enabled = true is set in the table script"

If you don't want to include the FP_PUP_SSF pup-pack with your table (or don't want to deal with anything related to PUP SSF).... then be sure to have PUP_SSF_Enabled = false set in your table script as the default.
 
@Popotte @Runner @Zobou @JLou5641 @GeorgeH @Gimli @AnonTet

1.4 - AIO Example table update:

- updated FizX physics code with JLou's fix to change how ball ID's are handled. This is needed to not interfere with any table that uses Bam Custom Balls which may use the same ID / code as FizX

The update is available on the first post of this tutorial topic


PUP SSF and the FP_PUP_SSF pup-pack

- if the player has PUP installed, but does not have the FP_PUP_SSF pup-pack installed, then if PUP_SSF_Enabled = true, the player will have no mechanical / ball rolling sounds, as PUP won't be able to load any sounds from the FP_PUP_SSF PuP-Pack
- I recommend you include the FP_PUP_SSF pup-pack folder with your tables that use this AIO Example code. Make mention in your download post about copying FP_PUP_SSF to the PUPVideos folder for anyone who has PUP installed
- if you do not want to include the FP_PUP_SSF pup-pack with your table, or don't want to support PUP features on your table... then be sure you have PUP_SSF_Enabled = false set in your table script
 
@Popotte @Runner @Zobou @JLou5641 @GeorgeH @Gimli @AnonTet @LtJazz

1.5 - AIO Example table update:

- FizX updates. From JLou:

"It solve the issue that could happen when ball is to fast and it a rubber, FizX didn't have enough frame to calculate new bouncing value, and make ball bouncing like crazy. I just extract bouncing formula from Generic_hit, and there are called now from her own sub, in the Generic_Prehit. FizXBallHitSpeed ( which is the variable that take lot of cycles ) is still set in Generic_hit. So it called only 1 time on hit, that mean this update don't have an impact on performance."

- TerryRed: I limited ball rolling sounds tracking to one ball / one channel. The Ball Rolling sounds code uses ExtInt3 for tracking up to 6 balls. ExtInt3 however is now also used for FizX (to prevent conflicts with BAM Custom Balls that use ExtInt1 and ExtInt2)... so we can't use both at the same time. This is a temporary fix until a better solution comes along. This changes how many ball rolling sounds are played at one time for PUP SSF only. FP ball rolling sounds never played more than one sound / ball at a time (using only one playmusic channel). It may also be a bit better for cpu usage.

The update is available on the first post of this tutorial topic.
 
Last edited:
I don't have PUP Streaming installed. When I play the unchanged template for version 1.5, I get a meditation error that says that "PUP_Stream_enabled" is not defined. According to the directions, PUP Streaming is not required to be installed.

Should I remark out the line in the script that says "PUP_Stream_enabled = false" or add a dim for "PUP_Stream_enabled"?
 
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