1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-05-07 21:17:46 +00:00
kawari/USAGE.md

83 lines
3.8 KiB
Markdown
Raw Normal View History

# Usage
2025-03-14 17:00:40 -04:00
Kawari is designed to be easy to run, and should be accessible to anyone who wants to run a local server for themselves.
2025-03-14 17:00:40 -04:00
**Note:** Persisted data (logins, characters, etc) are expected to _not_ be stable or secure. Treat all data as disposable.
2025-03-14 17:00:40 -04:00
## Copyright Notice
**Kawari requires that you have an active subscription**, and are in possession of a legitimate copy of the game. Kawari is not related or affiliated to SqEx, and by using it you are in explicit violation of the User Agreement (_Limitation 2.4_.)
## Prerequisites
2025-03-22 20:05:52 -04:00
* Windows or Linux
2025-03-14 17:00:40 -04:00
* Copy of the game updated to the supported game version (see README)
2025-03-23 06:53:58 -04:00
* Oodle Network Compression (can be obtained from [here](https://github.com/WorkingRobot/OodleUE))
## Download Artifact
Windows and Linux artifacts are built on every commit, under [Github Actions](https://github.com/redstrate/Kawari/actions). You will have to download the Oodle Network `.dll` (Windows) or `.so` (Linux) yourself however.
## Building
Build Kawari with `cargo build`.
For the World server to function, Kawari needs to be built with `--features oodle`. Place the `.so` (Linux) or `.lib` (Windows) into the `oodle` directory when building. The library must be named "oodle-network-shared".
2025-03-14 17:00:40 -04:00
## Setup
Afterwards, create a `config.yaml` in the current directory. Currently the minimal config you need to run most services looks like this:
2025-03-17 14:49:11 -04:00
```yaml
game_location: /path/to/gamedir/
```
2025-03-17 14:49:11 -04:00
More configuration options can be found in `config.rs`, such as changing the ports services run on. If you plan on just running it locally for yourself, you don't need to set anything else.
2025-03-14 17:00:40 -04:00
## Reverse proxy setup
Kawari isn't very useful unless it's addressable to a launcher. We provide a sample Caddyfile reverse proxy setup for this:
2025-03-14 17:00:40 -04:00
```shell
2025-04-11 08:25:15 -04:00
$ caddy run --config resources/Caddyfile
2025-03-14 17:00:40 -04:00
```
This Caddyfile hosts several domains required for normal operation, most notably `ffxiv.localhost`, on port 80. If you get a "permission denied" error starting Caddy, you must either start Caddy with elevated privileges (`sudo`) or set the `CAP_NET_BIND_SERVICE` capability. See [here](https://caddyserver.com/docs/quick-starts/caddyfile) for more information on how to do this.
2025-03-14 17:00:40 -04:00
## Logging in
Navigate to [http://ffxiv.localhost](http://ffxiv.localhost), and register for an account. In order to actually log in, navigate to the Setup page and follow the instructions there.
2025-03-17 14:52:52 -04:00
## Importing characters from retail
It's possible to import existing characters from the retail server using [Auracite](https://auracite.xiv.zone). Upload the backup ZIP on the account management page on the login server.
This feature is still a work-in-progress, and not all data is imported yet.
2025-03-17 14:52:52 -04:00
## Chat commands
### Debug commands
These special debug commands start with `!` and are custom to Kawari.
* `!setpos <x> <y> <z>`: Teleport to the specified location
* `!spawnplayer`: Spawn another player for debugging, not known to work at the moment
* `!spawnnpc`: Spawn a NPC for debugging
* `!spawnmonster`: Spawn a monster for debugging
* `!playscene <id>`: Plays an event. Only some events are supported for now:
* Territory `181`, Event `1245185` plays the Limsa opening sequence
* Territory `182`, Event `1245187` plays the Ul'dah opening sequence
* Territory `183`, Event `1245186` plays the Gridania opening sequence
* `!spawnclone`: Spawn a clone of yourself
* `!classjob <id>`: Changes to another class/job
2025-03-17 14:52:52 -04:00
### GM commands
These GM commands are implemented in the FFXIV protocol, but only some of them are implemented.
* `//gm teri <id>`: Changes to the specified territory
2025-03-18 23:49:07 -04:00
* `//gm weather <id>`: Changes the weather
2025-03-29 00:39:00 -04:00
* `//gm wireframe`: Toggle wireframe rendering for the environment
* `//gm item <id>`: Gives yourself an item. This can only place a single item in the first page of your inventory currently.
* `//gm lv <level>`: Sets your current level