a-burlakov / melinas-fingers

🖐⌨ Hotkey tool to improve your Elden Ring experience. Desktop app made with PyQt.
MIT License
69 stars 1 forks source link
elden-ring eldenring from-software game macro macros python tool

It was made pretty long time ago for fun and learning PyQt
(also for getting free PyCharm Pro license
😎).
Code of this project no longer indicates my current skills.
Repository is left public for the sake of Elden Ring community.



MF Logo

Melina's Fingers

Hotkey tool to improve your Elden Ring experience. Melina's Fingers aims to bring you joy by freeing you from UI limitations that we had to endure since Demon’s Souls (2009).

New version will come right together with new Elden Ring DLC!

Nexus page | Showcase video

MF Logo

MF Logo

MF Logo

Features

Melina's Fingers lets you bind game actions to hotkeys, making your gameplay much more fluid and pleasant as actions that required pressing >10 buttons now require pressing only one.

With Melina's Fingers you can additionally bind almost anything:

and any crazy hotkey you made yourself via rich DIY-constructor. You can even make a hotkey for farming mobs being AFK.

Getting Started

  1. Download latest Melina's Fingers release;
  2. Put .exe file to separate folder (as next to it will be created an additional .cfg file);
  3. As you launch Melina's Fingers, it will try to get your save file from standard path. But if something went wrong, choose save file manually with "Open save file" button;
  4. Go to "Settings" and make sure that all your Elden Ring controls are filled. If it's not, then go to Elden Ring and assign every action to any keyboard button, then press "Reload from save file" button or fill controls manually;
  5. Adjust font size and window scale, so it would be comfortable;
  6. Set "Standard pause time" according to your FPS in Elden Ring;
  7. There's already some introductory hotkeys on the left. You can use these, or add your own hotkeys. By the way, there're 10 item hotkeys and 10 magic introductory hotkeys with "Built-in" type. If you'll turn them to "Magic" and "Item" types and then set "Items search mode" and "Magic search mode" to "Semi-manual", you'll see some nice difference in hotkey speed.;
  8. If you use "Equipment" hotkey, make sure that your list is sorted by "Order of Acquisition", ascended. There's a special "Built-in" hotkey to sort all your lists by that rule.

Basically what Melina's Fingers does:

Melina's Fingers has several types of hotkeys to customize:

For "Equipment", "Magic" and "Item" types of hotkeys there are also two search modes:

Some little important things

Put everything you don't need in the chest

If you have a big inventory, then virtual key press sequences will be long and unstable. Melina's Fingers works great on lists with less than 50 items. I actually don't think you need more.

There's still problems with collecting weapons and armor from save file

Unfortunately, it's very likely that you'll have to use "Manual mode" in "Equipment" hotkeys as weapons and armor can be stored in save file according to very complex rules. Sometimes Melina's Fingers can read it from save file. But sometimes not, especially if you have many items.

Not every hotkey bindings will work

Some bindings would call OS commands so be careful with bindings with specific keys. E.g. don't bind your hotkeys to "Ctrl+Alt+Delete" :)

Don't use too short profile name

There are can be problems to collect your equipment information from save file if your character in named "F", "a", "." and so on.

The only way to interrupt a sequence is to Alt+Tab to another application

There're no long sequences, but you can make something really long in DIY hotkey type. If you did so, just Alt+Tab from Elden Ring, it will break the sequence.

Developing

First run

  1. Clone the repo.
    $ git clone git@github.com:a-burlakov/melinas-fingers.git
  2. Install dependencies:
    cd melinas-fingers  # if needed
    pip install -r requirements.txt 
  3. Run src/main.py.

UI development

  1. Install Qt Designer for interactive UI development.
  2. Open utils/mainWindow.ui via Qt Designer.
  3. Make your changes.
  4. Run utils/qtdesigner_to_py.bat. That will create corresponding .py files (mainWindow.py and ui_rc.py).

Freezing to .exe

  1. Just use PyInstaller (with Python >= 3.10):

    pyinstaller main.py -F -w -i utils\ui_img\icon.ico  
  2. Newly created dist folder will have your .exe file.