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

11 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

2 Likes

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

Godot 4.4. Kick the Table Pottery Pinball 157 Upgrade

  1. In Q_Dmd_Txt_1_20 Marker3D Updated Scroll Marker to Text Collection.
  2. In Hud1 script func load_View1/2(): updated the config.set_value() method to remove the load fail error that occurred during the second load (bug fix).
  3. Updated Q_Dmd_Txt.Hud1_Txt_message “Jump_Into_Position” time to 50, & removed the “Jump_Into_Centre” Actions which did not get replaced during the last upgrade (critical bug fix)
  4. Introduced peg lane Roll-Over lights with score ranker feature.
  5. Removed fun EOB_Final() in players_manager script F12 reset Ball. func End_Game() runs func EOB_Final().
  6. Put Sound_Manager.stop_all_sounds() in func EOB_Final() in players_manager script. (Bug fix)

Dropbox upload & New YouTube Video link above

1 Like

For the “VisualPinBall Pacman” it looks and acts for late 1990s look. Good for retro players who want a throwback. The green packman is a bit slow so not so much challenge. Unless you add difficulty levels or speed levels. Overall nice

Please find enclosed the following GitHub link for all who want to study the Space Cadet Pinball game (Godot version 4.2.1) by Matthew S @sdggames :

20-in-30 / Pinball ¡ GitLab.

The rolling ball/object physics is looking good. It runs in Godot 4.4 after some modifications. Will study for the next Kick the Table Pottery Pinball upgrade.

You Tube Video Example

Thankyou Matthew

1 Like

To replicate 3D Space Cadet Pinball ‘Ball physics’ select project settings.
In physics 3D set the default gravity vector z to 0.4 & adjust Ball1 Rigidbody3D mass to 0.5 with a 1.2 gravity adjustment.
In Ball1 script increase the @onready var _mouse_hsens, mouse_vsens & the @onready var _force := to 2.5, else the mouse will not move ball1 during manual mouse ball control movements.
Other in game tweaks may also be needed.

Will add the above tweaks to the next upgrade with some of Space Cadet scripting ideas.

Godot 4.4. Kick the Table Pottery Pinball 158 Upgrade

  1. In script Q_Dmd_Text.gd under func Check_Queue(): added the code line below:-
    await get_tree().create_timer(.8).timeout #(time for the dims to update)
    if len(Txt)>0 and inplay==0: (.critical bug fix)

  2. In script Q_Dmd_Text & Q_Players_Score.gd removed duplicated text increments & added _Var to the Q_Dmd_Txt.Hud1_Txt_message line.

    func Hud1_Txt_message(_Txt,_TimeOn,_TxAction,_TxPos,_AniName, _Sprite,_SpritePos,_FontType,_FontSize,_Colour,_MusFile,_MusVol,_Var):

    Example
    In func Player1_score_Delay():
    Q_Dmd_Txt.Hud1_Txt_message(“Match “+str(1000),50,“Jump_Into_Position”,[-0.077,2.257,0.016],””,“”,[0,0,0],“courbd.ttf”,64,[1,1,0.22],“Bloop_Snd”,0,“Sort_HighScore”)

    func _physics_process(_delta) → void:
    when “Jump_Into_Position” timer expires the _Var in the text line will load the Q_Dmd_Txt.Empty variable.
    if Q_Dmd_Txt.Empty==“Sort_HighScore”:Sort_HighScore();Q_Dmd_Txt.Empty==“”

    Match_numberSpinTm now = randf_range(150, 300)

    Code reductions & bug fixes in script Q_Dmd_Text & Q_Players_Score.gd

  3. Playfield Collections rotation transform is now 0.

  4. In project settings in Physics 3D under default gravity vector changed the z .o value to .03 (which emulates a table slope) - increased the value for a faster ball roll.
    (Do not forget to increase the @onready var _mouse_hsens, mouse_vsens & the var _force in script Ball1.gd, else the mouse will not move ball1 during manual mouse ball control movements)

  5. In project settings in common under physics ticks per second increased value to 240 & under max physics steps per frame increased value to 32. (Flipper & mesh collision performance improvement)
    Thankyou Matthew for your Space Cadet Pinball Table contribution.
    Your Physics configuration resolved the flipper & mesh collision bug issues :slight_smile:

  6. In project settings in jolt physics 3D under velocity steps & position steps increased the value to 100.

  7. Reduced the collision mesh in the Flippers. (Flipper performance upgrade)
    (Do not forget to uncheck the sync to physics in the AnimatableBody3D to prevent the object from moving during tilt manoeuvres)
    (Charactorbody3D only utilized on this Table)

  8. Readjusted the ball tray & fixed the ball jam. (Bug fix)

  9. In script players_Manager.gd manufactured a control measure that allows the EOB/End_Game to complete the dim update after the F12 restart key has been pressed. (bug fix)

  10. Introduced press keyboard No1/2/3 ball reposition method. When ball1/2/3 is on the playfield the key press will reposition the ball to the plunger lane. (To be added to the user manual)

  11. In script Q_Players_Score.gd changed ‘func Player_Add_Hs_name()’ to ‘Player_Add_name’. (Gender Equality commitment) (bug fix)

  12. New objects added to the table.

  13. Note: await get_tree().create_timer dedicated to Q_Dmd_Txt script.

