Raphael is a crafting rotation solver for the online game Final Fantasy XIV.
- Produces the most optimal macro according to these criteria.
- Short solve time (20-60 seconds) and reasonable memory usage (300-1000 MB) for most configurations.
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.
- Short answer: A* search + Pareto optimization + Dynamic programming.
- Long answer: coming soontm
The Rust toolchain is required to build the solver.
To build and run the application:
cargo run --release
To build and run the command-line interface (CLI):
cargo run --release --package raphael-cli -- <cli-args>
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 --pattern "Fiberboard"
cargo run --release --package raphael-cli -- solve --recipe-id 36183 --stats 5400 4900 600
The CLI can also be installed so that it can be called from anywhere:
cargo install --path raphael-cli