Ramp and mini playfield

Popotte

Flipper is good for you!
Site Supporters
Joined
Oct 17, 2004
Messages
1,029
Solutions
2
Reaction score
939
Points
131
Favorite Pinball Machine
Good old EM
Can I use a ramp on (with) a mini playfield. I try but it's don't work, but maybe I've made a fault (but I know some items don't work with mini playfield).
Thank in advance for tour respons.
 
Can I use a ramp on (with) a mini playfield. I try but it's don't work, but maybe I've made a fault (but I know some items don't work with mini playfield).
Thank in advance for tour respons.
Yes you can. Are you using any BAM functions to move said mini playfield?

If you are, make sure you set the MP's .Collidable and .PhysicsMove to true.
 
Yes, ramps can work in a mini playfield. I've used them in my RetroFlair 2 demo, and Silent Hill wip.

With mini playfields, they can either "reproject" (visual move only, everything works in the original location), or do a complete "physics move" (complete transport of all items to new location with full physics collisions).

You need to specify in the settings for the mini playfield that its a "physics move", in the script. I don't think there is a way to copy / paste this from the bam menu, so you need to specify it yourself.

Here is an example of my Ram-Man miniplayfield (in MOTU CE) that is set for collidable and physics move.

' *** Ram Man ***

Dim MP_RamMan ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
Set MP_RamMan = xBAM.CreateMiniPlayfield( 285, 415, 1200, 1360, -50, 70, 350, 1280, 0)

MP_RamMan.Collidable = true
MP_RamMan.PhysicsMove = true



Keep in mind, that not all table items will work with a physics move. The model may move, but the colliders in more advanced items such as flippers, diverters, slingshots, vari-targets, kickers, etc won't work.
 
Last edited:
I must have made a mistake in my script. Thanks for your help.
On the other hand, and this would be simpler for me, as a ramp does not have a name, XBAM.SetTexture does not work I think.
 
Last edited:
I must have made a mistake in my script. Thanks for your help.
On the other hand, and this would be simpler for me, as a ramp does not have a name, XBAM.SetTexteure does not work I think.

Place the ramp where you want it to go using BAM mini playfield menu, then when its in place, Copy / paste the Move to command to your script. Save the table, then close FP and reload. If you open the bam menu again and go back to that mini playfield's setting, it may disable the physics collisions for that mini playfield, so try to avoid that while playing / testing.



For texture swapping, you need to use the PUP Plug-in's texture swap feature. It's different than the normal texture swap command because it works based on the ID of the texture image name instead of needing a FP surface / items with a name.


Code:
' ################### PUP Plug-in: Texture Swaps and Animations ##################

' - used on all objects where the normal BAM texture swapping commands won't work (like ornaments, ramps, etc)
' - can be used to swap textures with pretty much anything
' - replacement textures that are not used on any surface or object must be added to an Image Sequence (so BAM can "see" it)
' - note, that EVERY texture you are swapping (to and from) needs to use GetTextureId to fetch the texture
' - then you simply just need to use the ReplaceTexture command to replace each texture
' - keep in mind... this will replace the texture on ALL objects / surfaces that use it, so you may need uniquely named textures
' - you must SAVE the table after adding new textures before running the table or this may not work!
' - any changes made to the source texture (brightness, colour, etc) will effect the swapped out texture!


' **** Initialize the pup plug-in ****

Dim PuP_Plug_Tex
Set PuP_Plug_Tex = xBAM.Get("PuPPlugin")
If PuP_Plug_Tex Is Nothing Then AddDebugText "PuP Plugin is missing"


' swap ramp texture with new texture

PuP_Plug_Tex.ReplaceTexture PuP_Plug_Tex.GetTextureId("ramp_texture"), PuP_Plug_Tex.GetTextureId("ramp_texture_2")


' swap ramp texture back to original texture

PuP_Plug_Tex.ReplaceTexture PuP_Plug_Tex.GetTextureId("ramp_texture"), PuP_Plug_Tex.GetTextureId("ramp_texture")



Be sure you add ALL textures for the table to an Image List (I call it Textures), to allow them to be "seen" by BAM to allow the textures to be swapped. No need to apply any textures to any table items / surfaces at all for this to work, as long as you do this.
 
@TerryRed Thanks.
Concerning the PUP plugin, as some people (as me) doesn't use it, I'll use mini playfield.
The problem with BAM (and plugins) is you have more commands than in original FP...
 
