https://github.com/zrax/moulars
Myst Online: Uru Live server in Rust
https://github.com/zrax/moulars
game-server hacktoberfest myst plasma rust uru
Last synced: about 1 month ago
JSON representation
Myst Online: Uru Live server in Rust
- Host: GitHub
- URL: https://github.com/zrax/moulars
- Owner: zrax
- License: agpl-3.0
- Created: 2023-07-09T17:41:30.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-12-05T19:18:03.000Z (5 months ago)
- Last Synced: 2025-03-28T06:11:10.185Z (about 2 months ago)
- Topics: game-server, hacktoberfest, myst, plasma, rust, uru
- Language: Rust
- Homepage:
- Size: 426 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# MOULArs - A Myst Online: Uru Live (Again) server in Rust
## Introduction
MOULArs is a [DirtSand](https://github.com/H-uru/dirtsand) compatible Myst
Online: Uru Live (Again) server written in Rust. Although it is based on
DirtSand, it is differentiated by a few key features:
* Memory and error safety means the server is more resilient to crashes and
misbehavior caused by clients sending bad or unexpected data.
* Simpler configuration and setup, including automatic File Server manifest
generation (see below)
* Better cross-platform compatibility. MOULArs is known to work on both
Linux and Windows, but it should also work anywhere else Rust and the
library dependencies can run (macOS, OpenIndiana, *BSD, etc...)
* MOULArs includes a REST API which can be used for informational and
administrative tasks.Like DirtSand, MOULArs is designed to work best with the
[H-uru Plasma](https://github.com/H-uru/Plasma) client, but it may work
with other compatible CWE/Plasma clients as well.## Building the code
Assuming you have [rust](https://www.rust-lang.org/) with cargo already
installed, building is usually as simple as cloning the repo and running
`cargo build`.For release builds (recommended for production servers), you should build
instead with `cargo build --release`.## Setting up a server
*... Database TBD ...*### File Server
MOULArs includes a manifest generation tool that only requires you to provide
files in an expected directory structure, and it will automatically generate
manifests and encrypt/compress the files as appropriate. To use it, run
`mfs_tool update [--python ]`.
This will update existing manifests with any changes and new files, as well as
producing new manifests (both for the initial server setup and for newly added
client flavors, ages, etc.). When the `--python` parameter is also used, it
will also compile any .py source files in the `Python` directory and produce
an encrypted .pak file for the Auth server to send to clients.To ensure all required manifests are properly generated, you should provide
the files in the following structure:```
(Configured via moulars.toml)
|- client/
| |- windows_ia32/
| | |- external/
| | | |- UruExplorer.exe (External build)
| | | |- UruLauncher.exe (External build)
| | | |- vcredist_x86.exe
| | | `- Other .dll, .pdb, etc files for external build
| | `- internal/
| | |- plUruExplorer.exe (Internal build)
| | |- plUruLauncher.exe (Internal build)
| | |- vcredist_x86.exe
| | `- Other .dll, .pdb, etc files for internal build
| `- windows_x64/
| |- external/
| | |- UruExplorer.exe (External x64 build)
| | |- UruLauncher.exe (External x64 build)
| | |- vcredist_x64.exe
| | `- Other .dll, .pdb, etc files for external build
| `- internal/
| |- plUruExplorer.exe (Internal x64 build)
| |- plUruLauncher.exe (Internal x64 build)
| |- vcredist_x64.exe
| `- Other .dll, .pdb, etc files for internal build
|- avi/
| `- video files (.webm, .bik, etc)
|- dat/
| `- .age, .prp, .fni, .p2f, etc files
|- Python/
| `- .py files from Plasma's Scripts
|- SDL/
| `- .sdl files
`- sfx/
`- .ogg files required by PRPs
```NOTE: Even if you do not plan on hosting a file server, you will need to
provide the .age and .sdl files for the Game and Vault servers to function
properly with the client's data set. It is not required to encrypt the files
or build manifests when running without a file server.