<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mission Pinball Framework &#8211; gill.nu</title>
	<atom:link href="https://gill.nu/tag/mission-pinball-framework/feed/" rel="self" type="application/rss+xml" />
	<link>https://gill.nu</link>
	<description></description>
	<lastBuildDate>Wed, 10 Sep 2025 12:30:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://gill.nu/wp-content/uploads/2025/09/cropped-icon-32x32.png</url>
	<title>Mission Pinball Framework &#8211; gill.nu</title>
	<link>https://gill.nu</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>clock_mpf</title>
		<link>https://gill.nu/2025/09/10/clock_mpf/</link>
					<comments>https://gill.nu/2025/09/10/clock_mpf/#respond</comments>
		
		<dc:creator><![CDATA[Johan Gill]]></dc:creator>
		<pubDate>Wed, 10 Sep 2025 12:25:58 +0000</pubDate>
				<category><![CDATA[Pinball]]></category>
		<category><![CDATA[clock_mpf]]></category>
		<category><![CDATA[English content]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Homebrew Pinball]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Mission Pinball Framework]]></category>
		<guid isPermaLink="false">https://gill.nu/?p=133</guid>

					<description><![CDATA[Mission Pinball Framework doesn&#8217;t have any native way to use time and dates. To get around the lack of it I did my own code so I could use time and date for high scores and status screen in game. It works great and I share the code I wrote on my github at clock_mpf. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mission Pinball Framework doesn&#8217;t have any native way to use time and dates. <br>To get around the lack of it I did my own code so I could use time and date for high scores and status screen in game.</p>



<p class="wp-block-paragraph">It works great and I share the code I wrote on my github at <a href="https://github.com/Pucksnok/clock_mpf/tree/main">clock_mpf</a>.</p>



<p class="wp-block-paragraph">clock_mpf runs as it&#8217;s own mode. I run it with game_mode: false so it can be run when my machine starts.<br>Just copy the files or code from GitHub and create a clock folder inside your modes folder where you put the folders/files and then add/activate the mode in your config.yaml (or whatever file you use).</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#example of modes: in config.yaml
modes:
  - clock #Dont forget to add me! </textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">#example of modes: in config.yaml</span></span>
<span class="line"><span style="color: #569CD6">modes</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">  - </span><span style="color: #CE9178">clock</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">#Dont forget to add me! </span></span></code></pre></div>



<p class="wp-block-paragraph">The GitHub code has some example how to use it in clock.yaml. <br>Here is how it&#8217;s built&#8230;</p>



<ol class="wp-block-list">
<li>When event mode_clock_started happens it first sets the time.</li>



<li>Event mode_clock_started starts a timer that loops and every time it completes with event timer_set_clock_time_complete it writes the time to the machine variable named time_variable.</li>



<li>Machine variable set_date is written to every time time_variable is saved using the event time_variable_saved.</li>



<li>You can always trigger set_date or set_clock with your own events.<br>Just use event_player (or some other player) and set_date or set_clock.</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#from clock.yaml

event_player:
    time_variable_saved: set_date #Set the date when time_variable is written.
    timer_set_clock_time_complete: set_clock #write time to set_clock when timer is complete.
    mode_clock_started: set_clock #At start of mode so it doesn't take 10 seconds (timers time) to set clock and date.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">#from clock.yaml</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">event_player</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">time_variable_saved</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">set_date</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">#Set the date when time_variable is written.</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">timer_set_clock_time_complete</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">set_clock</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">#write time to set_clock when timer is complete.</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">mode_clock_started</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">set_clock</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">#At start of mode so it doesn&#39;t take 10 seconds (timers time) to set clock and date.</span></span></code></pre></div>



<p class="wp-block-paragraph">set_date and set_clock writes date and time to machine variables named time_variable and date_variable. Use it in any way you want.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#from: clock.yaml
machine_vars:
    time_variable:
        value_type: str
        initial_value: banan
        persist: true      
    date_variable:
        value_type: str
        initial_value: banan
        persist: true     </textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">#from: clock.yaml</span></span>
<span class="line"><span style="color: #569CD6">machine_vars</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">time_variable</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">value_type</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">str</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">initial_value</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">banan</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">persist</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">true</span><span style="color: #D4D4D4">      </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">date_variable</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">value_type</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">str</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">initial_value</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">banan</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #569CD6">persist</span><span style="color: #D4D4D4">: </span><span style="color: #569CD6">true</span><span style="color: #D4D4D4">     </span></span></code></pre></div>



<p class="wp-block-paragraph">Questions? Make a comment.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gill.nu/2025/09/10/clock_mpf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to hide mouse cursor in Godot Media Controller</title>
		<link>https://gill.nu/2025/09/09/how-to-hide-mouse-cursor/</link>
					<comments>https://gill.nu/2025/09/09/how-to-hide-mouse-cursor/#respond</comments>
		
		<dc:creator><![CDATA[Johan Gill]]></dc:creator>
		<pubDate>Tue, 09 Sep 2025 20:29:04 +0000</pubDate>
				<category><![CDATA[Pinball]]></category>
		<category><![CDATA[English content]]></category>
		<category><![CDATA[Godot]]></category>
		<category><![CDATA[Homebrew Pinball]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Mission Pinball Framework]]></category>
		<guid isPermaLink="false">https://gill.nu/?p=62</guid>

					<description><![CDATA[Simple instruction how to hide mouse cursor in GMC aka Godot Media Center.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This is a repost of my instruction that originally were posted in July 2024 and hosted at GillPinball Atlassian Confluence.</em><br>Instruction is written for GMC/Godot Media Controller and MPF/Mission Pinball Framework (<a href="https://missionpinball.org/">https://missionpinball.org/</a>) but shouldn&#8217;t differ much if programing anything else in Godot.</p>



<ol class="wp-block-list">
<li>Load your MPFWindow scene in Godot.</li>



<li>Add any Child Node, I suggest you add a label.</li>



<li>Make the label hidden so it don&#8217;t show up in all your scenes.</li>



<li>Right click on your Label and choose Attach script. Create the gd-script.</li>



<li>Go to Script at the top or double click the script in the FileSystem (inside Godot).</li>



<li>Add a function like below&#8230;. if you have another node than Label the extends differs.</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">GDScript</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>extends Label

func _ready():
      Input.mouse_mode = Input.MOUSE_MODE_HIDDEN</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">extends</span><span style="color: #4EC9B0"> Label</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">func</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">_ready</span><span style="color: #D4D4D4">():</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #4EC9B0">Input</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">mouse_mode</span><span style="color: #D4D4D4"> = </span><span style="color: #4EC9B0">Input</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">MOUSE_MODE_HIDDEN</span></span></code></pre></div>
]]></content:encoded>
					
					<wfw:commentRss>https://gill.nu/2025/09/09/how-to-hide-mouse-cursor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
