Godot 4.4 Pinball Table Build

Godot 4.4 Master Pinball Table 38
Tested with a Graphic Card Nvidia Gforce 2070 & an intel i7
& Graphic Card Nvidia Gforce 4060 & an intel i9.

Game Features
1 - 4 Player selection, 1 -3 Ball selection, Drop targets, Round targets, Score rankers, Ball saver, Plunger, Bonus scores, Audio music player, Table Animations, Dmd Queue Text, Bonus multiplier, Match the Last 2 Digits, High score Board, Enter Name & mouseover features & Design your own Table View feature.

Will attempt to come into line with UPBGE Kick the Can Pinball Table 41 features.

Please enjoy & rob what you can from it if you wish.

UPBGE Kick the Can Pinball Table 41 Link below

VP forum holds four more tables that I have worked on: PacMan, TexasPoker, Invader & Skittles which may appeal to you.
It is a visual basic coded-driven pinball game. It’s all freeware for non-profit use only.
You may also find them with At Games if they are still using them.

VisualPinball Tables
https://www.vpforums.org/index.php?app=core&module=search&do=user_activity&search_app=downloads&mid=116605

9 Likes

I think your ball needs more bounce, looks slow and rigid, as if it’s heavy.

I like the early 2000s aesth tho very fire

1 Like

If you change the mass in the Balls RigidBody3D you may get what you are looking for. I have adjusted the mass to 0.001 which has given me a better ball roll. This configuration sits well with my nvidia geforce 4060. In may behave differently under a 2070. If you are looking for a different bounce experience you will need to adjust the bounce slider which sits below the mass / physics Material / Friction slider.

I have also increased the flipper thrust to 800 which is attached to the flipper Node3D. (must be careful when adding extra thrust else the flipper will gobble the ball). The latter changes will be added to the next upgrade. Although, I have only been with Godot for a couple of weeks & am still experimenting with the configurations & there is much more to learn & discover. Thankyou for your comment zac

I have replaced the flipper collision Boxshape3D with a HeightMapShape3D. Its seems to handle the ball well with better directional control/now there is less collision shapes attached to the flippers. Will upgrade the Master table flippers after a good period of testing. Pinball Table Build Number (‘to be confirmed’), which is forked from the Master Table, will be upgraded with the new flipper configuration in the next upload .

Regarding the post comment that referred to the pinball ball mass change for a ’ better ball roll’ I was forced to modified the mouse Ball1 controller to:- @onready var _mouse_hsens := 1.5 changed to 0.005 # the horizontal sensitivity & the @onready var _mouse_vsens := 1.5 changed to 0.005 # the vertical sensitivity which compensates for the reduced ball mass. (just in case somebody changes the mass of the ball based upon the recent forum post comment).

Godot 4.4. Hit the Table Pottery Pinball 129 Upgrade
Tested with a Graphic Card Nvidia Gforce 2070 & an intel i7
& Graphic Card Nvidia Gforce 4060 & an intel i9.

Game Features
1 - 4 Player selection, 1 -3 Ball selection, Drop targets, Round targets, Rotation targets Score rankers, Ball saver, Plunger, Bonus scores, Audio music player, Table Animations, Dmd Queue Text, Bonus multiplier, Match the Last 2 Digits, High score Board, Enter Name & mouseover features & Design your own Table View feature.

Godot 4.4. Hit the Table Pottery Pinball 129 Upgrade notes

  1. Changed boot load feature to ; Load Page true when loaded & false when it does not load during game boot up.
  2. A delete mouseover feature added. ‘Press enter’ or ‘Keypad delete’ can be
    used to run the confirm delete if bool Confirmdel==true.
  3. Keypad & mouseover delete added to user guide page two.
  4. Changed the ball mass to .001 which works well with the NVidia g-force 4060. may behave differently when working with other graphic cards.
  5. In jolt physics 3D Checked run on separate threads box.
  6. Increased the flipper thrust speed to 800. (must be careful when adding extra thrust else the flipper will gobble the ball)
  7. Replaced the flipper collision Boxshape3D with a HeightMapshape3D. It seems to handle the ball well with better direction control. + it has not gobbled the ball.
    Will upgrade the master table flippers after a good period of testing.
  8. In Ball1 script reduced the @onready var _mouse_hsens := 1.5 to 0.005 # the Horizontal sensitivity & the @onready var _mouse_vsens := 1.5 to 0.005 # Vertical sensitivity
    & @onready var _force := .05 which compensates for the reduced ball mass.
  9. Introduced pegs & Mini Bumpers, target bowls & mugs which splinters when the ball hits them. Also introduced two Rotation Tgts with score rankers.
    10.Transferred star burst to Mini Bumpers.
    11.Added new star spray animation for the playfield score label.
    12.In Game_Manager script put a delay on start game which will give the balls time to settle before the player can press enter. Bug fix
    13.Peg Lanes introduced. Roll over lights to be added to the next upgrade.
    14.Introduced sprite animation with xyz position to the Dmd Queue text line.

jobs to be done

  1. Add star trigger to plunger lane.
  2. Add Triggers to Peg Lanes & rollover lights.
  3. Add an Auto plunger.
  4. Add Sling shots & bumpers.
  5. More text & sprite Dmd animations to be designed
  6. Upgrade the decoration & add more image decorations to the table.
  7. Table legs & Venue with a Glass Roof to be added.
  8. Look for more bugs.

