WIP Support File Tutorial BAM FP fpxEngine

Future Pinball

shiva

Administrator
Staff member
Site Supporters
Joined
Oct 3, 2004
Messages
1,460
Solutions
2
Reaction score
1,046
Points
132
Favorite Pinball Machine
Trigon
Next....
After burning myself out completely with Jungle Girl, I decided to start back up something even more deadly to my sanity... fpxEngine.

As you may know, fpxEngine was the beginners engine designed so just about anyone can script a table design using the Vault system. These are small completely self contained code and design elements that you copy and paste the objects and script (all pre-done for you) from a Vault fpt file into the engine template, press play and it works. Don't think you can get easier than that. Of course, huge amount of work for me creating all of that, but since when haven't you known how insane my projects actually are.

The first vaults will be simple objects, like a basic Drop Target Bank vault, and I hope to have vaults for each major FP object, like Kickers, 3 bumpers etc. Once done, I will do up more with more and more features based on existing arcade games, so in a design, you can have the target bank from Xenon, the guide lanes from EBD, the calendar stand up targets from playboy etc all in one table. In other words, a Pinball buffet, take something from one table, take something else from another table and mix them up into one table design.

Of course, it's far more than that. Be quite a long time to do, as I have to write the manual for that, and the engine itself could do with some work to make it even easier to use (I learned a lot from JG)

I'm working on my master template for the objects right now, the first the drop target vault item. If you have ever looked at fpx (or the JG script which uses fpxEngine) you will notice a strange way of doing things. I wrote everything to be the same way, and modular so you can replace everything (even the flipper setups down the road) complete with common names inside my variables. Basically, doing a table with fpx will be like a small 10 to 15 piece jigsaw puzzle where you can rearrange the pieces of that puzzle however you like. From my point of view though, have to write that template so I can reuse it as a base for all the other FP object scripting, and also so I can duplicate that template if I want more than one say... TargetBank setup.

Once I do, I will subject everyone with a video that shows how it works with the vault items, so feedback can help me make it as easy to use as possible for those brand new to the community and want to create a table with no scripting knowledge at all.

Yeap, another shiva insanity coming soon. I can do with as much help as I can get, I can't write a manual worth a hill of beans for example, but, still, pretty cool so far. A pinball construction set for FP. Sure at least some people would like that one.
 
Cool!

I use a simple form of canned code myself. I copy quite a bit of code from one table to the next. ...So I add a comment above and below each segment of code like "'HUD Toggle Mod Start" and "HUD Toggle Mod End". It is a pretty elementary method that no one imitates but it works for me because I am a terrible coder and can't remember how to do it all. You probably know that already if you have looked at the script of any of my tables mods.

The trick to libraries will be that parts of the code have to be changed from one table to the next. For example, you still have to list the name of each object of the HUD for the toggle key for the fade in and fade outs.. Plus you have to add parts of the code in several subroutines. Of course, you know all that already.
 
v3.1 is way easier to port than the previous version!
Such a difference in gameplay; way closer to VP if you ask me.

But I have to emphasize the importance of a good keyboard and I mean fast action, zero lag keyboard. Personally speaking anything non-mechanical is a no for pinball. Or in the case of a control panel use leafswitch buttons (like real machines do).

This is true for any game that requires fast (re)actions really but since the theme here is pinball, just one quick example is the fact that is nigh impossible to tap pass without a good keyboard and the good news is that things like these are now possible with this code!
 
Cool. handy method, though mine is a lot of work as the entire code has to be self contained on top of being easy to modify (on your end). Stuff like this is in really short supply and takes forever to create. George, if you have any scripts like that you would be happy to donate, be happy to take them. fpx is a basic system though, not DMD but old school, but the more stuff I can get out, the sooner people can use them.
 
You can use any of them that you would like except for the menu system. You would need to ask JP to use the menu. They are easy to find in any of my table mods. They are always listed in the sub that defines key codes. All of them use nvR codes to save the settings to the fpRam file. You should include the tutorial I wrote on adding more than one DMD to a table. It beats having to duplicate every line of code in the script for a DMD:

 
I already asked about the menu system years ago. It's a fine system, but down the road if I want to have the ability to run all the scoring and features that fpx has that is user selectable, I would need a far more complex system that can handle hundreds of items, especially down the road.

