• Google Translate to French or Other Languages Click on the link and a new tab will open with this page translated into French.
    Click on the "To:" pull down option to select a different language. Users will not be logged in on the new Google tab.

Fast Tracking my BAM/FP comprehension


Inserted Coin
1. Who's the local goto guy for General BAM here?
2. Who's the person who understand best coding with BAM?

3. All video demo of BAM motion (which are amazing) lack of realistic motion since none of them seem to use 'easing'.
I can create and export animation motion path as arrays coordinates like animation keyframes (played back with a simple timer - see shootanza, tuthenKham). So, Does the MPO (Mini Playfield Object) position/rotation be scripted following an Array of coordinates with a timer?

4. Can the Hologram be fed videos (mp4) instead of just images sequences now?

5. In the start Trek demo there are explosions. Could an Hologram object always face the camera to ensure that things like explosion are seen the way they are supposed to (flat 2d for the viewer - not skewed). I am possibly not clear in my explanation so see this explanation about the same thing in after effects (you don't need to know the software to understand the concept, don't worry)

6. In the sea of tables archives, which are the best for compliance with BAM specification (physic, renderer, etc...)

If more question, I'll add them here at the top. Thx
Last edited:


Pinball Master
There is a way to do easing but no one has ever tried to use that feature.
But BAM will generate the code for you.

Have you ever tried the "miniplayfield tool" ?


Inserted Coin
I don't understand any of what BAM is or does but fixing the right angle for my cab, make better lighting and give it a PFX3 kind of motion with Kicks
(just found out by mistake how to turn on flipper shadow!)


Pinball Master
Ok good
I have an old video tutorial on Miniplayfield usage and actually refer to you in the preface :)

It is much easier than at that time in 2 regards:
1. There used to be a large code block for BAM to initiate this mode ( no longer needed)
2. To quickly define the boundaries of the yellow grab box numbers hold down the Control + Arrow keys
3. Also this is described in the video, but once you define the boundaries of your yellow source box and set parameters of green target box
you can test animations by choosing "set start position". then move target box to desired location, rotation and press Play for instant
view of your animation.
4. Also as per a lot of BAM functions if you place cursor over desired item in menu and press Control+C , the code will be generated for you and copied to you clipboard for pasting into script.
5. You will find if you load FP in window mode and have a text editor also open (I just use "notePad") you can paste
sequential code events to Notepad without having to close BAM or FP.

6. Once you grab your objects and set the target, there is an easing option , select it and then you have options. Press Control+C to copy your code
Last edited:


Pinball Master
Here is my tutorial, but watch the enclosed video



Inserted Coin
As I understand it, MNO is simply a "make a group/container from some parts and keep their properties".
Is it solely working on proximity or when one is define you just can had "parts" in an array in code when you want to add/remove some stuff?


Inserted Coin
I will also need information about what you guys call PuP (!?) I saw Terry's video but cannot understand how to use it in the context of "DarkQuest" for example. Is there any template somewhere about all theses feature separately? (.fpt)


Pinball Master
In terms of an array I suppose you can have an array of 48 grab boxes each containing one or more object


Pinball Master
OK...so I can pipe in on what I used in my recent videos.


PUP = Pinup Player. This is a separate program that can be triggered / controlled by FP and VP via table script code. PuP uses vlc media player to play its' media, and PUPDMD (still part of PUP) uses standard Windows fonts to display text. It can display one window or many and control the media on all of them. There are many features that can be used... but if you just want to control and "play videos" then that can be fairly simple. These pup displays can be positioned anywhere you want.

PUP is not "part" of BAM or FP at all. It displays its windows separately and simply reacts to what other programs tell it to do.

PuP-Pack is a simpler function for pup (instead of using full detailed pup commands in script) that allows you to do all the controlling and managing of everything for the table's media from the PuP-Pack Editor GUI. You will just add a simple pup trigger command in FP that tells the pup-pack what "pup event" to trigger.

BAM's new COM Extensions is what allowed for PUP to be used directly from FP.

PUP was initially designed for multi-screen cabinets...but it can be used for desktop users as well if setup correctly.

That's where the new BAM PUP plug-in comes in. This is very new stuff... and I'm the only one using any of this right now.

BAM: PUP Plug-in

With the very new PUP plug-in, you can "stream" any window from any program into FP as any texture. Despite the "PUP" name... you can use it to display any window.

Important thing to understand... the window that you stream from MUST be displayed in "Windows" on some kind of monitor / dummy plug monitor / spare input of your monitor (connected to the same video card... not on-board,etc) and it can't be obscured or hidden! It has to be "visible" to Windows to be able to be streamed.

The original intent was for this to allow PUP to work in VR... but I expanded that for my PinEvent mods so that it will work nicely for any setup (cabinet, VR, desktop) as long as the PUP displays are correctly visible as noted above.

