<spanid="evennia-server-server"></span><h1>evennia.server.server<aclass="headerlink"href="#module-evennia.server.server"title="Permalink to this headline">¶</a></h1>
<p>This module implements the main Evennia server process, the core of the game
engine.</p>
<p>This module should be started with the ‘twistd’ executable since it sets up all
the networking features. (this is done automatically by
evennia/server/server_runner.py).</p>
<dlclass="py class">
<dtid="evennia.server.server.Evennia">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.server.</code><codeclass="sig-name descname">Evennia</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">application</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia"title="Permalink to this definition">¶</a></dt>
<p>The main Evennia server handler. This object sets up the database and
tracks and interlinks all the twisted network services that make up
evennia.</p>
<dlclass="py method">
<dtid="evennia.server.server.Evennia.__init__">
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">application</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Setup the server.</p>
<p>application - an instantiated Twisted application</p>
<codeclass="sig-name descname">sqlite3_prep</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.sqlite3_prep"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.sqlite3_prep"title="Permalink to this definition">¶</a></dt>
<dd><p>Optimize some SQLite stuff at startup since we
<codeclass="sig-name descname">update_defaults</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.update_defaults"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.update_defaults"title="Permalink to this definition">¶</a></dt>
<dd><p>We make sure to store the most important object defaults here, so
we can catch if they change and update them on-objects automatically.
This allows for changing default cmdset locations and default
typeclasses in the settings file and have them auto-update all
<codeclass="sig-name descname">run_initial_setup</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.run_initial_setup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.run_initial_setup"title="Permalink to this definition">¶</a></dt>
<dd><p>This is triggered by the amp protocol when the connection
to the portal has been established.
This attempts to run the initial_setup script of the server.
It returns if this is not the first time the server starts.
Once finished the last_initial_setup_step is set to ‘done’</p>
<codeclass="sig-name descname">create_default_channels</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.create_default_channels"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.create_default_channels"title="Permalink to this definition">¶</a></dt>
<dd><p>check so default channels exist on every restart, create if not.</p>
<codeclass="sig-name descname">run_init_hooks</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">mode</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.run_init_hooks"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.run_init_hooks"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by the amp client once receiving sync back from Portal</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>mode</strong> (<em>str</em>) – One of shutdown, reload or reset</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.server.server.Evennia.shutdown">
<codeclass="sig-name descname">shutdown</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">mode</span><spanclass="o">=</span><spanclass="default_value">'reload'</span></em>, <emclass="sig-param"><spanclass="n">_reactor_stopping</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>Shuts down the server from inside it.</p>
<dlclass="simple">
<dt>mode - sets the server restart mode.</dt><dd><ulclass="simple">
<li><p>‘reload’ - server restarts, no “persistent” scripts
are stopped, at_reload hooks called.</p></li>
<li><p>‘reset’ - server restarts, non-persistent scripts stopped,
at_shutdown hooks called but sessions will not
be disconnected.</p></li>
<li><p>‘shutdown’ - like reset, but server will not auto-restart.</p></li>
</ul>
</dd>
<dt>_reactor_stopping - this is set if server is stopped by a kill</dt><dd><p>command OR this method was already called
<codeclass="sig-name descname">get_info_dict</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.get_info_dict"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.get_info_dict"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_server_init</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_init"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_init"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called first when the server is starting, before any other hooks, regardless of how it’s starting.</p>
<codeclass="sig-name descname">at_server_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called every time the server starts up, regardless of
<codeclass="sig-name descname">at_server_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called just before a server is shut down, regardless
<codeclass="sig-name descname">at_server_reload_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_reload_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_reload_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when server starts back up after a reload.</p>
<codeclass="sig-name descname">at_post_portal_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">mode</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_post_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_post_portal_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called just after the portal has finished syncing back data to the server
after reconnecting.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>mode</strong> (<em>str</em>) – One of ‘reload’, ‘reset’ or ‘shutdown’.</p>
<codeclass="sig-name descname">at_server_reload_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_reload_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_reload_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only time the server stops before a reload.</p>
<codeclass="sig-name descname">at_server_cold_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_cold_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_cold_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when the server starts “cold”, i.e. after a
<codeclass="sig-name descname">at_server_cold_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_cold_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_cold_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when the server goes down due to a shutdown or reset.</p>