There is no DMD support, and very much doubt I will have the time to learn how to do them, do all the animations, and then all the coding with the multiple sound sets as they have to match the present display/lighting system. That's hundreds of hours on top of the hundreds of hours that could be spent down the road, and it's hard for me to justify that considering no one actually used the previous versions. There's only so much time I have to do this, and I have my limitations as a coder as well.
 
@shiva did you took the attached file from the 1st post? I can't see it anymore.
 
Yeap. It appears to magically disappear, I have already uploaded it twice and certainly haven't deleted it. I will upload the next version once I finish the code for it.
 
Weird. I'll leave this one for the forum staff :)

Can you tell me if there's any changes or code rewrite that I should wait for regarding the flippers?
 
None. I haven't uploaded a newer version either, as I am just starting work on it.

version 1.14 beta

There are no changes to the flippers, fpxEngine just uses stock dynamic flippers, I felt shivaFlippers may be too much for absolute beginners as they may need adjustments for the shots and flipper omegas. Down the road, as the engine matures and people demand it, I will add higher end features on a gradual basis. Just starting with the beginners stuff first, there is no engine out there for them, and we all have to learn how to crawl before we learn to walk.

The next version (1.5) will be vault items. The new Vault items will be code routines for each major fp object (drop targets, bumpers etc) and will be "simplified" to make it as easy to use and modify as possible for beginners. They can change scoring quite easily, and I will include the common pin settings for these objects a beginner can turn on and off like a carry over of a value from ball to ball (player progress memory) and a switch to have liberal or conservative settings for the initial starting scoring value. After the basic stuff is done, I will be added Vault items based on actual arcade tables. (The target bank from Xenon, The queen's chamber from Centaur, the multiball system from Firepower etc)

Not a lot for a beginner to do. I removed and folded into the engine itself any code they don't need to use at all, and the code they need to copy and paste into the hit section is bare minimum, so they don't get overwhelmed with the code or confused. Copy and Paste the table objects, Copy and Paste the script from the Vault fpt add the bulbs and lights to the lightmanager, and that's it.

Here's my template for drop targets, but only what the beginner will actually see. The rest of the drop target code is hidden safely away within the engine. Still need to add player ball to ball memory and give it a good test, but it's about as simple as I can make it, and should take a beginner about a minute to add it into his fpx table.

Code:
' *** fpx Vault Simple Drop Target Bank ***
' For the fpxEngine.
' 1. Copy the table design from this fpt  into your fpxtable. Make sure all layers in the FP editor are "visible"
' 2. Set User adjustments below to suit, then copy this entire script from this fpt  into script editor in your fpx table in the HIT SECTION. 
' 3. Add Lights and bulbs to your LightList Manager in your fpx table. 
'	- Look for the names listed on the left side in the LightList Manager to have "light", "bulb" or "plastic" as fpx will use these words at the beginning of the file name for all Vault Items
' 	- If you do not know how to transfere the lights, both the fpx manual (in the vault pages) and the Future Pinball manual explains how to do this.
' 4. Press "play"!

' * User adjustments	 *

	' Engine code, do not change or modify
		v_fpxDTBOn=1																																								'  KEEP THIS SET TO 1. This is so the engine reconizes this vault item and doesn't causes errors.

	' Initial light to be lit in v_fpxDTBLights for start of each ball, set to 0 for "hard". (You need to drop the targets down once before a target light will be lit.)
	'  Done this way so beginners can't accidentally mess up something
	' Set to 1 to start at 5000pts, 2 to start at 10000pts etc (4 max)

		v_fpxDTBCaseStart = 0

	' Handles the Memory feature for DropTarget Score (common pin setting)
	' Set to one if you want the players DropTarget Score carried over to his next ball. 
	' Set to 0 to have DropTarget Score reset back to beginning with each new ball.

		v_fpxDTBMemory=1																																						' Variable to hold DropTarget Score Value from ball to Ball (for each player)

' * Scoring *
' Allows you to set the scoring. Everything else is done for you within the engine. You can add/change anything you want
' like a multiplier or turning on Inlane lights etc. See Beginners Guide in manual
Sub AddVaultScorefpxDTS()
	'IF VaultDebug=1 THEN AddDebugText " - v_fpxDTBCase =  " & (v_fpxDTBCase)																		' Dev Debug Code

	If v_fpxDTBOn=1 THEN
		 Select Case v_fpxDTBCase
		  Case 1
			AddScore(1000):AddJackpot(1000):AddBonus(1)
		  Case 2
			AddScore(5000):AddJackpot(5000):AddBonus(1)
		  Case 3
			AddScore(10000):AddJackpot(10000):AddBonus(1)
		  Case 4
			AddScoringEvent "ExtraBall"
		  Case 5
			AddScoringEvent "Special"
		  Case Else																																									' Case else will score if case is 0 or higher than 5
			AddScore(10000):AddJackpot(10000)
		 End Select
	End If

End Sub

' Drop Target Hit  

Sub DTargetfpxSimple_Hit()
	'IF VaultDebug=1 THEN AddDebugText "DTargetfpxSimple_Hit() " 																							' Dev Debug Code
	PlaySound "trigger"																																								' Play the mechanical sound. this will sound even if game is tilted
	IF (fpTilted = TRUE) OR (GameInProgress=0) THEN Exit Sub:END IF																							'  See if in tilt state or no game in progress to exit the subroutine and stop any scoring
	AddScore(1000)																																									'  Add some points
	AddJackpot(1000) 																																								'  Adds to Jackpot total
	AddBonus(1)																																										'  Adds to Bonus score
	If DTargetfpxSimple.Dropped = False Then AddMusicSet "drop":Exit Sub:END IF																		'  Look to see if all targets in the bank is down, if not, play drop sound,exit this subroutine
	If v_fpxDTBOn=1 THEN AddVaultDTargetSimple():END IF    																									'  if all targets in this bank are down, go to subroutine , bank sound
	set LastSwitchHit = DTargetfpxSimple																																	'  FP code we can use if needed. Just good programing
End Sub

' Rubber hit behind targets

Sub DTargetfpxRubber_Hit()
	AddScore(10):AddMusicSet "sling"
End Sub
 
I won't wait for it then. I though rewrite was done or bugs squashed in the flippers code which is the part i'm interested because... it's great :)
 
Good thing you are not waiting. Even if I was doing that, I'm not known exactly for my speed when it comes to coding. shivaFlippers may have a update, but I am stuck on something so I put it aside rather than waste days/weeks/months/years trying to figure it out. Rather do fpxEngine anyway, far more useful to everyone.
 
Finished the first Vault item, so did a video.

This highlights the Vault system, a set of premade mini-templates that allow the builder to select from that he can copy and paste into his fpxEngine table design, and it works as soon as he starts game play. This video demonstrates how easy it is to use the vault system, by using a drop target Bank example with 5 stages of scoring, complete with lights, playfield bulbs, sounds and lighting effects, all from about a minute of work.

I'm not very good at this, all I did is press record and started talking, and poor equipment (I sound so weird), so I almost feel sorry for subjecting this at you, but then this gives you a good idea what fpx is all about. Honestly it should take a minute to do each vault item, it's just takes far longer talking how to do it than just doing it. :)

