A Flask web application to manage, repair, and visualize Elite Dangerous controller bindings.
Elite Dangerous Bindings Manager is a tool designed to help players fix issues with their controller bindings in Elite Dangerous. It addresses common problems like device ID changes that can break binding configurations.
- View Bindings: Browse and inspect all your binding files in different formats
- Analyze Errors: Check log files to identify issues with your bindings
- Fix Problems: Repair device ID issues and other common binding problems
- Visualize Bindings: See your controller and keyboard mappings in an intuitive layout
- Rename & Manage: Organize your binding configurations
- Python 3.8 or higher
- Flask
- Elite Dangerous installed with binding configuration files
- Clone this repository or download the source code:
git clone https://github.com/yourusername/elite-dangerous-bindings-manager.git
cd elite-dangerous-bindings-manager- Create a virtual environment and activate it:
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate- Install the required dependencies:
pip install -r requirements.txt- Configure the path to your Elite Dangerous bindings folder:
Open app.py and modify the BINDINGS_PATH variable to point to your Elite Dangerous bindings folder. Default location is typically:
# Windows
BINDINGS_PATH = r"C:\Users\<username>\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings"- Run the application:
flask run- Open your browser and navigate to
http://127.0.0.1:5000/
- On the home page, you'll see a list of all binding files in the configured directory
- Click on any file to view its details
- Use the view mode buttons to switch between different visualization options:
- Structured View: Easy-to-read table of all bindings
- Raw XML: The original XML content
- Formatted XML: Nicely formatted XML with proper indentation
- Visual Layout: Interactive visualization of your controller and keyboard bindings
If your binding file has device ID issues (shown in the log file):
- View the binding file that has issues
- Click the "Search & Replace" button
- Enter the old device ID (e.g., "28DE11FF") in the "Search for" field
- Enter the new device ID in the "Replace with" field
- Click "Create Fixed Binding" to generate a new binding file with the updated device ID
- View the binding file you want to rename
- Click the "Rename Binding" button
- Enter a new preset name
- Click "Rename Binding" to create a new binding file with the updated name
- When viewing a binding file, click the "View Log" button if available
- The log file will show any errors encountered when loading the binding
- The log analysis section will highlight common issues and suggest fixes
elite-dangerous-bindings-manager/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── README.md # This readme file
├── static/ # Static assets
│ ├── css/
│ │ └── style.css # Application styles
│ └── js/
│ └── script.js # JavaScript functionality
└── templates/ # HTML templates
├── base.html # Base template with common structure
├── index.html # Home page listing all bindings
├── binding.html # Binding details view
├── log.html # Log file view
└── error.html # Error page
Create a requirements.txt file with these dependencies:
Flask==2.3.3
- Application can't find binding files: Ensure the
BINDINGS_PATHvariable inapp.pypoints to the correct directory. - Binding changes don't appear in-game: Make sure to restart Elite Dangerous after fixing bindings. Also check that the
.startfile includes your new binding. - XML parsing errors: If the XML in a binding file is malformed, the application might not be able to parse it. In this case, you might need to manually fix the XML structure.
This project is licensed under the MIT License - see the LICENSE file for details.
- Frontier Developments for creating Elite Dangerous
- The Elite Dangerous community for their support and feedback