Godot 4.4.Kick the Table Pottery Pinball 144 Upgrade

  1. User Guide Page One & two fitted with Godot’s scrollbar feature.
  2. Hud1 now can be scaled on the Vector3(x,y only) using keypad + or -.
  3. Hud load error file will now identify if the rotation vector is loading. (Bug fix)
  4. Transferred Hud_View_Save_Buttons to :- get_node(“/root/Node3D/DMDs/Hud_View_Save_Buttons/Save_View1”). A better location for it.
  5. Reorganized & manufactured a little more transparency in the Ball button icon & button scripts. (Bug fix).
  6. The plunger now runs Hud_Buttons script func False_All(): which is a newly added script.
  7. In Q_Dmd_Txt.gd script upgraded func Hud1_Txt_message() to : -

(_Txt,_TimeOn,_TxAction,_TxPos,_AniName,_Sprite,_SpritePos,_FontType,_FontSize,_Colour,_MusFile,_MusVol) now only 12 auguments
func Hud1_Txt_message(_Txt,_TimeOn,_TxAction,_TxPos,_AniName,_Sprite,_SpritePos,
_FontType,_FontSize,_Colour,_MusFile,_MusVol):

1st argument - _Txt = “BallSaver”
2nd argument - _TimeOn = 1 : for “Jump_Into_Centre” which uses the built in await
timer. “Jump_Into_Position” runs increments which is ran by func delta
3rd argument - _TxAction = “Jump_Into_Centre” or,“Jump_Into_Position” or ,“Action_Ani”.
more options outlined on line Num 8
4th argument - _TxPos = [1,1,1] : The xyz position for the “Jump_Into_Position” when
runnimg the Q_Dmd_Txt TextLabals
5th argument - _AniName = “Ani1” : when TextAction runs “Action_Ani” use the animation
name from the AnimatioPlayer to run the animation which animates the TextLabel.
6th argument - _Sprite = “Ball_Saver” : The name of the sprite that sits in the
AnimationSprite3D
7th argument - _SpritePos = [1,1,1] : the xyz position of the AnimatorSprite3D
8th argument - _FontType = “courbd.ttf” : name of the font that is in the font library
9th argument - _FontSize = “64” : the size of the font that is in the font library
10th argument - _Colour = [1,1,0.22] eg: the rgb colour value of the font
11th argument - _MusFile = “Bloop_Snd” : the sound file that is attached to root//Node3D/Camera & Audio/SoundManager.
12th argument - _MusVol = 0 : the volume of the sound file that is attached to root//Node3D/Camera & Audio/SoundManager.

  1. Introduced the following Hud1/Dmd Qtext animations : -
    TxAction_==“Jump_Into_Centre”:
    TxAction_==“Jump_Into_Position”:
    TxAction_==“One_On_RL”:
    TxAction_==“One_On_LR”:
    TxAction_==“One_Off_RL”:
    TxAction_==“One_Off_LR”:
    TxAction_==“Action_Ani”:
    TxAction_==“Sprite”: (Put a " " in the _Txt argument position when using the Sprite by it self as an TxtAction replacement) (Sprite can be run with all other TxtAction )

Text line examples
Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“Action_Ani”,[0,0,0],“Action_Ani_1”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0) #Bloop_Snd is from root//Node3D/Camera & Audio/SondManager
Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,1,“Jump_Into_Centre”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0)

Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,50,“Jump_Into_Position”,[-0.04243, 2.0693, 0.030747],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0)

Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“One_On_RL”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0)

Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“One_On_LR”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0)

Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“One_Off_LR”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0)

Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“One_Off_RL”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0);QTi=0

#running sprite without text using the TxtAction argument position#
Q_Dmd_Txt.Hud1_Txt_message(“”,0,“Sprite”,[0,0,0],“”,“Ball_Saver”,[-2.985,3.666,-0.093],“”,0,[0,0,0.0],“Bloop_Snd”,0)

  1. In Entername.gd script transfered the entername.visibility=false to func _physics_process(_delta) → void: & increased the inc to 100 which
    closes the board down after giving the on looker enough time to acknoweledge the score input.

Godot 4.4. Kick the Table Pottery Pinball 152 Upgrade

  1. In Ball1/2/3 bus Audio added a limiter effect.
  2. In Ball_Tray.gd script increased the Ball_Gatei increment.
  3. In Q_Dmd_Txt.gd script put if :- TxAction_==“Action_Ani”: self.transform.origin = Vector3(Txt_Pos_[0],Txt_Pos_[1],Txt_Pos_[2]) & put the Q_Dmd_Txt Label3D in a Marker3D node so that the animation can be re-positioned should the text animation move outside of the hud boarder.
  4. Intruduced a new Q_Dmd_Txt.Hud1_Txt_message(“BallSaver”,0,“Action_Ani1”,[1,0,0],“Action_Ani_2”,“”,[0,0,0],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0).
    Action_Ani1 runs the Action_Ani_2 raise lower text effect that is managed by Q_Dmd_Txt_1_20 Label3D collections.
    The text argument that sits in the 4th position will also run the single Text_1_20.
  5. TxAction_==“Jump_Into_Position”: has replaced TxAction_==“Jump_Into_Centre”:
  6. All TxAction_ transform xyz can now be positioned using the 4th argument in the Q_Dmd_Txt.Hud1_Txt_message()
  7. Reversed the One_Off_RL/LR to reflect the correct root plan.
  8. Redesigned Hud1 to support the newly added Cntr_Scroll_left Q_text
    Q_Dmd_Txt.Hud1_Txt_message(“BALLSAVER”,0,“Cntr_Scroll_left”,[0,0,0],“”,“”,[0,0,0],“courbd.ttf”,0,[1,1,0.22],“Bloop_Snd”,0)
    #The text argument that sits in the 4th position will have no effect as it is managed by the code.
  9. Introduced a plunger lane trigger & Flipper rails
  10. Increased the tilt mechanism.
  11. Introduced ball saver flasher lights
  12. Shader codes added to shader library (not implemented yet & to be tested to confirm that they work)

Upload link below

YouTube Video link below

1 Like