Jobs to be done

  1. put more time into the bungalow renovation project.
  2. more time to be added to the forensic science studies.
  3. prepare & carry out concert rehearsal drills for the first classical guitar recital recordings.
  4. above all continue with pinball table build.

download link below

1 Like

Godot 4.4. Kick the Table Pottery Pinball 159 Upgrade

  1. HingeJoint3D Plunger Lane Gate introduced. ( A great feature. Thankyou Godot) :slight_smile:

  2. In script Q_Playerscore.gd under ‘func _physics_process(_delta) → void:’ added

    if Q_Dmd_Txt.Empty==“0_PBPb”:
    Q_Dmd_Txt.Flush_Dmd_Queue()
    PBPb=0;Q_Dmd_Txt.Empty=“”

    used Q_Dmd_Txt.Hud1_Txt_message(“BonusPoints Ranked “+str(BonusPoints),0,“Jump_Into_Position”,[-0.077,2.257,0.016],””,“”,[0,0,0],“courbd.ttf”,64,[1,1,0.22],“”,0,“0_PBPb”)
    to run var ‘0_PBPb’. (dmd over stack bug fix)

  3. Lifted peg lane trigger1 from its covert position. (bug fix)

Download link below
Latest Vid updated & below

1 Like

Increasing the plunger gate mass to 0.1 will prevent the one way hinge joint from buckling. (proposed/anticipated bug fix).
Will implement fix for the next upgrade.

Godot 4.4. Kick the Table Pottery Pinball 160 Upgrade

  1. In script Q_Players_Score.gd under ‘func The_Last2_Digits():’ put ‘Q_Dmd_Txt.Flush_Dmd_Queue()’ under the ‘if Thelast2_Digiti==1:’ line statement, the Thelast2_Digitii now runs the greater than operator > : (bug fix)

  2. Increased the gate mass to 0.1 the one way hinge joint is now stronger. (bug fix)

  3. Introduced a spinner using the hinge joint which is very versatile. At first the ball did struggle with the spinner plate until the collision mesh3D was turned into a very thin pancake, from then onwards it was all sailing . (once again Thankyou Godot, its a great feature) :slight_smile:

  4. Loop circuit improvements made for the spinner & some changes made to the table design.

Dropbox link below
New Video linke below

2 Likes

Godot 4.4. Kick the Table Pottery Pinball 160 ammendments Upgrade

  1. Updated apron f3/4 collision mesh.
  2. Reconfigured the ball sound & added some more ball effects to the audio panel.

Video & Dropbox link below

