https://github.com/olimorris/pyscoutfm
:telescope: Use the power of Python to traverse the cosmos and scout for players within the Football Manager game
https://github.com/olimorris/pyscoutfm
fm24 football-manager footballmanager python
Last synced: 4 months ago
JSON representation
:telescope: Use the power of Python to traverse the cosmos and scout for players within the Football Manager game
- Host: GitHub
- URL: https://github.com/olimorris/pyscoutfm
- Owner: olimorris
- License: mit
- Created: 2023-10-30T18:01:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-03T21:55:47.000Z (over 1 year ago)
- Last Synced: 2025-01-07T19:12:22.461Z (4 months ago)
- Topics: fm24, football-manager, footballmanager, python
- Language: Python
- Homepage:
- Size: 239 KB
- Stars: 22
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
PyScoutFM
Use the power of Python to traverse the cosmos and scout for players within the Football Manager game
Inspired by the fantastic work of @squirrel_plays and the contributors on this thread at FM-Arena## ✨ Features
- 🔍 Generate scout reports from your squad and scouting screens within FM
- 📊 Uses a customisable rating system to score players out of 100
- 🔧 Tweak or create your own weightings to evaluate players
- 📂 Exports the scout report into a pretty HTML file
- 🔭 Easily search and sort the players in the scout report
- 🚀 Easily export from the game using the [provided views](src/pyscoutfm/extras)## ⚡ Requirements
- Python >= 3.10
- Football Manager (any version that supports the supplied views)
- Windows/MacOS## 📦 Installation
1. Check if you have Python installed by opening up a Command Prompt/Terminal and typing `python -V`
2. Install [Python](https://www.python.org/downloads/) if you don't.> **Note**: If you're on Windows, follow [this guide](WINDOWS_INSTALL.md) and if you're on Mac, I suggest using [Homebrew](https://brew.sh)
3. Once installed, in the Command Prompt/Terminal, run:
```
pip install pyscoutfm
```4. To verify the installation, run:
```
pyscoutfm -V
```5. To upgrade, run:
```
pip install --upgrade pyscoutfm
```## 🎮 Generating a Scout Report
Let's get down to business and show you how quickly you can generate a scouting report for your current squad from the command line.
1. Firstly, and for reference, to see a list of the commands and options available to you at any step of the way with PyScoutFM, append `--help` to a [command](#rocket-commands):
```
pyscoutfm generate --help
```### Export data from FM
The tool requires an extract of data from Football Manager. To make this easy, we can use the _views_ that come supplied with PyScoutFM.
2. To save you hunting for them, run:
```
pyscoutfm copy-views-to --path="MY_LOCATION"
```> Where `MY_LOCATION` is the path you wish to copy the views to
3. Import the views into FM; we'll start with the main squad screen of the team you're managing but note that you could go into your scouting screen as well:
![]()
4. In the squad screen, use Ctrl+a (Windows) or ⌘+a (Mac) to select all of the players in the screen (this can be laggy!), followed by Ctrl+p/⌘+p, selecting _Web Page_ as the print format:
![]()
5. Save the printed file into your chosen location:
![]()
### Generating the Scout Report
The tool comes with a default [config](src/pyscoutfm/config/config.json) file along with some sensible [attribute weightings](src/pyscoutfm/config/weightings.json) (which were the result of some heavy Machine Learning analysis).
6. In your terminal application run the command:
```
pyscoutfm generate --import-path=MY_LOCATION --export-path=MY_LOCATION
```Where `MY_LOCATION` is the path from step 5.
> **Note**: The tool is smart enough to only load the most recent _html_ file in the directory you specify
7. You should see a _Success_ message confirming the generation of the report.
### Using the Scout Report
So you have a Scout Report, now what?
8. Open up `latest.html` in your browser and you should see your players from the squad screen alongside their positional ratings which have been calculated with the tool:
![]()
9. Clicking on the arrows next to the column headings allows you to sort by that column. Also, a helpful search box makes it easier to find specific players.
10. Each of the rating columns represents a score out of 100. That is, how well suited a player is to a particular position based on the attribute weightings defined in the default [weightings file](src/pyscoutfm/config/weightings.json)
### Hints and Tips
You may find yourself tweaking your search results in Football Manager and re-generating scouting reports often. Below are some tips for doing this optimally:
1. Players that are not fully scouted will not be rated accurately! If you play with attribute masking and they have an attribute of `-` then the tool will convert it to `1`. Also, if they have an attribute range of `7-11`, the tool will use `7`.
2. Always export your Football Manager data to the same location. The tool is smart enough to be able to load the most recent HTML file in a directory if you don't pass it an `import_path` parameter.
3. You don't need to re-type your command in the Command Prompt/Terminal. Instead use the Up key to scroll through historical commands.
4. Once the report has been generated, just refresh the webpage in the Browser. The tool will always overwrite the `latest.html`. Don't worry though...it also saves a datetime stamped copy of the report as well.
## 🚀 Commands
To get started, run:
pyscoutfm --help
The available options are:
Usage: pyscoutfm [OPTIONS] COMMAND [ARGS]...
Options:
--version -V Show the version and exit.
--help Show this message and exit.Commands:
copy-views-to Copy the included views to a specified path before importing into FM
generate Generate a scouting report from the data exported from FM### Copy Views
Usage: pyscoutfm copy-views-to [OPTIONS]
Copy the included views to a specified path before importing into FM
Options:
--path -p TEXT The paths to copy the views to
--help Show this message and exit.### Generate
Usage: pyscoutfm generate [OPTIONS]
Generate a scouting report from the data exported from FM
Options:
--config-path TEXT The path to the config file to use
--import-path TEXT The path to the directory to import from [default: None]
--export-path TEXT The path to the directory to export to [default: None]
--weightings-path TEXT The path to the weightings file to use [default: None]
--weightings-set TEXT The weightings set to use [default: None]
--help Show this message and exit.## 🔨 Advanced usage
To be updated
## 🔭 How does it work?
To be updated
## ⁉️ FAQs
**Q. Why should I use PyScoutFM over Genie Scout?**
A. I think it comes down to your workflow and how you play the game. I am on a Mac mostly which doesn't help when it comes to using Genie Scout. I also like to use custom weightings which are easier to update with PyScoutFM and I _think_ the ratings that come out this are more accurate than Genie Scout's defaults.
**Q. How does PyScoutFM differ to Squirrel's web app and which is better?**
A. Firstly, huge props to Squirrel for starting this _movement_ with Python and Football Manager. I disagreed with how they've setup their weighting/rating system in their tool and valued the work and analysis that had taken place over on [FM-Arena's](https://fm-arena.com/thread/1949-fm22-positional-filters-what-are-the-best-attributes-for-each-position) site. As such, I think that PyScoutFM produces more accurate outputs...and even if you don't think so, you can very quickly change the [weightings](src/pyscoutfm/config/weightings.json) to your liking.
I've put together a comparison table between the two apps:
| Feature | PyScoutFM | Squirrel's |
| --- | :---: | :---: |
| Online web application | ❌ | ✅ |
| Import HTML from Football Manager | ✅ | ✅ |
| HTML output | ✅ | ✅ |
| Number of player roles/positions in the output file | Unlimited | 8 |
| Ratings by role* | ❌ | ✅ |
| Ratings by position | ✅ | ❌ |
| Ratings are a score out of... | 100 | 20 |
| Customisable weightings | ✅ | ❌ |
| Evidence for weightings** | [Here](https://fm-arena.com/find-comment/11228/) | [Here](https://youtu.be/DvV9Aigngi8?t=377) |
| Customisable player positions | ✅ | ❌ |
| Customisable attribute groupings*** | ✅ | ❌ |
| Customisable columns in the output file | ✅ | ❌ |\* This isn't in PyScoutFM by default but can be added in manually.
\** For PyScoutFM this is a little convoluted but the work done by [Mark](https://fm-arena.com/profile/912-mark/) to produce a balanced filter for Genie Scout was translated into the [default weightings](src/pyscoutfm/config/weightings.json) file.
\*** I like to create a [club DNA](https://www.youtube.com/watch?v=O-F5qI0fI3A) for my saves and this feature allows me to group and weight particular attributes together to produce a DNA rating.