Hackmud has several shell commands available, some explicitly told to you and some not.
They are different from usual scripts, in that they typically (see `LDifferences`) stay within the bounds of the local client.
This post contains a hopefully up-to-date list of all commands, their usage, and their function.
While scripts are always received from the server, many of the shell commands don't leave the bounds of the client. Others, like commands related to scripting, do. Because of their other similarities to the shell commands, they are usually bundled together anyway.
If anything here is incorrect, or unclear, or if you'd just like to get in touch, contact me on Discord at @kaitlyn#7258. You can also message me ingame at @kaitlyn. Feel free to send your message additional times if you think I missed it.
Commands are sorted alphabetically by "categories" which are determined by general similarities, and sorted within the categories by my own, correct opinion.
`Ccommand` / `Calias` <argument(s), or "no args">
A description of the command, and potentially things worth noting.
`Chelp` <no args>
Lists several common scripts, and several standard client commands and their function.
`Chelp`, `Cuser`, `Ccreate_user`, `Cretire_user`, `Cclear`, `Cshutdown`, `Cchat_pass`, `Cchat_revoke_tokens`, `Cstore_list`, `C#help`
`C#help` <no args>
Lists several client commands useful for script authors, or "weavers".
`C#help`, `C#scripts` or `C#`, `C#dir`, `C#edit`, `C#DELETE` (case-sensitive), `C#up`, `C#down`
`Cclear` / `Ccls` <no args>
Clears the "script output" section of the client (the larger left side).
(Note - you can clear the "input line" by hitting the escape key, instead of rapidly backspacing or entering what is already written.)
`Cshutdown` <no args>
Exits the client, after a moment.
`Clogout` <no args>
Logs the client out of the server and then refreshes steam auth, prompting user selection.
Akin to restarting the client.
Runs the previously ran script on loop until the escape key is pressed.
Script must be a complete script name,
`Si`.e. no weaver commands, scripts without usernames, etc. Script arguments are optional.
<interval> is minimum interval between script executions, defaults to 0 (i`S.`e. as fast as possible).
Despite its appearance, `C/auto` is not a macro.
`Cchat_pass` <no args>
Returns a 5-character password used to obtain an account's chat API token.
`Cchat_revoke_tokens` <no args>
Invalidates all currently active chat API tokens.
`Cgui_reset` <no args>
Restores the GUI to its default state.
Useful if you've accidentally "broken" the side panel window sizes.
`Cgui_binmat` <no args>
Enables the GUI elements used for BINMAT, a midgame to lategame PvP mechanic.
This space intentionally left blank.
Please see the `Mmacros` section of post `Vymv9r6` for creating macros.
(Link for web users - https://hackmud.com/forums/new_players/what_the_vlan_missed__a_reference_for_starters
`C#scripts` / `C#` <no args>
Lists local script filenames.
`C#dir` <no args>
Opens the local directory ("folder") where your scripts are kept using your preferred file manager.
`C#edit` / `C#e` <script name>
Opens the given script in your preferred editor for .js files.
Creates the file <script name>.js if it doesn't exist.
(NOTE - This, by default, doesn't work on windows!
Be sure to open your `C#dir` and change the default editor for .js files if this doesn't work!)
`C#up` / `C#u` <script name> <other args - see description>
Uploads the given script name to the server.
By default, this will not change the public/private state. New scripts are uploaded as private. You can use the "other args" to change this.
The argument "dry" will validate that a script's source is valid, as well as identify the script's sec level and apparent character count.
The argument "shift" will shift a script's assigned sector, making it inaccessible for all users for 900 seconds (15 minutes). This is useless for private scripts.
The argument "public" will upload the script as public. The first time a script is uploaded as public it also requires a shift operation. It also needs to be shifted if it ever needs its sector to change.
Generally, when `C#up`loading a script as public, you'll need to use both shift and public in tandem, `Si`.e. "`C#up` myscript public shift".
The argument "private" will upload a script as private. This does not require a shift operation.
The argument "delete" will delete the script on the server, whether public or private, meaning no users can run it.
`C#down` / `C#d` <script name>
Downloads the file for the given script from the servers, if it exists.
Saves to <script name>.js if it doesn't exist locally, and <script name>.down.js if it does.
(Note - the .down.js file is invalid for #up. Rename it over overwrite the regular .js file.)
`C#DELETE` <script name>
Deletes a script's local source file.
Case-sensitive. `DNo confirmation prompt. Use with caution.`
Log into a user, if it is yours.
Arguments optional. Without args, displays a list of your users and retired users.
Create a user, if it isn't already claimed and you have an unused user slot.
(Note - player corps occupy usernames. People make corps specifically to occupy usernames without spending a user slot, often called "corpsquatting", to prevent others from taking certain usernames.)
Retire a user, if it is yours and you have an unused retire slot.
Retiring a user is a 30 day process (or about a 1-minute process, if the user is in the vLAN) in which the user is unavailable, but still exists within the MUD.
After 30 days have elapsed, the user's name is changed to one following the old NPC naming scheme and the retire slot is freed up again.
The user's GC, items, and scripts are still present after retirement.
vLAN users are truly deleted after about a minute instead of undergoing the full retirement process.
`Cstore_list` <no args>
Lists different microtransaction opportunities for user slots and retire slots,
along with their indices for use in `Cstore_buy`.
Used to purchase microtransactions for user slots and retire slots, listed in `Cstore_list`.
Utilizes the steam overlay for the payment prompt. Make sure it's enabled before using this command.