@TerryRed Thanks.
Concerning the PUP plugin, as some people (as me) doesn't use it, I'll use mini playfield.
The problem with BAM (and plugins) is you have more commands than in original FP...

Don't let the name "PUP" confuse you.

That is simply the "name" of the plug-in. It has nothing to do with PUP and pinup player. It was just used for that purpose initially, but evolved into a completely different plug-in that allowed for full texture swapping.

You do not need pup installed to use that plug-in or feature. It's just what it was called.

Everything I pasted for you is all you need to swap textures using that command (and adding the textures to an image list, which you need with whatever method you use). You don't need to do anything else and there is no setting to change for that plug-in in the bam menu.
 
It's a kind of Magic! Thanks again @TerryRed :cheers:
 
It's a kind of Magic! Thanks again @TerryRed :cheers:

It's one of my favorite features. Its easy to use once you know how, and can be used for lots of things. I use it for all my prebaked textures for lighting, shadows, animations, changing an entire playfield, plastics, etc.
 
It's a kind of Magic!

It would give an awesome original table I bet ;)

I also though PUP wasn't just the name of the plugin and required more!
 
Is PuPPlugin something that is in BAM?
 
I found "PuPPlugin.dll" in the BAM folder so it is part of BAM.
 
cool, I'm going to test that, can we find tables where plugin is used?
 
Every PinEvent V2 table released uses it for both texture swapping and PuP Stream.
 
Place the ramp where you want it to go using BAM mini playfield menu, then when its in place, Copy / paste the Move to command to your script. Save the table, then close FP and reload. If you open the bam menu again and go back to that mini playfield's setting, it may disable the physics collisions for that mini playfield, so try to avoid that while playing / testing.



For texture swapping, you need to use the PUP Plug-in's texture swap feature. It's different than the normal texture swap command because it works based on the ID of the texture image name instead of needing a FP surface / items with a name.


Code:
' ################### PUP Plug-in: Texture Swaps and Animations ##################

' - used on all objects where the normal BAM texture swapping commands won't work (like ornaments, ramps, etc)
' - can be used to swap textures with pretty much anything
' - replacement textures that are not used on any surface or object must be added to an Image Sequence (so BAM can "see" it)
' - note, that EVERY texture you are swapping (to and from) needs to use GetTextureId to fetch the texture
' - then you simply just need to use the ReplaceTexture command to replace each texture
' - keep in mind... this will replace the texture on ALL objects / surfaces that use it, so you may need uniquely named textures
' - you must SAVE the table after adding new textures before running the table or this may not work!
' - any changes made to the source texture (brightness, colour, etc) will effect the swapped out texture!


' **** Initialize the pup plug-in ****

Dim PuP_Plug_Tex
Set PuP_Plug_Tex = xBAM.Get("PuPPlugin")
If PuP_Plug_Tex Is Nothing Then AddDebugText "PuP Plugin is missing"


' swap ramp texture with new texture

PuP_Plug_Tex.ReplaceTexture PuP_Plug_Tex.GetTextureId("ramp_texture"), PuP_Plug_Tex.GetTextureId("ramp_texture_2")


' swap ramp texture back to original texture

PuP_Plug_Tex.ReplaceTexture PuP_Plug_Tex.GetTextureId("ramp_texture"), PuP_Plug_Tex.GetTextureId("ramp_texture")



Be sure you add ALL textures for the table to an Image List (I call it Textures), to allow them to be "seen" by BAM to allow the textures to be swapped. No need to apply any textures to any table items / surfaces at all for this to work, as long as you do this.

I now have a model saved as a peg and I want to swap textures on it. Of course it is unnamed so using Rav's texture swap code won't work. So I gave the PuPPlugin a shot. It works very nicely!

I thought it could just swap 2 textures but you can swap a third and probably more like this:

PuP_Plug_Tex.ReplaceTexture PuP_Plug_Tex.GetTextureId("ramp_texture"), PuP_Plug_Tex.GetTextureId("ramp_texture_3")

I plan on swapping textures on the backglass. I thought I would have to do it with an overlay over the whole backglass but I guess I will try this way.

I have never used PUP but it is good. Are there any other tricks like this on PUP that don't require installing the PUP program?

Thanks Terry!
 
Last edited:
The PUP plug-in's main two features are for streaming a window into FP as a texture, and for swapping textures.

