https://github.com/konaeakira/raphael-rs
Crafting rotation optimizer / macro generator for Final Fantasy XIV
https://github.com/konaeakira/raphael-rs
ff14 ffxiv final-fantasy-14 final-fantasy-xiv
Last synced: 28 days ago
JSON representation
Crafting rotation optimizer / macro generator for Final Fantasy XIV
- Host: GitHub
- URL: https://github.com/konaeakira/raphael-rs
- Owner: KonaeAkira
- License: apache-2.0
- Created: 2023-12-31T22:41:42.000Z (over 1 year ago)
- Default Branch: preview
- Last Pushed: 2025-03-28T23:44:13.000Z (about 1 month ago)
- Last Synced: 2025-03-29T00:27:33.783Z (about 1 month ago)
- Topics: ff14, ffxiv, final-fantasy-14, final-fantasy-xiv
- Language: Rust
- Homepage: https://www.raphael-xiv.com/
- Size: 137 MB
- Stars: 114
- Watchers: 5
- Forks: 22
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Raphael XIV [
](https://discord.com/invite/m2aCy3y8he)
:link: [www.raphael-xiv.com](https://www.raphael-xiv.com/)
Raphael is a crafting rotation solver for the online game Final Fantasy XIV.
* Produces the most optimal macro according to these [criteria](#optimal-macro-selection).
* Short solve time (20-60 seconds) and reasonable memory usage (300-1000 MB) for most configurations.## Contents
* [Optimal macro selection](#optimal-macro-selection)
* [How does it work?](#how-does-it-work)
* [Building from source](#building-from-source)
* [Native GUI](#native-gui)
* [Native CLI](#native-cli)## Optimal macro selection
The following is the specification of how the most "optimal" macro is selected:
* The generated macro must be able to finish the synthesis, i.e. reach 100% progress.
* Valid macros are then ranked based on these criteria, in order:
* Quality reached, capped at the target quality defined in the solver configuration. (Higher is better)
* Number of macro steps. (Lower is better)
* Total macro duration, in seconds. (Lower is better)
* Excess quality above the target quality. (Higher is better)Anything not mentioned in the above specification is not taken into account. If you would like to change/amend the specification, please submit a feature request.
If you find a macro that beats the generated macro according to the specification above, please submit a bug report.
## How does it work?
* Short answer: [A* search](https://en.wikipedia.org/wiki/A*_search_algorithm) + [Pareto optimization](https://en.wikipedia.org/wiki/Multi-objective_optimization) + [Dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming).
* Long answer: coming soontm## Building from source
The [Rust](https://www.rust-lang.org/) toolchain is required to build the solver.
### Native GUI
To build and run the application:
```
cargo run --release
```### Native CLI
To build and run the command-line interface (CLI):
```
cargo run --release --package raphael-cli --
```The CLI currently supports searching for items and solving for crafting rotations. Run the following to see the relevant help messages:
```
cargo run --release --package raphael-cli -- --help
cargo run --release --package raphael-cli -- search --help
cargo run --release --package raphael-cli -- solve --help
```Some basic examples:
```
cargo run --release --package raphael-cli -- search "Archeo Fending"
cargo run --release --package raphael-cli -- solve --item-id 8548 --stats 5000 4000 500
```The CLI can also be installed so that it can be called from anywhere:
```
cargo install --path raphael-cli
```