This is for the game hackmud. If you don't know what that is, you should go away and play it!
This is the whole kitchen sink built around HSM, setting this up takes more effort but will give you autocompletes in your IDE, automatic script pushing when you save a script, as well as minification. If you only need minification, I instead recommend heading over to Hackmud Script Manager.
You can read about how HSM works in my blog post.
This is the main feature of this project and works with JavaScript or TypeScript. All scripts are automatically minified before being written into the hackmud folder. This means you can focus less on getting your character count down, and more on writing readable scripts.
In modern editors like Visual Studio Code, as you're typing the names of subscripts or filling the args of subscripts, drop-down menus of relevant autocompletes will appear. Hovering over a script also tells you info like its security level.
Using TypeScript in this environment is completely optional, but using it means warnings when you use the wrong type in a subscript's args or use an unsupported type in a DB query.
- Install Node.JS and PNPM
- If you have Git installed:
- Make a new folder,
cd
to it, and runpnpm dlx tiged samualtnorman/hackmud-environment
- Otherwise, click here to download the ZIP and extract it somewhere, then
cd
to it
- Make a new folder,
- Run
pnpm install
Important
Do not put this template in your hackmud folder. This will not work.
Instead put this template somewhere you have easy access to like your desktop or home folder.
Note
If you get an error message that looks like this:
[...]\AppData\Local\pnpm\hsm.ps1 cannot be loaded because running scripts is disabled on this system. [...]
You will need to run Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
in PowerShell as an administrator. For more information, see Microsoft's page about Execution Policies.
You can create scripts in the src/scripts
directory directly, and you can create a folder with the name of one of your users,
and create scripts in that folder too.
Use pnpm push
to push all your scripts to all your users.
To automatically push scripts as you edit them, leave pnpm dev
running.
Scripts directly in the src/scripts
folder are pushed to all your users.
To have a script be pushed to only a specific user, create a folder in the src/scripts
folder and create your scripts in that
new folder.
Once a script has been pushed to a user, you can run #up <script>
in game to upload it.
This is only for if you're using TypeScript.
To take advantage of the type definitions written for subscripts and preprocessor functions, you'll need to replace the
#
characters with $
characters. For example instead of writing #fs.scripts.trust()
, you'll need to write
$fs.scripts.trust()
. A big change, I know.
To gain type checking for the other scripts you've written in the environment, instead of starting your scripts with
function (...
, start them with export default function(...
.
Note
When using this format, to get autocompletes working in hackmud, you must have a // @autocomplete foo: "bar"
comment at the top above all other code.
Contributing is appreciated, especially if you have an API to add to the type definitions.
This project was originally a fork of Snazzah's hackmud_env.
If you want to see your strings coloured to how they'd appear in the game, check out Hackmud Color, my VS Code extension.
This is the script manager that this environment relies on. Visit the NPM page, or the repo.