evennia/docs/3.x/Components/Components-Overview.html
2023-12-21 00:12:31 +01:00

384 lines
No EOL
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Core Components &#8212; Evennia 3.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Portal And Server" href="Portal-And-Server.html" />
<link rel="prev" title="Tutorial for basic MUSH like game" href="../Howtos/Tutorial-for-basic-MUSH-like-game.html" />
</head><body>
<div class="admonition important">
<p class="first admonition-title">Note</p>
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="Portal-And-Server.html" title="Portal And Server"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../Howtos/Tutorial-for-basic-MUSH-like-game.html" title="Tutorial for basic MUSH like game"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 3.x</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Core Components</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Core Components</a><ul>
<li><a class="reference internal" href="#base-components">Base components</a></li>
<li><a class="reference internal" href="#commands">Commands</a></li>
<li><a class="reference internal" href="#utils-and-tools">Utils and tools</a></li>
<li><a class="reference internal" href="#web-components">Web components</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="../Howtos/Tutorial-for-basic-MUSH-like-game.html"
title="previous chapter">Tutorial for basic MUSH like game</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Portal-And-Server.html"
title="next chapter">Portal And Server</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/Components/Components-Overview.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section class="tex2jax_ignore mathjax_ignore" id="core-components">
<h1>Core Components<a class="headerlink" href="#core-components" title="Permalink to this headline"></a></h1>
<p>These are the building blocks out of which Evennia is built. This documentation is complementary to, and often goes deeper than, the doc-strings of each component in the <a class="reference internal" href="../Evennia-API.html"><span class="doc std std-doc">API</span></a>.</p>
<section id="base-components">
<h2>Base components<a class="headerlink" href="#base-components" title="Permalink to this headline"></a></h2>
<p>These are base pieces used to make an Evennia game. Most are long-lived and are persisted in the database.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Portal-And-Server.html">Portal And Server</a></li>
<li class="toctree-l1"><a class="reference internal" href="Sessions.html">Sessions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Sessions.html#working-with-sessions">Working with Sessions</a></li>
<li class="toctree-l2"><a class="reference internal" href="Sessions.html#portal-and-server-sessions">Portal and Server Sessions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Typeclasses.html">Typeclasses</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Typeclasses.html#difference-between-typeclasses-and-classes">Difference between typeclasses and classes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Typeclasses.html#working-with-typeclasses">Working with typeclasses</a></li>
<li class="toctree-l2"><a class="reference internal" href="Typeclasses.html#how-typeclasses-actually-work">How typeclasses actually work</a></li>
<li class="toctree-l2"><a class="reference internal" href="Typeclasses.html#will-i-run-out-of-dbrefs">Will I run out of dbrefs?</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Accounts.html">Accounts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Accounts.html#working-with-accounts">Working with Accounts</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Objects.html">Objects</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Objects.html#object">Object</a></li>
<li class="toctree-l2"><a class="reference internal" href="Objects.html#objectparent-adding-common-functionality">ObjectParent - Adding common functionality</a></li>
<li class="toctree-l2"><a class="reference internal" href="Objects.html#working-with-children-of-defaultobject">Working with children of DefaultObject</a></li>
<li class="toctree-l2"><a class="reference internal" href="Objects.html#changing-an-objects-appearance">Changing an Objects appearance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Characters.html">Characters</a></li>
<li class="toctree-l1"><a class="reference internal" href="Rooms.html">Rooms</a></li>
<li class="toctree-l1"><a class="reference internal" href="Exits.html">Exits</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Exits.html#exit-details">Exit details</a></li>
<li class="toctree-l2"><a class="reference internal" href="Exits.html#creating-exits-in-code">Creating Exits in code</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Scripts.html">Scripts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Scripts.html#working-with-scripts">Working with Scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="Scripts.html#using-global-scripts">Using GLOBAL_SCRIPTS</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Channels.html">Channels</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Channels.html#working-with-channels">Working with channels</a></li>
<li class="toctree-l2"><a class="reference internal" href="Channels.html#using-channels-in-code">Using channels in code</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Msg.html">Msg</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Msg.html#working-with-msg">Working with Msg</a></li>
<li class="toctree-l2"><a class="reference internal" href="Msg.html#tempmsg">TempMsg</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Attributes.html">Attributes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Attributes.html#working-with-attributes">Working with Attributes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Attributes.html#what-types-of-data-can-i-save-in-an-attribute">What types of data can I save in an Attribute?</a></li>
<li class="toctree-l2"><a class="reference internal" href="Attributes.html#in-memory-attributes-nattributes">In-memory Attributes (NAttributes)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Nicks.html">Nicks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Nicks.html#coding-with-nicks">Coding with nicks</a></li>
<li class="toctree-l2"><a class="reference internal" href="Nicks.html#advanced-note">Advanced note</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Tags.html">Tags</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Tags.html#working-with-tags">Working with Tags</a></li>
<li class="toctree-l2"><a class="reference internal" href="Tags.html#properties-of-tags-and-aliases-and-permissions">Properties of Tags (and Aliases and Permissions)</a></li>
<li class="toctree-l2"><a class="reference internal" href="Tags.html#aliases-and-permissions">Aliases and Permissions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Prototypes.html">Spawner and Prototypes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Prototypes.html#working-with-prototypes">Working with Prototypes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Prototypes.html#database-prototypes">Database prototypes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Prototypes.html#module-based-prototypes">Module-based prototypes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Prototypes.html#spawning">Spawning</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Help-System.html">Help System</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Help-System.html#working-with-three-types-of-help-entries">Working with three types of help entries</a></li>
<li class="toctree-l2"><a class="reference internal" href="Help-System.html#subtopics">Subtopics</a></li>
<li class="toctree-l2"><a class="reference internal" href="Help-System.html#technical-notes">Technical notes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Permissions.html">Permissions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Permissions.html#the-super-user">The super user</a></li>
<li class="toctree-l2"><a class="reference internal" href="Permissions.html#working-with-permissions">Working with Permissions</a></li>
<li class="toctree-l2"><a class="reference internal" href="Permissions.html#quelling">Quelling</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Locks.html">Locks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Locks.html#working-with-locks">Working with locks</a></li>
<li class="toctree-l2"><a class="reference internal" href="Locks.html#more-lock-definition-examples">More Lock definition examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="Locks.html#on-djangos-permission-system">On Djangos permission system</a></li>
</ul>
</li>
</ul>
</div>
</section>
<section id="commands">
<h2>Commands<a class="headerlink" href="#commands" title="Permalink to this headline"></a></h2>
<p>Evennias Command system handle everything sent to the server by the user.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Commands.html">Commands</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#defining-commands">Defining Commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#exiting-a-command">Exiting a command</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#pauses-in-commands">Pauses in commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#asking-for-user-input">Asking for user input</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#system-commands">System commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#dynamic-commands">Dynamic Commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#command-instances-are-re-used">Command instances are re-used</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#create-a-command-on-the-fly">Create a command on the fly</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#how-commands-actually-work">How commands actually work</a></li>
<li class="toctree-l2"><a class="reference internal" href="Commands.html#assorted-notes">Assorted notes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Command-Sets.html">Command Sets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Command-Sets.html#defining-command-sets">Defining Command Sets</a></li>
<li class="toctree-l2"><a class="reference internal" href="Command-Sets.html#command-sets-searched">Command Sets Searched</a></li>
<li class="toctree-l2"><a class="reference internal" href="Command-Sets.html#adding-and-merging-command-sets">Adding and Merging Command Sets</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Default-Commands.html">Default Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Batch-Processors.html">Batch Processors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Batch-Command-Processor.html">Batch Command Processor</a></li>
<li class="toctree-l2"><a class="reference internal" href="Batch-Code-Processor.html">Batch Code Processor</a></li>
<li class="toctree-l2"><a class="reference internal" href="Batch-Processors.html#a-note-on-file-encodings">A note on File Encodings</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Inputfuncs.html">Inputfuncs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Inputfuncs.html#adding-your-own-inputfuncs">Adding your own inputfuncs</a></li>
<li class="toctree-l2"><a class="reference internal" href="Inputfuncs.html#default-inputfuncs">Default inputfuncs</a></li>
</ul>
</li>
</ul>
</div>
</section>
<section id="utils-and-tools">
<h2>Utils and tools<a class="headerlink" href="#utils-and-tools" title="Permalink to this headline"></a></h2>
<p>Evennia provides a library of code resources to help the creation of a game.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Coding-Utils.html">Coding Utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#searching">Searching</a></li>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#create">Create</a></li>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#logging">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#time-utilities">Time Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#finding-classes">Finding Classes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Coding-Utils.html#text-utilities">Text utilities</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="EvEditor.html">EvEditor</a><ul>
<li class="toctree-l2"><a class="reference internal" href="EvEditor.html#launching-the-editor">Launching the editor</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvEditor.html#working-with-eveditor">Working with EvEditor</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="EvForm.html">EvForm</a></li>
<li class="toctree-l1"><a class="reference internal" href="EvMenu.html">EvMenu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#launching-the-menu">Launching the menu</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#the-menu-nodes">The Menu nodes</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#evmenu-templating-language">EvMenu templating language</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#asking-for-one-line-input">Asking for one-line input</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#the-list-node-decorator">The <code class="docutils literal notranslate"><span class="pre">&#64;list_node</span></code> decorator</a></li>
<li class="toctree-l2"><a class="reference internal" href="EvMenu.html#example-menus">Example Menus</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="EvMore.html">EvMore</a></li>
<li class="toctree-l1"><a class="reference internal" href="EvTable.html">EvTable</a></li>
<li class="toctree-l1"><a class="reference internal" href="FuncParser.html">FuncParser inline text parsing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="FuncParser.html#working-with-funcparser">Working with FuncParser</a></li>
<li class="toctree-l2"><a class="reference internal" href="FuncParser.html#defining-custom-callables">Defining custom callables</a></li>
<li class="toctree-l2"><a class="reference internal" href="FuncParser.html#default-funcparser-callables">Default funcparser callables</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="MonitorHandler.html">MonitorHandler</a><ul>
<li class="toctree-l2"><a class="reference internal" href="MonitorHandler.html#using-the-monitorhandler">Using the MonitorHandler</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="TickerHandler.html">TickerHandler</a><ul>
<li class="toctree-l2"><a class="reference internal" href="TickerHandler.html#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Signals.html">Signals</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Signals.html#working-with-signals">Working with Signals</a></li>
</ul>
</li>
</ul>
</div>
</section>
<section id="web-components">
<h2>Web components<a class="headerlink" href="#web-components" title="Permalink to this headline"></a></h2>
<p>Evennia is also its own webserver, with a website and in-browser webclient you can expand on.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Website.html">Game website</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Website.html#modifying-the-default-website">Modifying the default Website</a></li>
<li class="toctree-l2"><a class="reference internal" href="Website.html#examples-of-commom-web-changes">Examples of commom web changes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Website.html#adding-a-new-web-page">Adding a new web page</a></li>
<li class="toctree-l2"><a class="reference internal" href="Website.html#user-forms">User forms</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Webclient.html">Web Client</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Webclient.html#customizing-the-web-client">Customizing the web client</a></li>
<li class="toctree-l2"><a class="reference internal" href="Webclient.html#evennia-web-client-api-from-evennia-js">Evennia Web Client API (from evennia.js)</a></li>
<li class="toctree-l2"><a class="reference internal" href="Webclient.html#plugin-manager-api-from-webclient-gui-js">Plugin Manager API (from webclient_gui.js)</a></li>
<li class="toctree-l2"><a class="reference internal" href="Webclient.html#plugin-callbacks-api">Plugin callbacks API</a></li>
<li class="toctree-l2"><a class="reference internal" href="Webclient.html#writing-your-own-plugins">Writing your own Plugins</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Web-Admin.html">The Web Admin</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Web-Admin.html#usage">Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="Web-Admin.html#grant-others-access-to-the-admin">Grant others access to the admin</a></li>
<li class="toctree-l2"><a class="reference internal" href="Web-Admin.html#customizing-the-web-admin">Customizing the web admin</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Webserver.html">Webserver</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Webserver.html#basic-webserver-data-flow">Basic Webserver data flow</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Web-API.html">Evennia REST API</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Web-API.html#usage">Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="Web-API.html#customizing-the-api">Customizing the API</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Web-Bootstrap-Framework.html">Bootstrap frontend framework</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Web-Bootstrap-Framework.html#grid-system">Grid system</a></li>
<li class="toctree-l2"><a class="reference internal" href="Web-Bootstrap-Framework.html#general-styling-elements">General Styling elements</a></li>
<li class="toctree-l2"><a class="reference internal" href="Web-Bootstrap-Framework.html#further-reading">Further reading</a></li>
</ul>
</li>
</ul>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="Portal-And-Server.html" title="Portal And Server"
>next</a> |</li>
<li class="right" >
<a href="../Howtos/Tutorial-for-basic-MUSH-like-game.html" title="Tutorial for basic MUSH like game"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 3.x</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Core Components</a></li>
</ul>
</div>
<div class="admonition important">
<p class="first admonition-title">Note</p>
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>