Here's the video.
 
Awesome. I almost want to create a table from scratch :)
 
almost want to?

We will see how many Vault items I do before I jump off a cliff. Should be more than enough to create a simple table to start. The code is very complex and capable, there's a lot of things in there so the tables made with it will be quite sophisticated, certainly a lot more than in most templates, just have to start adding that stuff to the present template. I think the easy way is to do all the "simple" vault items first, and then gradually add more complex routines based on actual arcade tables afterward, though it's very easy to change a few things even with the example in the video.

In the meanwhile, more code like BAM stuff, and try and set the template to handle future engine things for down the road. I will unleash another video on you poor people soon enough.
 
Yes almost, unfortunately. I can't do anything related to graphics and have no imagination whatsoever for design. And don't even ask me to think about modelling.

Very weird coming from a family where people can draw and paint well enough or are very handy. I'm a fallen apple that rolled away from the tree :D
 
Finished the first Vault item, so did a video.

This highlights the Vault system, a set of premade mini-templates that allow the builder to select from that he can copy and paste into his fpxEngine table design, and it works as soon as he starts game play. This video demonstrates how easy it is to use the vault system, by using a drop target Bank example with 5 stages of scoring, complete with lights, playfield bulbs, sounds and lighting effects, all from about a minute of work.

I'm not very good at this, all I did is press record and started talking, and poor equipment (I sound so weird), so I almost feel sorry for subjecting this at you, but then this gives you a good idea what fpx is all about. Honestly it should take a minute to do each vault item, it's just takes far longer talking how to do it than just doing it. :)

