From 7645dae2cca80a9fb3a1595ffa0422c9f97ce426 Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
Sometimes, it is easier to top-level classify traits, such as stats, skills, or other categories of traits you want to handle independantly of each other. Here is an example showing an example on the object typeclass, expanding on the first installation example:
+# mygame/typeclasses/objects.py
+
+from evennia import DefaultCharacter
+from evennia.utils import lazy_property
+from evennia.contrib.rpg.traits import TraitHandler
+
+# ...
+
+class Character(DefaultCharacter):
+ ...
+ @lazy_property
+ def traits(self):
+ # this adds the handler as .traits
+ return TraitHandler(self)
+
+ @lazy_property
+ def stats(self):
+ # this adds the handler as .stats
+ return TraitHandler(self, db_attribute_key="stats")
+
+ @lazy_property
+ def skills(self):
+ # this adds the handler as .skills
+ return TraitHandler(self, db_attribute_key="skills")
+
+
+ def at_object_creation(self):
+ # (or wherever you want)
+ self.stats.add("str", "Strength", trait_type="static", base=10, mod=2)
+ self.traits.add("hp", "Health", trait_type="gauge", min=0, max=100)
+ self.skills.add("hunting", "Hunting Skill", trait_type="counter",
+ base=10, mod=1, min=0, max=100)
+This document page is generated from evennia/contrib/rpg/traits/README.md. Changes to this
file will be overwritten, so edit that file rather than this one.
aliases = ['@type', '@parent', '@update', '@typeclasses', '@swap']¶aliases = ['@parent', '@typeclasses', '@swap', '@update', '@type']¶
search_index_entry = {'aliases': '@type @parent @update @typeclasses @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type parent update typeclasses swap', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶search_index_entry = {'aliases': '@parent @typeclasses @swap @update @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass parent typeclasses swap update type', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
aliases = ['@exam', '@ex']¶aliases = ['@ex', '@exam']¶
search_index_entry = {'aliases': '@exam @ex', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine exam ex', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine ex exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶
aliases = ['nicks', 'nickname']¶aliases = ['nickname', 'nicks']¶
search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶
aliases = [':', 'emote']¶aliases = ['emote', ':']¶
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
aliases = ['@task', '@delays']¶aliases = ['@delays', '@task']¶
search_index_entry = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks task delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶search_index_entry = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks delays task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶
Test the batch processor.
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpsh6_juqk/67cc2cfd4fb705b21a5770bf31a3cd33586407f1/evennia/contrib/tutorials/red_button/red_button.py'>¶
aliases = ['@calls', '@callbacks', '@callback']¶aliases = ['@callbacks', '@callback', '@calls']¶
search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callbacks callback', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶search_index_entry = {'aliases': '@callbacks @callback @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callbacks callback calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
aliases = ['aliaschan', 'chanalias']¶aliases = ['chanalias', 'aliaschan']¶
search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶
aliases = ['delchanalias', 'delaliaschan']¶aliases = ['delaliaschan', 'delchanalias']¶
search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delchanalias delaliaschan', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}¶search_index_entry = {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delaliaschan delchanalias', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}¶
aliases = ['abort', 'q', 'quit', 'chicken out']¶aliases = ['chicken out', 'abort', 'quit', 'q']¶
search_index_entry = {'aliases': 'abort q quit chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort q quit chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶search_index_entry = {'aliases': 'chicken out abort quit q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out abort quit q', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶
aliases = [';', 'shout', 'whisper']¶aliases = ['shout', 'whisper', ';']¶
search_index_entry = {'aliases': '; shout whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' ; shout whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶search_index_entry = {'aliases': 'shout whisper ;', 'category': 'general', 'key': 'say', 'no_prefix': ' shout whisper ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶
aliases = ['e', 'ex', 'examine', 'unfocus']¶aliases = ['ex', 'e', 'examine', 'unfocus']¶
search_index_entry = {'aliases': 'e ex examine unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' e ex examine unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶search_index_entry = {'aliases': 'ex e examine unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex e examine unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶
aliases = ['inv', 'inventory', 'give', 'i']¶aliases = ['inv', 'give', 'inventory', 'i']¶
search_index_entry = {'aliases': 'inv inventory give i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv inventory give i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶search_index_entry = {'aliases': 'inv give inventory i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give inventory i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶
aliases = ['@dig', '@open']¶aliases = ['@open', '@dig']¶
search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶
aliases = ['forget', 'recognize']¶aliases = ['recognize', 'forget']¶
search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' forget recognize', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}¶search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'no_prefix': ' recognize forget', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}¶
aliases = ['push', 'press', 'press button']¶
search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['break lid', 'smash', 'smash lid']¶
search_index_entry = {'aliases': 'break lid smash smash lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash smash lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}¶
aliases = ['push', 'press', 'press button']¶
search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['ex', 'listen', 'examine', 'l', 'get', 'feel']¶
search_index_entry = {'aliases': 'ex listen examine l get feel', 'category': 'general', 'key': 'look', 'no_prefix': ' ex listen examine l get feel', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}¶
aliases = ['burn', 'light']¶aliases = ['light', 'burn']¶
search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶
aliases = ['press button', 'button', 'push button']¶aliases = ['button', 'push button', 'press button']¶
search_index_entry = {'aliases': 'press button button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' press button button push button', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'button push button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button push button press button', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['fight', 'slash', 'parry', 'kill', 'stab', 'pierce', 'thrust', 'chop', 'bash', 'defend', 'hit']¶aliases = ['kill', 'chop', 'fight', 'stab', 'thrust', 'pierce', 'slash', 'bash', 'defend', 'hit', 'parry']¶
search_index_entry = {'aliases': 'fight slash parry kill stab pierce thrust chop bash defend hit', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' fight slash parry kill stab pierce thrust chop bash defend hit', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶search_index_entry = {'aliases': 'kill chop fight stab thrust pierce slash bash defend hit parry', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' kill chop fight stab thrust pierce slash bash defend hit parry', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶
aliases = ['fiddle', 'feel around', 'search', 'feel', 'l']¶aliases = ['l', 'search', 'feel', 'feel around', 'fiddle']¶
search_index_entry = {'aliases': 'fiddle feel around search feel l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle feel around search feel l', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶search_index_entry = {'aliases': 'l search feel feel around fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l search feel feel around fiddle', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶
directory = '/tmp/tmp_q3_mu7h/74d470a4f64be6dd64ff66fadce8ba5aceb15af7/evennia'¶directory = '/tmp/tmpsh6_juqk/67cc2cfd4fb705b21a5770bf31a3cd33586407f1/evennia'¶
directory = '/tmp/tmp_q3_mu7h/74d470a4f64be6dd64ff66fadce8ba5aceb15af7/evennia/game_template'¶directory = '/tmp/tmpsh6_juqk/67cc2cfd4fb705b21a5770bf31a3cd33586407f1/evennia/game_template'¶
aliases = ['::', ':h', ':r', ':uu', ':u', ':I', ':=', ':DD', ':y', ':x', ':q!', ':wq', ':j', ':::', ':dw', ':', ':s', ':dd', ':fi', ':>', ':UU', ':A', ':i', ':S', ':echo', ':f', ':q', ':w', ':p', ':fd', ':<', ':!']¶aliases = [':dw', ':::', ':A', ':fi', ':f', ':y', ':DD', ':>', ':dd', ':s', ':r', ':', ':u', ':h', ':uu', ':q', ':q!', ':x', ':I', ':w', ':S', ':UU', ':j', ':fd', ':!', ':i', '::', ':<', ':p', ':echo', ':=', ':wq']¶
search_index_entry = {'aliases': ':: :h :r :uu :u :I := :DD :y :x :q! :wq :j ::: :dw : :s :dd :fi :> :UU :A :i :S :echo :f :q :w :p :fd :< :!', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :: :h :r :uu :u :I := :DD :y :x :q! :wq :j ::: :dw : :s :dd :fi :> :UU :A :i :S :echo :f :q :w :p :fd :< :!', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':dw ::: :A :fi :f :y :DD :> :dd :s :r : :u :h :uu :q :q! :x :I :w :S :UU :j :fd :! :i :: :< :p :echo := :wq', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :dw ::: :A :fi :f :y :DD :> :dd :s :r : :u :h :uu :q :q! :x :I :w :S :UU :j :fd :! :i :: :< :p :echo := :wq', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['abort', 'no', 'yes', 'y', 'a', 'n', '__nomatch_command']¶
search_index_entry = {'aliases': 'abort no yes y a n __nomatch_command', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort no yes y a n __nomatch_command', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
aliases = ['next', 'previous', 'e', 'p', 'n', 'a', 'quit', 'abort', 'top', 't', 'end', 'q']¶aliases = ['next', 'p', 'abort', 't', 'a', 'previous', 'q', 'n', 'top', 'quit', 'end', 'e']¶
search_index_entry = {'aliases': 'next previous e p n a quit abort top t end q', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' next previous e p n a quit abort top t end q', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶search_index_entry = {'aliases': 'next p abort t a previous q n top quit end e', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' next p abort t a previous q n top quit end e', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶
sEL&o3XAyJ3YPuNlPc_p
z0mRXp*2C|Q2~)M!`r<~TYI=O5=A9?|f$Fg0Uyj*ZtUg9u0_xpFpPX3%kQdc|RE3?2
zwBG}X5%Vn~@;4$w=|B|Ud}j241+;I7Q|Op(I17b`01Uf?aMe{J+8yfs_ET@(6hyi
zrDQ#c_noh>OjB*_&Fh7olM@1<{-omqj@lu_&6MfEWbdj8MONz2SfV&8QO8e62!MXe
z(}N%Aw2|(MYDKD>s;%EWe@AHoBvL;M`78yMX)>^vN0ae&BO`>sZ}ndJ1ba-fc9%I?gMk4KyaMSmoG2nCZ!}{W(GBX@g-{rbI1#CAxBt?4b*=Qc!I3(i>yQ
z&BfJ#ldMi<*bC>
zVG5pxH-b%QB62^eUn9!aeWhY%N`D=$?v%1mfpMuYOj`wy0NO+(!RZa92ih>zpX&&>
zltH}^6s1>6Sl5Qw(Ig_JPjeI~blc~
D@m8v!2aBV
zf0ip?kHRzb=U^gF^K=Yo@FPQ-v!?#z_rFi-<6(vhBO~6!v5+h$EM!20s{B&$BK@50
zpZf<+=h|}<8)u|oIa3rAKcL|6*fS#ve5m3(CF@Gdnv5tq7s%JRtUR-584y&!E(VyB
zBC2v%_F@YF_Re^