Skip to main content

Discord

Desktop app

You can download the desktop app to use the simulator without having to code : https://github.com/IAmPythagoras/ffxivcalcWebApp .

Install

You can install this library using pip :

pip install ffxivcalc

Or can download latest unstable version using :

pip install ffxiv-combat-simulator@git+https://github.com/IAmPythagoras/FFXIV-Combat-Simulator.git@feature/GeneralDev

*Note that you must have git installed : https://git-scm.com/download/win

You can find the documentation here : https://iampythagoras.github.io/index.html or join the discord linked above if you have any questions.

*The unstable version can be removed using

pip uninstall ffxiv-combat-simulator

FFXIV-Combat-Simulator (ffxivcalc)

This Python library lets you simulate combat from the game Final Fantasy XIV. It allows for as many players as possible and will simulate the fight in "real time". It accurately keeps track of MP, cooldown on abilities, HP, DOTs, raid buffs, personnal buffs, team composition bonus, potions buff, which allows for a dynamic environment that portrays as accurately as possible the real game's environment.

The simulator in its base state will output every player's DPS (Damage Per Second), PPS (Potency Per Second), TP (Total Potency), but it can be customized to output any other metric that could be useful. Furthermore, the simulator is able to output a distribution of the DPS which allows to see the different DPS' percentiles.

Here are some examples of simulations :

BlackMage doing opener and some more :

image image image

Here are some of the results the simulator will output : A text result, a graph of DPS over time and a graph of the distribution.

BlackMage, Dancer, Dragoon, Scholar doing opener and some more :

image image image

Note that the Blackmage's DPS is higher because it received all the buffs.

This library also has a built-in BiS (best in slot) solver. The advantage of using this one is that instead of simply maximizing the DPS of a dummy rotation, the simulator allows the solver to take into account the different raid buffs and when they are in effect. This means that the solver will find a BiS that is dependant on the simulation you want it to optimize damage in.

Learn more about the simulator and how to use it by going to the official documentation website : https://iampythagoras.github.io/index.html

With version 0.8.10 you can now output a "Simulation record" as a pdf file that shows information about the simulation :

image

This record's goal is to act as a sort of log, but which is more easily understood and contains only the most useful information on the running of the simulation. You can also export a text only version of this record.

Rotation BiS Solver

As of ffxivcalc version 0.8.00, this library now has a built in rotation BiS solver. You can use the ffxivcalclayout.py in order to experiment with it or download the desktop app.

You can read this PDF BiS_Solver_Algorithm_Documentation.pdf if you are interested in its functionning.

You can read about the experimental results of this solver here : https://docs.google.com/spreadsheets/d/1yVl-F1tHARYIYvz4ZPxIY6MayakYug3OEqpGnpZllqU/edit?usp=sharing

Validity of simulator

As of version 0.8.940 I have started adding in depth testing of the simulator. The simulator will still have some flaws, but it is currently being checked by around 800 individual tests. More tests will be added with time.

Other simulators

Make sure to check out this alternative FFXIV simulator Amas-FF14-Combat-Sim or join its Discord

If you want to help

If you want to help or want to ask questions to me directly, feel free to join the discord linked above:)

Update log

(Recent only read init.py for all update logs)

0.9.940: - Oups, forgot to ever implement Army Ethos/Army Muse effect on Bard. This is now fixed. - Other bug fixes.

0.8.930: - Added Player.getPlayerPrePullTime() which returns the length of the prepull (time before first damage action). - Added Fight.getPlayerPrepullLength() which returns the prepull length of all players - added Fight.syncPlayerPrePull() which syncs all player's prepull so they all do damage at the same time. - Added test suite 'Prepull length test suite' that tests the Player.GetPlayerPrePullTime() function. - Removed access to ffxvivcalc.API, ffxivcalc.codeParser and ffxivcalc.Request.FFLogsAPIRequest modules (outdated modules). - Other minor bug fix.

Metadata

Release files for ffxivcalc 0.8.940

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ffxivcalc 0.8.940
File Size Uploaded
ffxivcalc-0.8.940.tar.gz 266.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ffxivcalc 0.8.940
File Interpreter ABI Platform
ffxivcalc-0.8.940-py3-none-any.whl Python 3 none any Details

Total release size: 558.4 kB

Release files / ffxivcalc-0.8.940.tar.gz

Download URL ffxivcalc-0.8.940.tar.gz
Size 266.1 kB
Tags Source
SHA-256 checksum
How to use checksums
107b9045104992f28c4cb41faa14a8d813ed9ebec96ab660f86cfd97eaaa115c
BLAKE2b-256 checksum
How to use checksums
e149627821ab64c99ce8b38bef34462e049383b0400d064b7a9e61f750f92cc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / ffxivcalc-0.8.940-py3-none-any.whl

Download URL ffxivcalc-0.8.940-py3-none-any.whl
Size 292.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c077fc29e656cb4404aede7b340fc284fc7246bdadf27f44dcc510702cea9f38
BLAKE2b-256 checksum
How to use checksums
a3faed482621db1e64eee5ad25307d6bb4dbdc0b9931711b93210143f65698e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page