Here's the video.

That was actually really good Paul! (nobody ever likes their own voice).

As always the amount of coding documentation you do is off the charts. Way more than my developers in the professional world do.

Would there be a way to auto-include script vault items via some sort of #include? I thought there was an "eval" like function where you could load in an additional file. I'm not saying it is needed though. I'm curious though if you wanted two set of drop banks how the vault concept will be able to expand to?

As we all wish, I wish that FP could be expanded to include a simple "insert vault item" menu command that makes this easy. Oh we can wish.

-mark
 
I'm curious though if you wanted two set of drop banks how the vault concept will be able to expand to? As we all wish, I wish that FP could be expanded to include a simple "insert vault item" menu command that makes this easy. Oh we can wish.
Way beyond my skill level. Not even too sure Rav could do that either, though he could probably do that. It would require some pretty big changes and a lot of coding in BAM, and I am not sure that is justifiable as I don't see enough people actually using this for quite a while if ever.
Actually, I just did it the simplest way possible as that occurred to me people might want duplicates, I just duplicated that Vault item, renamed the variables, so now there is a second vault item of that target bank. :)
I am going to do a new video soon, using the third vault item which are a simple stand up target bank (2 stages of scoring). As I do each vault, I add to a "master" template which makes it easier and easier to duplicate not just for you but also for me. As a example, in my worksheet, all I have to do now is a simple find and replace a keyword to duplicate a vault, and change all the subroutine calls, lights, bulbs, and variables. So I use DropTarget1, replace it with dropTarget2, and it will change the entire code, including the names of objects needed. I then fold in that code into the engine (just copy and paste it to the proper place), create and name my new objects, and that's it.
When I do that video, I will show the duplicate off, and also demonstrate the "pinsettings" and how easy it is to change the scoring. Like everything else, there is only one way to do things, once you learn that one way you can use it for everything. Changing scoring? Easy, just replace one line of code with another line of code that you can just copy and paste.
You can have as many Vault items as you want, with this simple system, you just need to change the keyword for the naming with a simple Find and Replace, I can create hundreds if not thousands if I lived long enough.
Would there be a way to auto-include script vault items via some sort of #include? I thought there was an "eval" like function where you could load in an additional file. I'm not saying it is needed though.
There is. Something I will have to use down the road, as I add to the Vault section, and continue to develop and change the engine and it's code. Especially if others start making their own Vault items and then send me the code. (simple to do as well. I will include my master worksheets with the next version, and beyond that write a manual page if demand is enough. In fact, I just told you how to do it above)
As always the amount of coding documentation you do is off the charts. Way more than my developers in the professional world do.
Thanks. The manual takes as much time to write as the code. With manuals, I have always found a problem with them, and other engines here. The author always explains how to do things with the assumption that the person is close to the same skill level as him. The truth though is it is far more likely the person using this engine will have no coding experience at all (or very little) and wouldn't even know what a remark is, or basic concepts like what a subroutine is, or a variable. Most people (maybe as high as 95%) who download the tables don't even want to learn scripting, it either takes up too much time to learn (yeap, months if not years) or just think they are not good enough and won't even try. Off and On, I have spent years thinking about how to get around that, and just give people want they want, the ability to make their own pinball table and have the design and the code all set in a hour with a simple table. This was intended for shivaEnginge B4 for VP, but I quit that community, so their loss, FP's gain. Still, I never forgot it, so that was in the back of my mind for the first version of fpx and the Jungle Girl game, so now I finally have the time to concentrate on the new version of fpx.
 
