ball_save exact (!) behavior #168
Replies: 4 comments
-
You would need to extend code for this. Could even be worth PR for others that might want this.Today the timer starts, and that is it. What you would want is a new parameter of restart_timer_on_drain. Then when a ball is saved if that is true, we would restart the timer. Otherwise normal function that would keep the timer running.Sent from my iPhoneOn Apr 27, 2025, at 2:54 AM, worldpeace-germany ***@***.***> wrote:
Hello,
I want to configure ball_save for the situation that ball drains too quickly after the start of the ball. I am basically using the example config from here https://missionpinball.org/latest/config/ball_saves/ with the exception that balls_to_save is set to 3. With these settings I have a total time for ball saves of 12s (standard plus grace period).
My observation of the behavior is the following:
I eject the very first ball, timer starts to run.
Ball drains after 1s, I get a ball save and eject the second ball (due to ball save of course technically still first ball)
Ball drains after 1s again (total timer is now at 2s), again ball is saved
Ball drains after 1s again (total timer is now at 3s), again ball is saved
Ball drains after 1s again (total timer is now at 4s), ball is not saved since I configured a maximum of 3 balls. Technically ball number 2 starts now
So far so good. Now the same situation as above, but that the ball doesn't drain after 1s but after 10s
I eject the very first ball, timer starts to run.
Ball drains after 10s, I get a ball save and eject the second ball (due to ball save of course technically still first ball)
Ball drains after 10s again (total timer is now at 20s), ball is not saved
Is that the correct behavior? I would have expected that this ball is still being saved, because I have 3 ball saves configured and after that ball is being ejected I am within the 12s time limit. How can I achieve a behavior that 3 balls are being saved, but the 12s timer starts again with each eject of the previous saved ball?
Anyone an idea?
Thanks!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Thanks for the quick response, appreciate it. I might look in the future in this, first I need to finish my other PRs. But if you have some information where in the code the timer is being handled, then I have an easier start when I look into it. Feel free to post some relevant code lines if you know them out of the top of your head - if not don't worry too much then I will try to find it myself. |
Beta Was this translation helpful? Give feedback.
-
You could use a external timer to disable your ball save instead of the "ball save timer". This way you could have a ball saving event to restart your timer if the ball drains, so your 12seconds start again... look for "ball_save_yourballsave_saving_ball" or something like that in your log. After 3 times your ball save will disable as per your ball save setup or when your external timer completes and disables your ball save. Bit like the below. frenzysave: |
Beta Was this translation helpful? Give feedback.
-
As Ben mentioned, using your own timer is the "work around". In devices/ball_save find the method _ball_drain_while_active This would need to either restart the timer (method near the top) by modifying that code. Or adding a new method to reset timer, and update the delayed callbacks for hurry up, grace, and disable. Depends on how deep you want to go and if you think this is a feature someone else might want to if yes, a PR is great. If not, then use standard timer to create your own in YAML. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I want to configure
ball_save
for the situation that ball drains too quickly after the start of the ball. I am basically using the example config from here https://missionpinball.org/latest/config/ball_saves/ with the exception thatballs_to_save
is set to 3. With these settings I have a total time for ball saves of 12s (standard plus grace period).My observation of the behavior is the following:
So far so good. Now the same situation as above, but that the ball doesn't drain after 1s but after 10s
Is that the correct behavior? I would have expected that this ball is still being saved, because I have 3 ball saves configured and after that ball is being ejected I am within the 12s time limit. How can I achieve a behavior that 3 balls are being saved, but the 12s timer starts again with each eject of the previous saved ball?
Anyone an idea?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions