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

That trick I know. I'm just don't know the appropriate hack for what you want (assuming it is possible)

I don't either actually. The code was written by a friend a long time ago that doesn't show up anymore. Since it works on FP and not BAM is should work indefinitely.
 
Hey Terry, I noticed in the all in one that the code for the flippers doesnt have swingangle = 48 anymore
was this updated? im watching the video and I noted its missing.. I added it.


' ========================= Custom Flipper Settings =========================

' Flippers must be named LeftFlipper, RightFlipper, LeftFlipper2, RightFlipper2, LeftFlipper3, RightFlipper3

' ---------------------- Lower Left and Right Flippers ----------------------

Swingangle = 50 ' not sure why this is missing fromtutorial, i think its the update.. Hzr

RollingEffect = 1.0 ' Depending on the KineticFriction, how much rolling ball affects the shot. 0 = every shot is like if the ball is static, all shots are narrow as possible from base to tip. 1 = shot starts narrow from the base to gradually wide as possible the closer you are near the tip and even more based on the ball rolling speed.
FlipperStaticFriction = 0.75 ' Default: 0.75 Flipper friction applied to rolling ball
FlipperKineticFriction = 0.5 ' Default: 0.6 Flipper friction applied to sliding ball
 
Hey Terry, I noticed in the all in one that the code for the flippers doesnt have swingangle = 48 anymore
was this updated? im watching the video and I noted its missing.. I added it.


' ========================= Custom Flipper Settings =========================

' Flippers must be named LeftFlipper, RightFlipper, LeftFlipper2, RightFlipper2, LeftFlipper3, RightFlipper3

' ---------------------- Lower Left and Right Flippers ----------------------

Swingangle = 50 ' not sure why this is missing fromtutorial, i think its the update.. Hzr

RollingEffect = 1.0 ' Depending on the KineticFriction, how much rolling ball affects the shot. 0 = every shot is like if the ball is static, all shots are narrow as possible from base to tip. 1 = shot starts narrow from the base to gradually wide as possible the closer you are near the tip and even more based on the ball rolling speed.
FlipperStaticFriction = 0.75 ' Default: 0.75 Flipper friction applied to rolling ball
FlipperKineticFriction = 0.5 ' Default: 0.6 Flipper friction applied to sliding ball

JLou added a snippet not long ago where he found some code to automatically load the swing angle. Terry added the snippet to the All In One. I think it might produce some sort of error if you add Swingangle to the list now.
 
Hey Terry, I noticed in the all in one that the code for the flippers doesnt have swingangle = 48 anymore
was this updated? im watching the video and I noted its missing.. I added it.


' ========================= Custom Flipper Settings =========================

' Flippers must be named LeftFlipper, RightFlipper, LeftFlipper2, RightFlipper2, LeftFlipper3, RightFlipper3

' ---------------------- Lower Left and Right Flippers ----------------------

Swingangle = 50 ' not sure why this is missing fromtutorial, i think its the update.. Hzr

RollingEffect = 1.0 ' Depending on the KineticFriction, how much rolling ball affects the shot. 0 = every shot is like if the ball is static, all shots are narrow as possible from base to tip. 1 = shot starts narrow from the base to gradually wide as possible the closer you are near the tip and even more based on the ball rolling speed.
FlipperStaticFriction = 0.75 ' Default: 0.75 Flipper friction applied to rolling ball
FlipperKineticFriction = 0.5 ' Default: 0.6 Flipper friction applied to sliding ball

Tutorial and video both tell you to follow the newest written tutorial and to use the newest included AIO Example table on "this" Topic. Videos get out of date quickly, and others may add their own changes that they prefer, etc.

Much has been updated and changed since the video was made. Don't make changes to the AIO Example code. Follow the written tutorial as instructed.
 
I noticed the AIO has these 2 invisible files. I was just wondering what the difference is between the 2:

FullTransparent.tga
invisible.tga
 
I noticed the AIO has these 2 invisible files. I was just wondering what the difference is between the 2:

FullTransparent.tga
invisible.tga
I think they are the same. Invisible is invisible, isn't it?
 
I noticed the AIO has these 2 invisible files. I was just wondering what the difference is between the 2:

FullTransparent.tga
invisible.tga

They are both the same (an empty image with will alpha transparency). Some tables and examples over the years have used either name, so both were included for convenience.
 
I noticed a couple of errors in the AIO script. One of the sounds is entered as "mech_mech_Metal_Touch_" and should be "mech_Metal_Touch_". Also "mech_Apron_Hard_" has 4 sounds and not 3.
 