Next video on fpx. I've been working on the new master Vault Template, which allows me to duplicate and change vault code very fast, so this Video shows off the progress.
This video shows 2 drop target banks, how to change the scoring on them, and also previews a new Vault item, standup targets with a cool Williams type effect.

Alas, my OBS decided to record in a higher res suddenly, so... sigh. Couldn't be bothered to redo the video.
NOTE: YouTube seems to be very slow with HD processing, so you may get a low res version for the time being.

 
New video should be up soon.
Not as much time this week, but getting there. This next video will show off the third vault (kickers) and yet another couple changes, the ability to expand a vault item with extra lights/bulbs and additional case scoring. The last week, I have been working on making it as easy as possible to use and modify a existing vault worksheet (takes me about 10 minutes, mainly because you have to rename the objects manually in the editor). I'm also trying to make it as easy as possible so people can make their own vault items. Maybe I will also add the ability to increase the amount of objects so you can expand the code easily, but that looks like it would be for version 1.42.

Every new beta version will contain a upgrade or rewrite of the fpxengine code, this time it's a new addition of BAM lighting, that will be standard now, and plastics will now light up or blink with the pf bulbs.

I decided to cut off any more additions with this version, just get it out so people can use it and give me feedback, but the delay is not just all the testing, but also having to write the manual pages, which actually take me far longer to do.

The only new addition may be just getting rid of the dynamic code completely, and just putting in the latest version of shivaFlippers (3.1)
The version after, not sure. Spinners and bumpers, a Advancing value setup, but there's some tricky vaults that could take up a bit of time, so I will put it to a vote as I am only going to do one per version so I can get new versions out sooner.

- Either a ABC lane system with built in Lane change support,
- or a simple 2 ball multiball feature vault. (There will be more complex multiball vaults coming down the road, like say the multiball from Firepower complete with the 6 targets)

People who may want to use fpxEngine, what say you?
 
Last edited:
Hi shiva , sounds great... So - Yes, "Both" please :)

OK... If I have to select 'one', then for me personally, I would like the Multiball feature.
 
Try to do both, but depends on time, and with JG, I kept holding it back and back... I'm sure people want to just play with what's in there and not wait months (it's me after all)
Multiball is sort of already in. Wasn't happy with the code, and it was part of the engine and not a Vault item. Everything is going to be vault based, even the flipper stuff so you can have different configurations like a "centaur" one, or Black Knight complete with magna saves. As well, you can have different MB's as well. Sigh, way down the road. I might die of old age beforehand though. :)
 
New Video up. (Decided I better do one)

This highlights the newest additions, a new vault item on Kickers that allow the builder to select and copy and paste into his fpxEngine table design,. We also show off the new BAM lighting effects, plastics which also now light, and the new scoring features like Inlane and Outlane lights that now feature a Alternating light system. And at the end, a quick look at the Master vault coding templates (or worksheets) that you can use to make your own vault files, plus a couple new powerful features just added to the worksheets to expand the lights and bulbs, as well as additional scoring expansion.

 
Yet another video, as I get some new stuff in.

A new vault item on the advancing value feature, new shivaFlipper code and adjustments, including a timer delay system for people who have bad reflexs or even worse keyboards. I also discuss the various flaws with Future pinball and Bam, and show some slightly scary looking code of the new Vault item.

This new Vault is different, as it's the final test of the vault templates to handle objects within to be "grouped" together. In this vault, I have 4 groups, that I can run separately or in combination with other groups as needed. If you were wondering, I can have 9 groups, each with 9 objects per group.

Very short video, and I forgot to demonstrate the changes within shivaFlippers.... Oops...

 
Last edited:
Another video... This is a secondary video, where I discuss things I forgot to talk about the last time... oops...

I show the settings for shivaFlippers, which allow you to emulate the flippers and their behaviors from different eras, talk about the new variable coil upgrade, and describe the settings. I also touch briefly on the vault, show some of the new manual pages, and explain some vault coding techniques you can use that I forgot to add last time.

At the end, I start rambling about various things. :)

 
Forum activity
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.
      Mibs Mibs: HZR has posted a new reply in the thread "Complete list of VB commands".
      Back
      Top