Godot 4.4. Kick the Table Pottery Pinball 162 Upgrade

  1. Modified the Plunger Gate _Addforce.gd & throw object. (bug fix)
  2. Introduced a Targets Carousel to the raised playfield.
  3. Increased the mug & bowl mesh children for a better animation.
  4. More work done on the spinner. (Spinner functions upgraded)
  5. Reduced the EOB routine code lines in EOB_ Players_Manager.gd script.
  6. Redesigned the Node root topology so that @onready var targets = get_children() could be implemented which supported the above No6 code line reductions.
  7. Replaced some func _process with _physic_process.
  8. In the roation tgt script now only using RotaTgt.pause().
  9. Removed blender file to save on upload file size. glTF & fbx can be found in Godots scenes & mesh folder.
  10. Teapot mesh shatter animation introduced using:-
    func apply_center_force(body: RigidBody3D): body.apply_impulse(impulse_origin, direction * force_magnitude).
  11. In RectTgtNo8_2/3 script replaced the depreciated jump into centre with jump into position queue text method. (major Queue text bug fix)
  12. Updated all Bank drop target scripts to :-
    func _on_body_entered(body):
    if Isdropped==false:
    … if body.get_path() == ball1.get_path() or body.get_path() == ball2.get_path() or body.get_path() == ball3.get_path():
    (Hit object during reset major bug fix)
  13. Code reductions with extra comments added which will re jog the memory when revisiting code lines.
  14. In EOB players manager script increased the Game_restarti increment to 120, which hopefully will prevent the ball plunger reposition key 1/2/3 from interfering with the game ‘balls in play’ selection script lines whilst attempting to relocate ball to the plunger lane during ball gobble events . (bug fix)
  15. In Ball1 script increased _force var to 20 (bug fix)
  16. In some of the Bumper and rectangular targets replaced the Q_Dmd_Txt [0,0,0] “Jump_Into_Position” location values with [-0.077,2.257,0.016]. (bug fix)
  17. In Plunger_Lane_Trigger script corrected the Ball1_onplayfield = true error in body.get_path() == ball2/3.get_path():
    ball2 & 3 can now be relocated to the plunger lane using key2/3.(bug fix)
  18. Increased the Match_numberSpinTm = randf_range to (300, 600)

Dropbox link below
Update Video below

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

1 Like

Godot 4.4. Kick the Table Pottery Pinball 163 amendments Upgrade

1.In Bank_6 removed reset_delayb=true;reset_delayi=0 from EOB. Teapot now resets. (Bug fix)
2.In setting checked single thread’ (Bug fix) performance upgrade
3.In script EOB_Players_Manager under func End_Game() added var Game_restarti = 0. (bug fix)
4.In Q_Players_Script under func _physics_process(_delta) → void: & if Q_Dmd_Txt.Empty==“0_PBPb”:
removed Q_Dmd_Txt.Flush_Dmd_Queue(). (Bonus feature Major bug fix)

5.In Q_Players_Script under func BonusPoints_Ranker_(player_index):
added Bonus_Ranker_Text() which runs the below newly added mesh shader text wave Queue animation feature func
func Bonus_Ranker_Text():
Q_Dmd_Txt.Hud1_Txt_message(“BonusPoint 100 x”+str(BonusPoints_Ranker_(EOB_Manager.CurrentPlayer)),50,“Jump_Into_Position”,[-0.077,2.257,0.016],“”,“Ranker_Ani”,[-7.044,2.089,-0.093],“courbd.ttf”,64,[1,1,0.22],“Mus4”,-20,“”) #(_Txt,_TimeOn,_TxAction,_TxPos,_AniName,_Sprite,_SpritePos,_FontType,_FontSize,_Colour,_MusFile,_MusVol._Val)
Q_Dmd_Txt.Hud1_Txt_message(“BonusPoint Ranked”,2,“MeshText_Wave”,[-0.077,2.257,0.016],“”,“”,[0,0,0],“courbd.ttf”,16,[1,1,0.22],“”,-20,“”)
#(_TimeOn,_TxAction,_MusFile,_MusVol,_Var)
DMD.Dmd1(2,“Dmd_Flipbook1”,“”,-20,“”)