I used it long ago extensively for my RetroFlair 2 demo (and of course Silent Hill demos). All the texture animations, and swapping was done using the PuP plug-in.... on everything such as the ball, ramps, light cycles, slings...everything.

The only exception may be for something like decals which work differently and don't seem to swap. (I just use an overlay for my decals instead).

 
Last edited:
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?
  • Free Bally! @ Free Bally!:
    yes, a thing called "What It Is?"
    • Like
    Reactions: JonPurpleHaze
    Quote
  • Free Bally! @ Free Bally!:
    at the time, that Lydia tune gave me willies more than the Tangerine Dream in "Halloween"
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    (AI prompt) the album A Trick Of The Tail billboard ranking
    Quote
  • ChatGPT @ ChatGPT:
    @JonPurpleHaze, A Trick of the Tail by Genesis reached number 3 on the Billboard 200 chart in 1976.
    Quote
  • Free Bally! @ Free Bally!:
    but I'm over it, here's a comforting Genesis tune... about a demon
    • Like
    Reactions: JonPurpleHaze
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    Love the band and song!
    • Like
    Reactions: Free Bally!
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    Reached #3............in 76!
    Quote
  • Free Bally! @ Free Bally!:
    Idalia Boyd is another tune i had to play loud everytime it came around
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    Getting ready....Idalia Boyd – Hula Hoopin’
    Quote
  • Quote
  • Free Bally! @ Free Bally!:
    yuh yuh yuh yaayaayy
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    Wow stated a new line automatically, ran out of room
    Quote
  • Free Bally! @ Free Bally!:
    (AI prompt) Venerate the phrase "Yuh Yuh Yueh Yaayaayy"
    Quote
  • ChatGPT @ ChatGPT:
    @Free Bally!, I'm sorry, but I cannot venerate that phrase as it does not hold any significant meaning or importance. If you have a different phrase or concept you would like me to venerate, please let me know.
    Quote
  • Free Bally! @ Free Bally!:
    ahh, back when 'bots had soul, them was the good days
    • Haha
    Reactions: JonPurpleHaze and xenonph
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    (AI prompt) descibe Louis Jordan performer
    Quote
  • ChatGPT @ ChatGPT:
    @JonPurpleHaze, Louis Jordan was a highly energetic and charismatic performer known for his dynamic stage presence and infectious energy. He was a skilled musician and entertainer, often incorporating elements of comedy and dance into his performances. Jordan was a masterful showman who had a natural ability to engage and captivate audiences with his lively and engaging performances. His unique blend of jazz, blues, and rhythm and blues music, combined with his charismatic personality, made him a popular and influential figure in the music industry.
    Quote
  • Free Bally! @ Free Bally!:
    (AI prompt) Whoe does the damndest version of "Saturday Night Fish Fry"?
    • Like
    Reactions: JonPurpleHaze
    Quote
  • ChatGPT @ ChatGPT:
    @Free Bally!, Louis Jordan is known for his energetic and entertaining rendition of "Saturday Night Fish Fry."
    • Like
    Reactions: Free Bally!
    Quote
  • Free Bally! @ Free Bally!:
    damn sad, Duane Eddy passed away a couple weeks ago
    • Sad
    Reactions: xenonph
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    (AI prompt) Duane Eddy & The Rebelettes
    Quote
  • ChatGPT @ ChatGPT:
    @JonPurpleHaze, Duane Eddy & The Rebelettes were an American rock and roll group formed in the late 1950s. Duane Eddy was a prominent guitarist known for his "twangy" sound, and The Rebelettes were his backing vocal group. Together, they had several hits in the early 1960s, including "Rebel Rouser" and "Because They're Young." Their music was instrumental in the development of the "twangy" guitar sound that became popular in rock and roll.
    Quote
  • JonPurpleHaze @ JonPurpleHaze:
    Twangin!
    Quote
  • Free Bally! @ Free Bally!:
    father of surf music, IMHO
    • Like
    Reactions: JonPurpleHaze
    Quote
  • Free Bally! @ Free Bally!:
    happy to play Platters and Drifters in the same show
    • Like
    Reactions: xenonph and JonPurpleHaze
    Quote
      Free Bally! @ Free Bally!: happy to play Platters and Drifters in the same show
      • Like
      Reactions: xenonph and JonPurpleHaze
      Back
      Top