You can display a video on a hologram...the playfield texture...overlays...objects...toys...anything that a texture is being used on.

Current limitations:

The big limitation comes from using only one monitor to stream from. If you are using more than one stream per monitor...then that cuts the fps down a lot. So trying to stream 3 small video windows displayed on ONE monitor will give choppy fps in ALL the streams...whereas streaming the same 3 videos displayed on 3 different monitors in fullsize won't drop fps at all.

I also find the plug-in can't stream "from" windows displayed on monitors in portrait orientation for some reason.


Gimli is the man for BAM features...as he has good examples...and has some nice posts explaining what they do,etc.

BAM features are MANY... but a general simple list of some are here

  • allows for a new Better Arcade Mode (for cabinet views)
  • head tracking features using Kinect, PS3 Eye and more
  • plugins capability
  • stereoscopic 3D
  • adds a New Renderer that renders lighting on a per-pixel basis (much better lighting when used correctly)
  • option to hide HUD Overlays
  • option to hide the FP Logo Watermark
  • numerous tools and features that table authors can use
  • numerous FP bug fixes
  • Ball Shadows and Flipper Shadows for all tables
  • Ambient Occlusion
  • Post Processing effects
  • new High Score Display
  • COM Extensions
  • pup plug-in
  • VR
Some features can be used in the BAM menu and in script. Others only work in script.
  • new dynamic "scriptable" physics that allows for “new” updated tables to play MUCH better with the flippers
  • control over all lighting and post processing in table script
  • all lights/bulbs/flashers can have their colour, glow, brightness controlled in script
  • lights can be detached from their models and positioned anywhere via script (hidden nano flashers, etc)
  • mini playfields
  • real magnets
  • custom balls and rendering settings per table
  • bump / normal mapping
  • shadow maps that can be used and controlled by any flasher or bulb (BAM generates them... totally adjustable)
  • texture swapping on any object / surface (no need for surface swaps for dark textures,etc)

There are way more features than that... but that gives you an idea.

RetroFlair BAM Edition (PinEvent) uses a bunch of new BAM features...some are:

- RGB lighting
- adjusted global lighting and post processing
- shadowmaps
- GI with hardware lights (flashers)
- inserts brightness adjusts with GI lighting on / off
- detached flashers (hidden nano flashers that display their light elsewhere)
- texture swaps on many surfaces (pacman ghosts, marquee sign, outrun cars, etc)
- mini playfield tool (pacman ghosts, outrun cars,etc)
- custom balls and textures
- bump / normal maps on outrun roads

Last edited:


Inserted Coin
Thnx a lot both of you. I happen to download a couple of table with the mention DOFLINK causing an error on load. I saw a post (from Terry I think - sorry been through a lot of them) to find that this file was in a package on VPForums. I downloaded the zip to find out that it was full of other files with the mention "Put in fp script folder". first There is no such thing, so should I create it and put all the files there?

Also, I have set my first table with BAM to my liking (took about 20 minutes)...just to find out that the process was for this file only and that I have to do it for EACH tables...wut!?

Please tell me there is another way!


Flippered Out
Staff member
Site Supporters
If you don't want to install DOFLinx, you can follow my directions in the posting of a table in the link below. I have noticed however that most DOFLinx tables usually just update an existing table and usually don't add anything other than DOFLinx. So there is usually another version of the table that plays the same as the DOFLinx version (except the following one):

Last edited:


Inserted Coin
thx George. Any of you know if the memory leak for large images and big images sequences is fixed.
Most of my animations where created at the time at 8 fps which. Is there a BAM enhancement that way?

Same question for 3d models and polygon number?
Last edited:


Pinball Master

BAM menu settings and CFG files

As for messing with BAM's Lighting and Post Processing in BAM menu....yes you can make that work for all tables. The easiest way to do that is get the look you want... then in BAM chose "Save as Default" (which savesthose settings to BAM\default.cfg).

From this point on you can use those settings for any table at any time by choosing "Reset to Default".

If you want all tables to use those settings without you needing to mess with any menus for other tables....then delete the tables's BAM cfg files in BAM\CFG. When a table loads the first time it will use the default.cfg file's settings automatically and create a BAM\CFG file for the table based on that.