6.Shader driven Queue Dmd_Flipbook1 script dot matrix animation introduced :-
#(_TimeOn,_TxAction,_MusFile,_MusVol,_Var)
DMD.Dmd1(2,“Dmd_Flipbook1”,“”,-20,“”)

7.Shader driven MeshText_Wave animation added to Q_Dmd_Txt script :-
(_Txt,_TimeOn,_TxAction,_TxPos,_AniName,_Sprite,_SpritePos,_FontType,_FontSize,_Colour,_MusFile,_MusVol._Val)
Q_Dmd_Txt.Hud1_Txt_message(“BonusPoint Ranked”,2,“MeshText_Wave”,[-0.077,2.257,0.016],“”,“”,[0,0,0],“courbd.ttf”,16,[1,1,0.22],“”,-20,“”)

8.In Q_Dmd_Txt script under func Dmd_Actions() added “This does not exist” error debug report statement code line & also added ‘inplay=0’ in func Flush_Dmd_Queue() (which is a Flush_Dmd_Queue() Major bug fix)

9.In Q_Dmd_Txt & the Last 2Digit script changed func to _process(_delta: float) → void: (bug fix)

10.Updated all var ints, strings, floats & bools to static typing. Type is enforced at compile time which is safer, faster & with a better editor support.

11.The newly added screen Dmd_Shader can be positioned by firstly using the Keypad/PgUp/9 key. The DMD Sprite2D will also follow the mouse when it hovers over the Sprite2D or you can use the left/right mouse button / up & down arrows.
The Dmd_Shader sprie2D can be scales on the vector xy at the same time with the Keypad minus & plus keys. The x can be scaled separately with the keyboard PgUp & PgDn keys. The y vector can also be scaled with the keyboard Home & End Keys.
The second press of the Keypad/PgUp key will stop all movement & disconnect the mouse. The middle mouse button will also stop all key actions as it does with all other movement keys.

12.One more save Load & view option implemented. Now there is 3 for the screen Dmd_shader & Camera Hud mesh display.

13.Removal of some unused vars + save load naming conventions updated (bug fix)

14.In Ball script introduced a follow ball mesh & sprite image trailer.

15.In Ball script introduced func Ballcol_ani1()
which interacts with the imission_level & texture & colours.

16.In ball 1/2/3 increased the friction to 0.2 in the physics material menu for a better image rotation simulation

17.Ball 1/2/3 GPUParticle3D trailer introduced .

18.Introduced a Ball 1/2/3 fire shader mesh trailer that is set up to take special & canvas shaders, which can be loaded on the fly into the material slots using script.

19.In func Reset_Camera_control(): added $“../../Playfield collection/Targets/Tgt_Score_B1 - 6 & the spinner” ‘.rotation.x=self.rotation.x’
the table score & spray animation is now in a better visible position when the table angle is moving towards the vertical position.

21.Music Volume, Gamma correction, Vsync, window resolution & full screen option panals introduced.

22.Key binding selection panels for the Ball & Camera/Hud view controls introduced (more to be added during upgrades).

23.Re-structured the Hud Node Topology for the key binding settings & screen view resolution settings’.

25.In Ball1 script put :- ‘if ball_active:’ control measure in front of ‘apply_central_force(movement_direction * _force)’. (bug fix)

26.PlungerTip.BallonPlungerTip=false is now in func EOG():

27.Straigthened out the Bumper starburst animations. (bug fix)

28.Put a glass apron with image above Bank3/4.

29.In Button save 1, 2, & 3 changed the button mouse control mode to, button released, (bug fix) for Godot developers, when 'button pressed selected the enter key runs the mouse over func_on_pressed().

30.In Project Settings under Physics comment the max physics stops per frame values changed to 64

31.All load files in the camera, Dmd & Hud scripts now read if error != OK: Just in case a zero position is needed. If file not in existence the code will add a new file with default positions
(Bug fix)

32.Added two more collisions shapes to the carousel. (ball jam bug fix)

upgrade jobs to be done
on the fly load shader into material slot script to be introduced
Ubershader & Pooling to be studied (shader bug fixing & performance upgrades)

Updated Video & Dropbox link above.

1 Like