I noticed a couple of errors in the AIO script. One of the sounds is entered as "mech_mech_Metal_Touch_" and should be "mech_Metal_Touch_". Also "mech_Apron_Hard_" has 4 sounds and not 3.

Can you show me exactly where this is at? I'm looking at the script of my AIO Example Table 1.6 and don't see anything with "mech_mech" in the entire script or in sound manager.

mech_Apron_Hard_" has 4 sounds and not 3

Thanks. I've changed that. It's not an "error"... it just will only use the first 3 sounds instead of the 4 on the table. (many of my PinEvent releases were using fewer FLEEP sounds initially).
 
Can you show me exactly where this is at? I'm looking at the script of my AIO Example Table 1.6 and don't see anything with "mech_mech" in the entire script or in sound manager.

...

I'm sorry. I guess I messed up my copy of the AIO somehow when I was working on FizX Lite. My bad.
 
@TerryRed
Code:
Sub PinMechSound_Kickback
    PinMechSound ("mech_BallRelease"&Int(Rnd*5)+1), Kickback, 1, 831, 2, "solenoid"
End Sub

It returns "variable undefined". If I'm right, this is for selecting between 5 sounds as the plunger kicks the ball into the playfield. Should I change this to plunger?
 
@TerryRed
Code:
Sub PinMechSound_Kickback
    PinMechSound ("mech_BallRelease"&Int(Rnd*5)+1), Kickback, 1, 831, 2, "solenoid"
End Sub

It returns "variable undefined". If I'm right, this is for selecting between 5 sounds as the plunger kicks the ball into the playfield. Should I change this to plunger?

Kickback is typically used for the LeftOutlerLane Kickback Autoplunger.

- for each PinMechSound command, be sure that fp_item is correct for the FP table item name (this is used SSF positioning)
- the fp_item MUST be a FP item that has BOTH an X / Y position AND a Name in the FP Editor! (rubber bands, surfaces, ramps, etc won't work)
- if the fp_item doesn't exist (or if it doesn't have an X / Y position), FP will give you an error because it doesn't know what the fp_item is.
- even if PUP SSF is disabled, you still need to be sure the the fp_item Name and X / Y position exists to prevent the error.


Code:
' ################### MECHANICAL SOUNDS AND FEEDBACK - START ####################

'    Flippers, Slings, Bumpers, Kickers, VUKS, Drop Targets, Plungers, Coin, Drain, etc

' - this is for all manually controlled feedback, that requires control from table events
' - all mechanical sounds for all items in the editor are set to none
' - they are all controlled by PinMechSound commands instead of playsound

' PinMechSound is used to output mechanical sounds to either FP, or to PUP for SSF, and trigger DOF for feedback (cabinets)

' Usage: PinMechSound sound, fp_item, volume, dID, dValue, dType

' sound =    mechanical / feedback sound
' fp_item = FP table item name
' volume =    between 0 to 1.0 (FP)
' dID =        DOF Exxx trigger or PuP Exxx trigger from PuP-Pack
' dValue =    DOF trigger action. 0 = off, 1 = on, 2 = pulse
' dType =    type of feedback / sound

' dType options are:

' "flipper"
' "slingshot"
' "bumper"
' "solenoid"
' "droptarget"
' "droptargetreset"
' "target"
' "knocker"
' "chime"
' "bell"
' "shaker"
' "gear"
' "fan"
' "dof"
' "ssf"
' "sound"
' "ball"
' ""
 
I see now. I mixed up the purpose.
 
I see now. I mixed up the purpose.

When adding SSF the VPX tables... it took me a while to understand this as well.

If the item in question can't be used (has a name, but no x/y, etc)... then another nearby item or a new trigger (for SSF position reference only) can be used.

You can also use "ball" as an option, and then it "should" use whatever x/y position the ball is at when the command occurs (only for items that have the ball hitting them to create the event, such as targets / walls... not for flippers, etc).
 
So, we're missing a Sub here. One for ReleaseBall and one for Plunger Release with NoBall.
The sound is there for both, just not the Sub. I have to go for a while now but I'll look into this and report back in a few minutes.

/edit

As this was fast to do, I divided the code so now I have:

Code:
Sub PinMechSound_PlungerRelease_Ball()
    PinMechSound "mech_Plunger_Release_Ball", PlungerLaneTrigger, 1, , , ""
End Sub

Sub PinMechSound_PlungerRelease_No_Ball()
    PinMechSound "mech_Plunger_Release_No_Ball", PlungerLaneTrigger, 1, , , ""
End Sub

So if the ball is there, it's a dry, one-hit sound. If the ball is not there it's a springy sound.
 
Last edited:
So, we're missing a Sub here. One for ReleaseBall and one for Plunger Release with NoBall.
The sound is there for both, just not the Sub. I have to go for a while now but I'll look into this and report back in a few minutes.