However... keep in mind, that you are only mostly changing the main "global light" from the BAM menu. The one big limitation FP has is that light inserts / image lights are not self luminous and are affected by the global lighting. :( So if you try to reduce the main global lighting to get a more realistic look, then the inserts and image lights will also be dim.

BUT.... BAM now allows you to change almost every aspect of all lights from table script! This is a big deal and something I wanted for a long time! This allows you to reduce the global lighting and change post processing to get a more realistic look... but then you can adjust all the playfield lights / flashers / images lights, etc to match your desired global lighting so they will be lit up correctly!


Old tables verses new tables using BAM features

Here's an example of an older table NOT using any BAM features. It's the older Jaws Ultimate.

The BAM "Lights" settings in this pic are actually what we like to use on NEW updated tables using BAM features and lighting,etc.

Jaws (Ultimate Edition) (v1.05) (p2.7).png

As you can see.... on an old table it looks horrible. The light inserts are very dim... the playfield is using the older method of using another playfield surface with a "dark texture" (which means no reflections). This is with no other lighting turned on.

Here is the same table with the same BAM settings with the game started and all lights are on. Same problem. Everything is dim... you can't see anything...it looks terrible.

Jaws (Ultimate Edition) (v1.05) (p2.7)2.png

New table using BAM features

Here's the new Jaws Ultimate Pro - PinEvent (with a few changes from me on top of SLAM's many changes and updates).

This is using the same BAM lighting as above that we tend to like to use today. It's almost the same as Dark Night preset with some adjustments, and I also adjust the Post Processing.

This is with no other lights on. As you can see the light inserts are now very bright and visible.

Jaws ULTIMATE Pro 1.08 (PinEvent 1.2) Final.png

Now here is the table with the GI and other lights on. Still using the same BAM lighting set in the pic. When combined with other settings and hardware lights (flashers) for GI you can see the table looks stunning in comparison. When you see it play the lighting from the flashers looks so much better and it all looks more realistic. You can see it shine and reflect off the ball and it affects everything on the playfield!

Jaws ULTIMATE Pro 1.08 (PinEvent 1.2) Final3.png

...and here you can see all the light inserts and other lights change their colour to red for when a swimmer gets eaten. The playfield texture is also changed here to accent the red...but it isn't showing another playfield surface! It's BAM changing the texture on the fly in table script. This can be done on the translite...objects...any texture used on almost everything can be changed!

Jaws ULTIMATE Pro 1.08 (PinEvent 1.2) Final5.png

So what changed to make it look so much better using BAM features?

- removal of all additional fake playfield surfaces... no dark playfield textures needed! This allows for full reflections on the playfield and also shadowmaps to be used
- adding 3 detached hardware lights (flashers with a nano model) for GI lighting that are hidden in the lockdown bar. Since they are detached (you change that in script), BAM lets you position the actual light source anywhere you want (x,y,z) separately from the model! In this case 2 are positioned in the slingshots, and the 3rd is back in the bumper area. this is a BIG change to how lighting is done!
- adding BAM generated shadow maps (you can see them around the sling shots, etc) that will automatically show and hide with the light they are generated from
- bump / normal mapping on Jaws, slingshot ring vests, barrel light, wall art
- adjusted brightness / glow as needed for all lights (mostly inserts and GI flashers) in table script for when the GI is on and when the GI is off
- swapping of playfield textures (if needed) for accenting lighting,etc.
- add the adjusted BAM Light and Post Processing settings (shown in the pic) to the table script startup to be sure ALL lighting is correct for everyone who uses the table! Very important! No need for anyone to mess with BAM for lighting!

Using the above steps as standard for new and older tables can really make a huge difference! There's much more that can be used and done with BAM though!

My Lightsaber mod in this pic was made by changing the lightsaber blades to bulbs.... then using BAM in script to set the blade colour to white and change the brightness to a VERY intense bright white so it can be seen no matter what and will look like the core of a lightsaber blade. Then I used your "Neon" table example Steve as inspiration to use animated holograms for the blade colours. BAM's mini playfield captures the entire blade handle, bulb, flasher light and hologram and moves it for table events (when the two blades clash together, etc)



Large texture images...not sure as I haven't run into that yet (maybe it was fixed). I've used 4K playfield images without any problem.

Image sequences you can definitely do more than 8 fps :)

On my MOTU mod I think I was using anywhere from 15 to 20 fps for my Image Sequences, but that was more to the limited animation of the source material (no need for more). I have 1000+ images for videos. I did have over 2000+ images at one point....but that was pushing FP too far for memory (its a 32 bit app still)...so I removed the "intro" video.

I think there's still be a max number of images you can use per Image List... at least SLAM mentioned that not long ago. You can still use a lot though.

As for polygons...well I can tell you that you can use objects with a high polygon count... but they will take a LOOOOONG time to load when you play.

I was playing around with trying to import a fester object from a friend's highly detailed VPX version of TAF. When I used it with the original high polygon count...it took like 5 mins to load the table :) I reduced the polygon count to like 15% of the original...and that worked much better. Here's a pic of the newer fester with the reduced poygons.


....and me using BAM to make TAF U-Pro change to black and white for the Classic Addams TV mode by simply changing the Post Processing settings in script. Most of the table changes correctly.... but I still need to change some bulb and flasher colours to white... and I needed to use BAM to swap the translite texture to black and white as well.


