[docs]def default(session, cmdname, *args, **kwargs):
diff --git a/docs/latest/_sources/Coding/Changelog.md.txt b/docs/latest/_sources/Coding/Changelog.md.txt
index 4e7b5209c4..e7bd28ba94 100644
--- a/docs/latest/_sources/Coding/Changelog.md.txt
+++ b/docs/latest/_sources/Coding/Changelog.md.txt
@@ -5,6 +5,9 @@
Updated dependencies: Django >5.1 (<5,2), Twisted >24 (<25).
Python versions: 3.11, 3.12, 3.13.
+This upgrade requires running `evennia migrate` on your existing database
+(ignore any prompts to run `evennia makemigrations`).
+
- Feat (backwards incompatible): RUN MIGRATIONS (`evennia migrate`): Now requiring Django 5.1 (Griatch)
- Feat (backwards incompatible): Drop support and testing for Python 3.10 (Griatch)
- [Feat][pull3719]: Support Python 3.13. (0xDEADFED5)
@@ -29,14 +32,17 @@ Python versions: 3.11, 3.12, 3.13.
a performance hit for loading cmdsets in rooms with a lot of objects (InspectorCaracal)
- [Fix][issue3688]: Made TutorialWorld possible to build cleanly without being a superuser (Griatch)
- [Fix][issue3687]: Fixed batchcommand/interactive with developer perms (Griatch)
-- [Fix][issue3723]: Bug in `ingame-map-display` contrib when using ordinal alises (aMiss-aWry)
-- [Fix][issue3726]: Fix Twisted v25 issue with returnValue()
-- [Fix][issue3729]: Godot client text2bbcode mxp link conversion error (ChrisLR)
-- [Fix][issue3737]: The `evennia --gamedir` command didn't properly set the alt gamedir (Russel-Jones)
-- [Fix][issue3739]: Fixing f-string in account.py for i18n (JohnFi)
-- [Fix][issue3743]: Log full stack trace on failed object creation (aMiss-aWry)
+- [Fix][pull3723]: Bug in `ingame-map-display` contrib when using ordinal alises (aMiss-aWry)
+- [Fix][pull3726]: Fix Twisted v25 issue with returnValue()
+- [Fix][pull3729]: Godot client text2bbcode mxp link conversion error (ChrisLR)
+- [Fix][pull3737]: The `evennia --gamedir` command didn't properly set the alt gamedir (Russel-Jones)
+- [Fix][pull3739]: Fixing f-string in account.py for i18n (JohnFi)
+- [Fix][pull3744]: Fix for format strings not getting picked up in i18n (JohnFi)
+- [Fix][pull3743]: Log full stack trace on failed object creation (aMiss-aWry)
+- [Fix][pull3747]: TutorialWorld bridge-room didn't correctly randomize weather effects (SpyrosRoum)
- Fix: `options` setting `NOPROMPTGOAHEAD` was not possible to set (Griatch)
- Fix: Make `\\` properly preserve one backlash in funcparser (Griatch)
+- Fix: The testing 'echo' inputfunc didn't work correctly; now returns both args/kwargs (Griatch)
- Fix: When an object was used as an On-Demand Task's category, and that object was then deleted,
it caused an OnDemandHandler save error on reload. Will now clean up on save. (Griatch)
used as the task's category (Griatch)
@@ -61,8 +67,10 @@ Python versions: 3.11, 3.12, 3.13.
[pull3737]: https://github.com/evennia/evennia/pull/3737
[pull3739]: https://github.com/evennia/evennia/pull/3739
[pull3743]: https://github.com/evennia/evennia/pull/3743
+[pull3744]: https://github.com/evennia/evennia/pull/3744
+[pull3747]: https://github.com/evennia/evennia/pull/3747
[issue3688]: https://github.com/evennia/evennia/issues/3688
-[issue3688]: https://github.com/evennia/evennia/issues/3687
+[issue3687]: https://github.com/evennia/evennia/issues/3687
@@ -197,7 +205,6 @@ did not add it to the handler's object (Griatch)
[issue3620]: https://github.com/evennia/evennia/issues/3620
[issue3616]: https://github.com/evennia/evennia/issues/3616
[pull3595]: https://github.com/evennia/evennia/pull/3595
-[pull3595]: https://github.com/evennia/evennia/pull/3595
[pull3533]: https://github.com/evennia/evennia/pull/3533
[pull3594]: https://github.com/evennia/evennia/pull/3594
[pull3592]: https://github.com/evennia/evennia/pull/3592
@@ -230,15 +237,12 @@ underline reset, italic/reset and strikethrough/reset (0xDEADFED5)
of local search on multimatch (InspectorCaracal)
- [Fix][pull3585]: `TagCmd.switch_options` was misnamed (erratic-pattern)
- [Fix][pull3580]: Fix typo that made `find/loc` show the wrong dbref in result (erratic-pattern)
-- [Fix][pull3571]: Issue disambiguating between certain partial multimatches
- (InspectorCaracal)
- [Fix][pull3589]: Fix regex escaping in `utils.py` for future Python versions (hhsiao)
- [Docs]: Add True-color description for Colors documentation (0xDEADFED5)
- [Docs]: Doc fixes (Griatch, InspectorCaracal, 0xDEADFED5)
[pull3585]: https://github.com/evennia/evennia/pull/3585
[pull3580]: https://github.com/evennia/evennia/pull/3580
-[pull3571]: https://github.com/evennia/evennia/pull/3571
[pull3586]: https://github.com/evennia/evennia/pull/3586
[pull3550]: https://github.com/evennia/evennia/pull/3550
[pull3531]: https://github.com/evennia/evennia/pull/3531
@@ -1335,7 +1339,7 @@ without arguments starts a full interactive Python console.
- `VALIDATOR_FUNC_MODULES` - (general) text validator functions, for verifying an input
is on a specific form.
-### Utils
+### Utilities
- `evennia` launcher now fully handles all django-admin commands, like running tests in parallel.
- `evennia.utils.create.account` now also takes `tags` and `attrs` keywords.
@@ -1358,7 +1362,7 @@ without arguments starts a full interactive Python console.
- Option Classes added to make storing user-options easier and smoother.
- `evennia.VALIDATOR_CONTAINER` and `evennia.OPTION_CONTAINER` added to load these.
-### Contribs
+### New Contribs
- Evscaperoom - a full puzzle engine for making multiplayer escape rooms in Evennia. Used to make
the entry for the MUD-Coder's Guild's 2019 Game Jam with the theme "One Room", where it ranked #1.
@@ -1482,7 +1486,7 @@ without arguments starts a full interactive Python console.
- Removed the enforcing of `MAX_NR_CHARACTERS=1` for `MULTISESSION_MODE` `0` and `1` by default.
- Add `evennia.utils.logger.log_sec` for logging security-related messages (marked SS in log).
-### Contribs
+### More Contribs
- `Auditing` (Johnny): Log and filter server input/output for security purposes
- `Build Menu` (vincent-lg): New @edit command to edit object properties in a menu.
diff --git a/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt b/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt
index e4aee29fe6..91ff51f7ce 100644
--- a/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt
+++ b/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt
@@ -1,5 +1,9 @@
# Game Quests
+```{warning}
+This tutorial lesson is not yet complete, and has some serious bugs in its implementation. So use this as a reference, but the code is not yet ready to use directly.
+```
+
A _quest_ is a common feature of games. From classic fetch-quests like retrieving 10 flowers to complex quest chains involving drama and intrigue, quests need to be properly tracked in our game.
A quest follows a specific development:
diff --git a/docs/latest/api/evennia.commands.default.account.html b/docs/latest/api/evennia.commands.default.account.html
index 5a1ec180e3..d67c2d984f 100644
--- a/docs/latest/api/evennia.commands.default.account.html
+++ b/docs/latest/api/evennia.commands.default.account.html
@@ -147,7 +147,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -178,7 +178,7 @@ method. Otherwise all text will be returned to all connected sessions.
-
-
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
diff --git a/docs/latest/api/evennia.commands.default.batchprocess.html b/docs/latest/api/evennia.commands.default.batchprocess.html
index 5a7b88c2de..9b80e97757 100644
--- a/docs/latest/api/evennia.commands.default.batchprocess.html
+++ b/docs/latest/api/evennia.commands.default.batchprocess.html
@@ -152,7 +152,7 @@ skipping, reloading etc.
-
-
aliases = ['batchcmd', 'batchcommand']
+aliases = ['batchcommand', 'batchcmd']
@@ -183,7 +183,7 @@ skipping, reloading etc.
-
-
search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
+search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
diff --git a/docs/latest/api/evennia.commands.default.building.html b/docs/latest/api/evennia.commands.default.building.html
index f38ad89f41..72e1d9dc89 100644
--- a/docs/latest/api/evennia.commands.default.building.html
+++ b/docs/latest/api/evennia.commands.default.building.html
@@ -651,7 +651,7 @@ You can specify the /force switch to bypass this confirmation.
-
-
aliases = ['@del', '@delete']
+aliases = ['@delete', '@del']
@@ -692,7 +692,7 @@ You can specify the /force switch to bypass this confirmation.
-
-
search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
+search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
@@ -1419,7 +1419,7 @@ server settings.
-
-
aliases = ['@parent', '@type', '@swap', '@typeclasses', '@update']
+aliases = ['@typeclasses', '@parent', '@update', '@swap', '@type']
@@ -1450,7 +1450,7 @@ server settings.
-
-
search_index_entry = {'aliases': '@parent @type @swap @typeclasses @update', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass parent type swap typeclasses update', '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': '@typeclasses @parent @update @swap @type', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass typeclasses parent update swap 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 "}
@@ -1912,7 +1912,7 @@ one is given.
-
-
aliases = ['@search', '@locate']
+aliases = ['@locate', '@search']
@@ -1943,7 +1943,7 @@ one is given.
-
-
search_index_entry = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find search locate', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}
+search_index_entry = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find locate search', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}
diff --git a/docs/latest/api/evennia.commands.default.general.html b/docs/latest/api/evennia.commands.default.general.html
index d1a83bbae2..365d0ee238 100644
--- a/docs/latest/api/evennia.commands.default.general.html
+++ b/docs/latest/api/evennia.commands.default.general.html
@@ -189,7 +189,7 @@ look
*<account&g
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -220,7 +220,7 @@ look *<account&g
-
-
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
@@ -786,7 +786,7 @@ which permission groups you are a member of.
-
-
aliases = ['hierarchy', 'groups']
+aliases = ['groups', 'hierarchy']
@@ -817,7 +817,7 @@ which permission groups you are a member of.
-
-
search_index_entry = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'no_prefix': ' hierarchy groups', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}
+search_index_entry = {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', 'no_prefix': ' groups hierarchy', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}
diff --git a/docs/latest/api/evennia.commands.default.system.html b/docs/latest/api/evennia.commands.default.system.html
index 196b1c1736..d02b7cfcc2 100644
--- a/docs/latest/api/evennia.commands.default.system.html
+++ b/docs/latest/api/evennia.commands.default.system.html
@@ -697,7 +697,7 @@ See
|luhttps://ww
-
-
aliases = ['@delays', '@task']
+aliases = ['@task', '@delays']
@@ -743,7 +743,7 @@ to all the variables defined therein.
-
-
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 "}
+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 "}
diff --git a/docs/latest/api/evennia.commands.default.tests.html b/docs/latest/api/evennia.commands.default.tests.html
index 5533a75d25..ed45e9c771 100644
--- a/docs/latest/api/evennia.commands.default.tests.html
+++ b/docs/latest/api/evennia.commands.default.tests.html
@@ -985,7 +985,7 @@ main test suite started with
Test the batch processor.
-
-
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpfy5vrsmk/e96efb4f3dfd57f18e316679d422c375f4c7e7a5/evennia/contrib/tutorials/red_button/red_button.py'>
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpgxptasqd/5b2963fc46efd1acfc1ad890e3b745ec9ba62729/evennia/contrib/tutorials/red_button/red_button.py'>
diff --git a/docs/latest/api/evennia.commands.default.unloggedin.html b/docs/latest/api/evennia.commands.default.unloggedin.html
index 1ef1e3617f..07288e20b0 100644
--- a/docs/latest/api/evennia.commands.default.unloggedin.html
+++ b/docs/latest/api/evennia.commands.default.unloggedin.html
@@ -136,7 +136,7 @@ connect “account name” “pass word”
-
-
aliases = ['con', 'conn', 'co']
+aliases = ['co', 'con', 'conn']
@@ -171,7 +171,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -195,7 +195,7 @@ create “account name” “pass word”
-
-
aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -232,7 +232,7 @@ create “account name” “pass word”
-
-
search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -256,7 +256,7 @@ version is a bit more complicated.
-
-
aliases = ['qu', 'q']
+aliases = ['q', 'qu']
@@ -282,7 +282,7 @@ version is a bit more complicated.
-
-
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
+search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
@@ -355,7 +355,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -381,7 +381,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html
index b94c95d71a..53a4847e67 100644
--- a/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html
+++ b/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html
@@ -153,7 +153,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
-
-
aliases = ['con', 'conn', 'co']
+aliases = ['co', 'con', 'conn']
@@ -183,7 +183,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
+search_index_entry = {'aliases': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
@@ -205,7 +205,7 @@ there is no object yet before the account has logged in)
-
-
aliases = ['cre', 'cr']
+aliases = ['cr', 'cre']
@@ -247,7 +247,7 @@ name enclosed in quotes:
-
-
search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
+search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
@@ -266,7 +266,7 @@ version is a bit more complicated.
-
-
aliases = ['qu', 'q']
+aliases = ['q', 'qu']
@@ -292,7 +292,7 @@ version is a bit more complicated.
-
-
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
+search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}
@@ -355,7 +355,7 @@ for simplicity. It shows a pane of info.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -381,7 +381,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html b/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html
index 3371789320..7af3c85a5d 100644
--- a/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html
+++ b/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html
@@ -130,7 +130,7 @@
-
-
aliases = ['@callback', '@calls', '@callbacks']
+aliases = ['@callback', '@callbacks', '@calls']
@@ -211,7 +211,7 @@ on user permission.
-
-
search_index_entry = {'aliases': '@callback @calls @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback calls callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
+search_index_entry = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback callbacks calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.ingame_reports.reports.html b/docs/latest/api/evennia.contrib.base_systems.ingame_reports.reports.html
index b617b6803f..127e941ac4 100644
--- a/docs/latest/api/evennia.contrib.base_systems.ingame_reports.reports.html
+++ b/docs/latest/api/evennia.contrib.base_systems.ingame_reports.reports.html
@@ -174,7 +174,7 @@ players
-
-
aliases = ['manage ideas', 'manage bugs', 'manage players']
+aliases = ['manage players', 'manage bugs', 'manage ideas']
@@ -208,7 +208,7 @@ to all the variables defined therein.
-
-
search_index_entry = {'aliases': 'manage ideas manage bugs manage players', 'category': 'general', 'key': 'manage reports', 'no_prefix': ' manage ideas manage bugs manage players', 'tags': '', 'text': '\n manage the various reports\n\n Usage:\n manage [report type]\n\n Available report types:\n bugs\n ideas\n players\n\n Initializes a menu for reviewing and changing the status of current reports.\n '}
+search_index_entry = {'aliases': 'manage players manage bugs manage ideas', 'category': 'general', 'key': 'manage reports', 'no_prefix': ' manage players manage bugs manage ideas', 'tags': '', 'text': '\n manage the various reports\n\n Usage:\n manage [report type]\n\n Available report types:\n bugs\n ideas\n players\n\n Initializes a menu for reviewing and changing the status of current reports.\n '}
diff --git a/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html b/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html
index b1107b7c15..e5c3534ca9 100644
--- a/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html
+++ b/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html
@@ -225,7 +225,7 @@ the operation will be general or on the room.
-
-
aliases = ['chicken out', 'abort', 'quit', 'q']
+aliases = ['chicken out', 'abort', 'q', 'quit']
@@ -249,7 +249,7 @@ set in self.parse())
-
-
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 '}
+search_index_entry = {'aliases': 'chicken out abort q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out abort q quit', '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 '}
@@ -270,7 +270,7 @@ set in self.parse())
-
-
aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -304,7 +304,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
@@ -385,7 +385,7 @@ shout
-
-
aliases = ['whisper', ';', 'shout']
+aliases = ['shout', 'whisper', ';']
@@ -414,7 +414,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'whisper ; shout', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper ; shout', '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 '}
@@ -504,7 +504,7 @@ looks and what actions is available.
-
-
aliases = ['examine', 'ex', 'e', 'unfocus']
+aliases = ['e', 'unfocus', 'ex', 'examine']
@@ -533,7 +533,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'examine ex e unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine ex e 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': 'e unfocus ex examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' e unfocus ex examine', '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 '}
@@ -595,7 +595,7 @@ set in self.parse())
-
-
aliases = ['inventory', 'i', 'give', 'inv']
+aliases = ['give', 'inventory', 'inv', 'i']
@@ -619,7 +619,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'inventory i give inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory i give inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
+search_index_entry = {'aliases': 'give inventory inv i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inventory inv i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.barter.barter.html b/docs/latest/api/evennia.contrib.game_systems.barter.barter.html
index 995664a60e..180d50f58c 100644
--- a/docs/latest/api/evennia.contrib.game_systems.barter.barter.html
+++ b/docs/latest/api/evennia.contrib.game_systems.barter.barter.html
@@ -759,7 +759,7 @@ try to influence the other part in the deal.
-
-
aliases = ['deal', 'offers']
+aliases = ['offers', 'deal']
@@ -785,7 +785,7 @@ try to influence the other part in the deal.
-
-
search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' deal offers', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
+search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'no_prefix': ' offers deal', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
diff --git a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_basic.html b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
index 9dd6a535f0..c662d4ed02 100644
--- a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
+++ b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_basic.html
@@ -686,7 +686,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
@@ -712,7 +712,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_equip.html b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
index 0bed424fda..b43d0f5a48 100644
--- a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
+++ b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_equip.html
@@ -581,7 +581,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
@@ -601,7 +601,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_items.html b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_items.html
index 9b7607f915..1e2a340556 100644
--- a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_items.html
+++ b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_items.html
@@ -704,7 +704,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
@@ -724,7 +724,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_magic.html b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
index 0f29530eac..62ecd7c88e 100644
--- a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
+++ b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_magic.html
@@ -483,7 +483,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
@@ -503,7 +503,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_range.html b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_range.html
index d06a19f299..66eedd87ae 100644
--- a/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_range.html
+++ b/docs/latest/api/evennia.contrib.game_systems.turnbattle.tb_range.html
@@ -943,7 +943,7 @@ if there are still any actions you can take.
-
-
aliases = ['hold', 'wait']
+aliases = ['wait', 'hold']
@@ -963,7 +963,7 @@ if there are still any actions you can take.
-
-
search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html b/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html
index f6516a49a8..fd3910210f 100644
--- a/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html
+++ b/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html
@@ -436,7 +436,7 @@ there is no room above/below you, your movement will fail.
-
-
aliases = ['dive', 'fly']
+aliases = ['fly', 'dive']
@@ -459,7 +459,7 @@ to all the variables defined therein.
-
-
search_index_entry = {'aliases': 'dive fly', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' dive fly', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}
+search_index_entry = {'aliases': 'fly dive', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' fly dive', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.rpg.dice.dice.html b/docs/latest/api/evennia.contrib.rpg.dice.dice.html
index 9991833142..de8840b0bd 100644
--- a/docs/latest/api/evennia.contrib.rpg.dice.dice.html
+++ b/docs/latest/api/evennia.contrib.rpg.dice.dice.html
@@ -340,7 +340,7 @@ everyone but the person rolling.
-
-
aliases = ['roll', '@dice']
+aliases = ['@dice', 'roll']
@@ -366,7 +366,7 @@ everyone but the person rolling.
-
-
search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
+search_index_entry = {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
diff --git a/docs/latest/api/evennia.contrib.rpg.rpsystem.rpsystem.html b/docs/latest/api/evennia.contrib.rpg.rpsystem.rpsystem.html
index dd07e1406e..48e927e408 100644
--- a/docs/latest/api/evennia.contrib.rpg.rpsystem.rpsystem.html
+++ b/docs/latest/api/evennia.contrib.rpg.rpsystem.rpsystem.html
@@ -908,7 +908,7 @@ Using the command without arguments will list all current recogs.
-
-
aliases = ['recognize', 'forget']
+aliases = ['forget', 'recognize']
@@ -935,7 +935,7 @@ Using the command without arguments will list all current recogs.
-
-
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 '}
+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 '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html
index 23df05a142..76e741a81f 100644
--- a/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html
+++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html
@@ -307,7 +307,7 @@ unwear <item>
-
-
aliases = ['unwield', 'unwear']
+aliases = ['unwear', 'unwield']
@@ -331,7 +331,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'unwield unwear', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwield unwear', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
+search_index_entry = {'aliases': 'unwear unwield', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwear unwield', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html b/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html
index 6b25dc9eb3..574935f1a5 100644
--- a/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html
+++ b/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html
@@ -167,7 +167,7 @@ such as when closing the lid and un-blinding a character.
-
-
aliases = ['push', 'press button', 'press']
+aliases = ['press button', 'push', 'press']
@@ -196,7 +196,7 @@ check if the lid is open or closed.
-
-
search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press button press', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
@@ -266,7 +266,7 @@ check if the lid is open or closed.
-
-
aliases = ['break lid', 'smash', 'smash lid']
+aliases = ['smash lid', 'break lid', 'smash']
@@ -293,7 +293,7 @@ break.
-
-
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 '}
+search_index_entry = {'aliases': 'smash lid break lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash lid break lid smash', '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 '}
@@ -393,7 +393,7 @@ be mutually exclusive.
-
-
aliases = ['push', 'press button', 'press']
+aliases = ['press button', 'push', 'press']
@@ -422,7 +422,7 @@ set in self.parse())
-
-
search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press button press', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
@@ -520,7 +520,7 @@ be mutually exclusive.
-
-
aliases = ['ex', 'feel', 'listen', 'examine', 'l', 'get']
+aliases = ['l', 'listen', 'feel', 'examine', 'get', 'ex']
@@ -546,7 +546,7 @@ be mutually exclusive.
-
-
search_index_entry = {'aliases': 'ex feel listen examine l get', 'category': 'general', 'key': 'look', 'no_prefix': ' ex feel listen examine l get', '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 "}
+search_index_entry = {'aliases': 'l listen feel examine get ex', 'category': 'general', 'key': 'look', 'no_prefix': ' l listen feel examine get ex', '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 "}
diff --git a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html
index db32fccb9c..a623c89ebb 100644
--- a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html
+++ b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html
@@ -439,7 +439,7 @@ of the object. We overload it with our own version.
-
-
aliases = ['light', 'burn']
+aliases = ['burn', 'light']
@@ -466,7 +466,7 @@ to sit on a “lightable” object, we operate only on self.obj.
-
-
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 '}
+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 '}
@@ -570,7 +570,7 @@ shift green root up/down
-
-
aliases = ['push', 'shiftroot', 'move', 'pull']
+aliases = ['pull', 'push', 'move', 'shiftroot']
@@ -606,7 +606,7 @@ yellow/green - horizontal roots
-
-
search_index_entry = {'aliases': 'push shiftroot move pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' push shiftroot move pull', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
+search_index_entry = {'aliases': 'pull push move shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull push move shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
@@ -623,7 +623,7 @@ yellow/green - horizontal roots
-
-
aliases = ['button', 'press button', 'push button']
+aliases = ['push button', 'press button', 'button']
@@ -649,7 +649,7 @@ yellow/green - horizontal roots
-
-
search_index_entry = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}
+search_index_entry = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button press button button', 'tags': '', 'text': '\n Presses a button.\n '}
@@ -793,7 +793,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
aliases = ['defend', 'slash', 'kill', 'hit', 'bash', 'parry', 'chop', 'thrust', 'pierce', 'fight', 'stab']
+aliases = ['pierce', 'parry', 'kill', 'thrust', 'chop', 'slash', 'fight', 'bash', 'defend', 'hit', 'stab']
@@ -819,7 +819,7 @@ parry - forgoes your attack but will make you harder to hit on next
-
-
search_index_entry = {'aliases': 'defend slash kill hit bash parry chop thrust pierce fight stab', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' defend slash kill hit bash parry chop thrust pierce fight stab', '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': 'pierce parry kill thrust chop slash fight bash defend hit stab', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' pierce parry kill thrust chop slash fight bash defend hit stab', '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 '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html
index 0667892635..c7a15c16f9 100644
--- a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html
+++ b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html
@@ -830,7 +830,7 @@ if they fall off the bridge.
-
-
aliases = ['h', '?']
+aliases = ['?', 'h']
@@ -856,7 +856,7 @@ if they fall off the bridge.
-
-
search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
+search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
@@ -982,7 +982,7 @@ to find something.
-
-
aliases = ['feel', 'feel around', 'fiddle', 'search', 'l']
+aliases = ['l', 'feel around', 'feel', 'fiddle', 'search']
@@ -1010,7 +1010,7 @@ random chance of eventually finding a light source.
-
-
search_index_entry = {'aliases': 'feel feel around fiddle search l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel feel around fiddle search 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 feel around feel fiddle search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l feel around feel fiddle search', '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 '}
diff --git a/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html b/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html
index ba12cb669d..ec33846959 100644
--- a/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html
+++ b/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html
@@ -222,7 +222,7 @@ git evennia pull - Pull the latest evennia code.
-
-
directory = '/tmp/tmpfy5vrsmk/e96efb4f3dfd57f18e316679d422c375f4c7e7a5/evennia'
+directory = '/tmp/tmpgxptasqd/5b2963fc46efd1acfc1ad890e3b745ec9ba62729/evennia'
@@ -283,7 +283,7 @@ git pull - Pull the latest code from your current branch.
-
-
directory = '/tmp/tmpfy5vrsmk/e96efb4f3dfd57f18e316679d422c375f4c7e7a5/evennia/game_template'
+directory = '/tmp/tmpgxptasqd/5b2963fc46efd1acfc1ad890e3b745ec9ba62729/evennia/game_template'
diff --git a/docs/latest/api/evennia.utils.eveditor.html b/docs/latest/api/evennia.utils.eveditor.html
index f5043389c6..5331fdb29f 100644
--- a/docs/latest/api/evennia.utils.eveditor.html
+++ b/docs/latest/api/evennia.utils.eveditor.html
@@ -356,7 +356,7 @@ indentation.
-
-
aliases = [':q!', ':UU', ':i', ':DD', ':p', ':r', ':fi', ':h', ':fd', ':q', ':A', ':<', ':=', ':uu', ':!', ':x', '::', ':', ':I', ':dd', ':::', ':dw', ':wq', ':s', ':w', ':S', ':y', ':echo', ':>', ':f', ':j', ':u']
+aliases = [':h', ':w', ':dw', ':uu', ':echo', ':p', ':j', ':A', ':UU', ':<', ':!', ':x', ':q!', ':S', '::', ':q', ':fd', ':wq', ':r', ':i', ':', ':f', ':I', ':y', ':::', ':>', ':DD', ':s', ':u', ':dd', ':=', ':fi']
@@ -384,7 +384,7 @@ efficient presentation.
-
-
search_index_entry = {'aliases': ':q! :UU :i :DD :p :r :fi :h :fd :q :A :< := :uu :! :x :: : :I :dd ::: :dw :wq :s :w :S :y :echo :> :f :j :u', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :q! :UU :i :DD :p :r :fi :h :fd :q :A :< := :uu :! :x :: : :I :dd ::: :dw :wq :s :w :S :y :echo :> :f :j :u', 'tags': '', 'text': '\n Commands for the editor\n '}
+search_index_entry = {'aliases': ':h :w :dw :uu :echo :p :j :A :UU :< :! :x :q! :S :: :q :fd :wq :r :i : :f :I :y ::: :> :DD :s :u :dd := :fi', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :h :w :dw :uu :echo :p :j :A :UU :< :! :x :q! :S :: :q :fd :wq :r :i : :f :I :y ::: :> :DD :s :u :dd := :fi', 'tags': '', 'text': '\n Commands for the editor\n '}
diff --git a/docs/latest/api/evennia.utils.evmenu.html b/docs/latest/api/evennia.utils.evmenu.html
index fb1e62409b..e1a8565348 100644
--- a/docs/latest/api/evennia.utils.evmenu.html
+++ b/docs/latest/api/evennia.utils.evmenu.html
@@ -955,7 +955,7 @@ single question.
+aliases = ['abort', 'n', 'no', '__nomatch_command', 'y', 'yes', 'a']
@@ -981,7 +981,7 @@ single question.
+search_index_entry = {'aliases': 'abort n no __nomatch_command y yes a', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort n no __nomatch_command y yes a', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
diff --git a/docs/latest/api/evennia.utils.evmore.html b/docs/latest/api/evennia.utils.evmore.html
index b78fdcac23..1fcb53ea70 100644
--- a/docs/latest/api/evennia.utils.evmore.html
+++ b/docs/latest/api/evennia.utils.evmore.html
@@ -151,7 +151,7 @@ the caller.msg() construct every time the page is updated.
-
-
aliases = ['previous', 'top', 'n', 'p', 'q', 'quit', 'abort', 't', 'e', 'a', 'end', 'next']
+aliases = ['t', 'abort', 'n', 'q', 'e', 'quit', 'end', 'previous', 'next', 'a', 'p', 'top']
@@ -177,7 +177,7 @@ the caller.msg() construct every time the page is updated.
-
-
search_index_entry = {'aliases': 'previous top n p q quit abort t e a end next', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' previous top n p q quit abort t e a end next', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
+search_index_entry = {'aliases': 't abort n q e quit end previous next a p top', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' t abort n q e quit end previous next a p top', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
diff --git a/docs/latest/objects.inv b/docs/latest/objects.inv
index 625a51f18493a95d7fc7fb5161d77591febefcb2..c962bb96b19a4c5086497746ea16726493f7e1be 100644
GIT binary patch
delta 113762
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