<spanid="evennia-scripts-scripts"></span><h1>evennia.scripts.scripts<aclass="headerlink"href="#module-evennia.scripts.scripts"title="Permalink to this headline">¶</a></h1>
<p>This module defines Scripts, out-of-character entities that can store
data both on themselves and on other objects while also having the
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.scripts.scripts.</code><codeclass="sig-name descname">DefaultScript</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript"title="Permalink to this definition">¶</a></dt>
<emclass="property">classmethod </em><codeclass="sig-name descname">create</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">key</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.create"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.create"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_script_creation"title="Permalink to this definition">¶</a></dt>
<dd><p>Only called once, when script is first created.</p>
<codeclass="sig-name descname">time_until_next_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.time_until_next_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.time_until_next_repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Get time until the script fires it <strong>at_repeat</strong> hook again.</p>
<codeclass="sig-name descname">remaining_repeats</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.remaining_repeats"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.remaining_repeats"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the number of returning repeats for limited Scripts.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><p>remaining (int or <strong>None</strong>) –</p>
<dlclass="simple">
<dt>The number of repeats</dt><dd><p>remaining until the Script stops. Returns <strong>None</strong>
<codeclass="sig-name descname">at_idmapper_flush</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_idmapper_flush"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_idmapper_flush"title="Permalink to this definition">¶</a></dt>
<dd><p>If we’re flushing this object, make sure the LoopingCall is gone too</p>
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">force_restart</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.start"title="Permalink to this definition">¶</a></dt>
<dd><p>Called every time the script is started (for persistent
scripts, this is usually once every server start)</p>
<codeclass="sig-name descname">stop</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">kill</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.stop"title="Permalink to this definition">¶</a></dt>
<dd><p>Called to stop the script from running. This also deletes the
<codeclass="sig-name descname">pause</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">manual_pause</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.pause"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.pause"title="Permalink to this definition">¶</a></dt>
<dd><p>This stops a running script and stores its active state.
It WILL NOT call the <strong>at_stop()</strong> hook.</p>
<codeclass="sig-name descname">unpause</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">manual_unpause</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.unpause"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.unpause"title="Permalink to this definition">¶</a></dt>
<dd><p>Restart a paused script. This WILL call the <strong>at_start()</strong> hook.</p>
<codeclass="sig-name descname">restart</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">interval</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">repeats</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">start_delay</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.restart"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.restart"title="Permalink to this definition">¶</a></dt>
<dd><p>Restarts an already existing/running Script from the
beginning, optionally using different settings. This will
first call the stop hooks, and then the start hooks again.
:param interval: Allows for changing the interval</p>
<blockquote>
<div><p>of the Script. Given in seconds. if <strong>None</strong>, will use the already stored interval.</p>
</div></blockquote>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>repeats</strong> (<em>int</em><em>, </em><em>optional</em>) – The number of repeats. If unset, will
use the previous setting.</p></li>
<li><p><strong>start_delay</strong> (<em>bool</em><em>, </em><em>optional</em>) – If we should wait <strong>interval</strong> seconds
before starting or not. If <strong>None</strong>, re-use the previous setting.</p></li>
<codeclass="sig-name descname">reset_callcount</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span><spanclass="o">=</span><spanclass="default_value">0</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.reset_callcount"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.reset_callcount"title="Permalink to this definition">¶</a></dt>
<dd><p>Reset the count of the number of calls done.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>value</strong> (<em>int</em><em>, </em><em>optional</em>) – The repeat value to reset to. Default
<codeclass="sig-name descname">force_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.force_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.force_repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Fire a premature triggering of the script callback. This
will reset the timer and count down repeats as if the script
<codeclass="sig-name descname">is_valid</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.is_valid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.is_valid"title="Permalink to this definition">¶</a></dt>
<dd><p>Is called to check if the script is valid to run at this time.
Should return a boolean. The method is assumed to collect all
<codeclass="sig-name descname">at_start</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_start"title="Permalink to this definition">¶</a></dt>
<dd><p>Called whenever the script is started, which for persistent
scripts is at least once every server start. It will also be
called when starting again after a pause (such as after a
<codeclass="sig-name descname">at_repeat</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Called repeatedly if this Script is set to repeat regularly.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>**kwargs</strong> (<em>dict</em>) – Arbitrary, optional arguments for users
<codeclass="sig-name descname">at_stop</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>Called whenever when it’s time for this script to stop (either
because is_valid returned False or it runs out of iterations)</p>
<dlclass="simple">
<dt>Args</dt><dd><dlclass="simple">
<dt><ahref="#id1"><spanclass="problematic"id="id2">**</span></a>kwargs (dict): Arbitrary, optional arguments for users</dt><dd><p>overriding the call (unused by default).</p>
<codeclass="sig-name descname">at_server_reload</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_server_reload"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_server_reload"title="Permalink to this definition">¶</a></dt>
<dd><p>This hook is called whenever the server is shutting down for
restart/reboot. If you want to, for example, save
non-persistent properties across a restart, this is the place
<codeclass="sig-name descname">at_server_shutdown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_server_shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.at_server_shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>This hook is called whenever the server is shutting down fully
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.scripts.scripts.DefaultScript'</em><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'DefaultScript'</em><aclass="headerlink"href="#evennia.scripts.scripts.DefaultScript.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.scripts.scripts.</code><codeclass="sig-name descname">DoNothing</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DoNothing"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#DoNothing.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing.at_script_creation"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.scripts.scripts.DoNothing'</em><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'DoNothing'</em><aclass="headerlink"href="#evennia.scripts.scripts.DoNothing.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.scripts.scripts.</code><codeclass="sig-name descname">Store</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#Store"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.Store"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/scripts/scripts.html#Store.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.scripts.scripts.Store.at_script_creation"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.scripts.scripts.Store.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.scripts.scripts.Store.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.scripts.scripts.Store'</em><aclass="headerlink"href="#evennia.scripts.scripts.Store.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'Store'</em><aclass="headerlink"href="#evennia.scripts.scripts.Store.typename"title="Permalink to this definition">¶</a></dt>