Converting the model was a fun process...

- export object and texture from vpx table
- import to blender to reduce the polygon count and also to orient the object (VPX use messed up orientation)
- import object to milkshape to size and position it for FP use
- export it to milkshape 3d format
- import to FP Model Editor and change to whatever FP toy / object you want to use
- export to FP model format
- import fp model and UV texture to use....test....wait forever for table to load...
- repeat process until model doesn't take forever to load


  • 1591121766088.png
    2.7 MB · Views: 67
Last edited:


Inserted Coin
thx Terry. Do you happen to have a cfg file like the third Jaws (GI)..the one just before the red lighting?

I remember Rafal showing me a demo of a High polygon Orc with very long animation (motion capture).
the thing was inserted by BAM, not loaded into FP the usual way.

FP just displayed like a cube on the table, so when you positioned the cube to your liking, the 3D object appear in all it's glory, fully animated with very low ressource consomption. Does that ring a bell?

Personally I remember not being able to play any table with a PF bigger than 1024x2048, and when I was making table the images sequences limit was 800 I think.


Pinball Master
Just download my files from Step 4 in my guide “BAM – Table CFG – POV Files”.

Any of the Ultimate Pro table CFG files should have similar settings (not sure if that works for both desktop and cabinet...but it should for those settings)

You could also use my default cfg for either desktop or cabinet...and that will have similar settings as well.

STEP 3: Install TerryRed’s “BAM – Default.cfg and Settings Files”

Note, that some new tables will load those settings in the table script. that overrides anything in the BAM\CFG files for the table. This is intentional as some authors like myself want to be sure the table looks "correct" for everyone. If that wasn't done on some new updated tables... then if the user had a crappy default.cfg, or one that is changed greatly... the table will look aweful with the wrong BAM lighting.

Again... this only changes the main lighting and post processing.... so some older tables may look bad until they are properly updated.

Yah, I've used 2048x4096 images no problem. Could be an issue if Load Images into Editor is enabled perhaps though.

As for models.... I think you may mean BAM Custom Models like Rav shows here?

I've never used that myself... so I can't comment on them..... but if they can allow for more complex models to be used without longer load times... that would be cool.


Flippered Out
Staff member
Site Supporters
thx George. Any of you know if the memory leak for large images and big images sequences is fixed.
Most of my animations where created at the time at 8 fps which. Is there a BAM enhancement that way?

Same question for 3d models and polygon number?

Ravarcade has posted that he has fixed a huge memory leak and a smaller one quite a while back. As you might guess, you have to use BAM for it to be fixed. You might try your animations and see what happens. Rav may have missed one. If there is still a problem, we can ask Rav about it.

There is still a problem using execute and eval commands like the one below:

Dim y
for y = 1 to 6
execute "Riposte"&y&".State=BulbOff"


You have to expand it out like this:



The reason is that the real time protection of the Windows Defender antivirus program will scan these commands and slow down the response time considerably. Defender has a way to add exceptions but it only affects the scans and not real time protection. You can turn off real time protection to fix it but then your PC is not protected. On my mod of Robots Invasion, I converted all the script to the long form and removed the execute and eval commands. You can use the commands if you know that a ball in not in play. If a ball is in play, these commands will dramatically slow the response time and cause stuttering even on the best systems.
Last edited:


Pinball Master

I did get this info from Rav, when I asked about using this for high polygon models and if they would load faster.

"It should. They are store in raw binary form (no parsing model needed). One thing to note. Converted models are model & used textures in one file. Not only model. Also texture replacing is not possible.

... and they can have skeleton animations."

So the real question is how to use Custom Models and how to convert them. If I can make this work with high polygon models.... that would be fantastic as there are some really nice assets out ther that can be used from VPX or in the various free 3d model sites.... and I have my old Bablyon 5 Lightwave models I could use...haha.

Once I get more info from rav, I'll pass it on....or he may even do a video to show how to do it.
Last edited:


Pinball Master

Steve asked this....

"5. In the start Trek demo there are explosions. Could an Hologram object always face the camera to ensure that things like explosion are seen the way they are supposed to (flat 2d for the viewer - not skewed). I am possibly not clear in my explanation so see this explanation about the same thing in after effects (you don't need to know the software to understand the concept, don't worry) "

I remember asking this long ago as well.... I can't remember if there was a solution back then.

For my Lightsaber mod... I too would also like to have the holograms always facing the camera as well... but only on ONE axis. I want it so that stays with the lightsaber as it is ...but only pivots on the one axis to allow it to always be facing towards the camera at all times as best as possible.

@Gimli Is that possible today? If so it would make the lightsabers look MUCH better in all views.
General chit-chat
Help Users
  • No one is chatting at the moment.
    @ Paolo: ********* *** ******