/edit

As this was fast to do, I divided the code so now I have:

Code:
Sub PinMechSound_PlungerRelease_Ball()
    PinMechSound "mech_Plunger_Release_Ball", PlungerLaneTrigger, 1, , , ""
End Sub

Sub PinMechSound_PlungerRelease_No_Ball()
    PinMechSound "mech_Plunger_Release_No_Ball", PlungerLaneTrigger, 1, , , ""
End Sub

So if the ball is there, it's a dry, one-hit sound. If the ball is not there it's a springy sound.


Some of those PinMechSound subs are just "examples". They aren't all used in the AIO Example Table.... and they aren't intended for every type of table's case use scenario... or everyone's preference.

Subs aren't "required". They were just used to make it easier to copy / paste them all to another table easily in one section. Then just link them to whatever table events are needed.

Everyone will need to make their own pinmechsound commands for their table's specific needs.
 
You are correct, but in my defence, this one is used in all tables so I thought it was some sort of overview because plungers exist in all tables.
 
Last edited:
Sub OnPreHitFlipperSettings(FlipperExt)
if BallSpeed_Volume_enabled = true then
If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PinMechSound ("mech_Flipper_Rubber_" &Int(Rnd*7)+1), "ball", (( xBAM.Ball.HitSpeed / 1000 ) * BallSpeed_Volume_Amplifier) * Flipper_Hit_Vol, , , "flipper rubber"
else
If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PinMechSound ("mech_Flipper_Rubber_" &Int(Rnd*7)+1), "ball", Flipper_Hit_Vol, , , "flipper rubber"
end if
If FlipperExt.hit = True then FizXRubberHitEvent = 0 Else FizXRubberHitEvent = 1 : End If
End Sub

I believe the 2nd one is a mistake and should be < or maybe even <=
Am I right?
 
I believe the 2nd one is a mistake and should be < or maybe even <=
Am I right?

Actually... it's correct. They are both the same thing... only one is controlling the "volume" of the "sound" based on ball speed if BallSpeed_Volume_enabled = true.

The other is the same thing... only its volume is consistent. I forgot I added that feature :)
 
I must be very rusty at this but the 2nd one is never used so it can't be right.
 
This is the original code:

Code:
Sub OnPreHitFlipperSettings(FlipperExt)

    If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PlaySound ("Flipper_Rubber_" & Int(Rnd*7)+1), ( xBAM.Ball.HitSpeed / 1000 ) * 0.9 * Flipper_Hit_Sound : End If
    If FlipperExt.hit = True then FizXRubberHitEvent = 0 Else FizXRubberHitEvent = 1 : End If

End Sub

I think you made a mistake @TerryRed by "doubling" this
 
This is the original code:

Code:
Sub OnPreHitFlipperSettings(FlipperExt)

    If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PlaySound ("Flipper_Rubber_" & Int(Rnd*7)+1), ( xBAM.Ball.HitSpeed / 1000 ) * 0.9 * Flipper_Hit_Sound : End If
    If FlipperExt.hit = True then FizXRubberHitEvent = 0 Else FizXRubberHitEvent = 1 : End If

End Sub

I think you made a mistake @TerryRed by "doubling" this

It would be easier to figure out if I saw the original again :)

Oh nevermind :p
 
Looking at it again.... it's correct. :)


Code:
Sub OnPreHitFlipperSettings(FlipperExt)
    if BallSpeed_Volume_enabled = true then
        If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PinMechSound ("mech_Flipper_Rubber_" &Int(Rnd*7)+1), "ball", (( xBAM.Ball.HitSpeed / 1000 ) * BallSpeed_Volume_Amplifier) * Flipper_Hit_Vol, , , "flipper rubber"
    else
        If FlipperExt.hit = True and FlipperExt.BallVSpeed > 100 then PinMechSound ("mech_Flipper_Rubber_" &Int(Rnd*7)+1), "ball", Flipper_Hit_Vol, , , "flipper rubber"
    end if
    If FlipperExt.hit = True then FizXRubberHitEvent = 0 Else FizXRubberHitEvent = 1 : End If
End Sub


If BallSpeed_Volume_enabled = true then the pinmechsound command outputs its volume based on the speed of the ball

ELSE

the next command will output the same thing if BallSpeed_Volume_enabled is NOT true, only it will output the normal volume level, instead of changing the volume based on the speed of the ball.

then the last command is issued because it's the same no matter what BallSpeed_Volume_enabled is set to

If FlipperExt.hit = True then FizXRubberHitEvent = 0 Else FizXRubberHitEvent = 1 : End If
 
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