From f6ad83b7552d32b69184bce561cdf607209b6e01 Mon Sep 17 00:00:00 2001 From: KaliszS <23085519+KaliszS@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:31:49 +0100 Subject: [PATCH 1/2] Added documentation --- DOCUMENTATION.md | 7 +++++++ static/docs/header.png | Bin 0 -> 22508 bytes 2 files changed, 7 insertions(+) create mode 100644 DOCUMENTATION.md create mode 100644 static/docs/header.png diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md new file mode 100644 index 0000000..d840b07 --- /dev/null +++ b/DOCUMENTATION.md @@ -0,0 +1,7 @@ +# Documentation + +## Header + +

+ Editor Header +

diff --git a/static/docs/header.png b/static/docs/header.png new file mode 100644 index 0000000000000000000000000000000000000000..e55152fba8c39ddc0c77ad9319f3e01d70eff465 GIT binary patch literal 22508 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 Date: Sun, 21 Dec 2025 22:35:50 +0100 Subject: [PATCH 2/2] docs foundation --- README.md | 10 ++++ docs/index.md | 33 ++++++++++++ docs/reference/edt-comparison.md | 32 +++++++++++ docs/tutorials/use-cases.md | 61 +++++++++++++++++++++ docs/user-guide/analyst-mode.md | 51 ++++++++++++++++++ docs/user-guide/features.md | 85 ++++++++++++++++++++++++++++++ docs/user-guide/getting-started.md | 38 +++++++++++++ 7 files changed, 310 insertions(+) create mode 100644 docs/index.md create mode 100644 docs/reference/edt-comparison.md create mode 100644 docs/tutorials/use-cases.md create mode 100644 docs/user-guide/analyst-mode.md create mode 100644 docs/user-guide/features.md create mode 100644 docs/user-guide/getting-started.md diff --git a/README.md b/README.md index b429628..43f34c2 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,16 @@ --- +## 📚 Documentation +**[Explore the Full Documentation](docs/index.md)** + +- **[Getting Started](docs/user-guide/getting-started.md)** +- **[User Guide & Features](docs/user-guide/features.md)** +- **[Analyst Mode](docs/user-guide/analyst-mode.md)** +- **[Video Tutorials](docs/tutorials/use-cases.md)** + +--- + **Football Manager Forge** is a modern, cross-platform tool built to simplify the process of editing `.edt` files for the Football Manager series. These files are used to configure **regens** (newly generated players) before starting a new game. ### ❓ What are Regens? diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..09f2e5d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,33 @@ +# 📚 FM Forge Documentation + +Welcome to the official documentation for **Football Manager Forge**. + +FM Forge is a powerful, modern editor for Football Manager `.edt` files, designed to make managing custom databases and regens easier, faster, and less error-prone. + +## 📖 Contents + +### [🚀 Getting Started](user-guide/getting-started.md) +- Installation +- Loading your first file +- Understanding the interface + +### [🛠️ User Guide](user-guide/features.md) +- **[Core Features](user-guide/features.md)**: Filtering, Sorting, and Searching. +- **[Editing Players](user-guide/features.md#editing-players)**: Quick Edit, Full Edit, and Mass Edit. +- **[Analyst Mode](user-guide/analyst-mode.md)**: Visualizing your database. + +### [🎥 Tutorials & Use Cases](tutorials/use-cases.md) +- How to fix player attributes quickly. +- Updating an entire team's roster. +- Balancing a retro database. +- *Video guides included.* + +### [🆚 Why FM Forge?](reference/edt-comparison.md) +- Comparison with traditional text editing. +- Why `.edt` files are still relevant. +- Safety and validation features. + +--- + +## 🆘 Need Help? +If you encounter any bugs or have feature requests, please open an issue on our GitHub repository. diff --git a/docs/reference/edt-comparison.md b/docs/reference/edt-comparison.md new file mode 100644 index 0000000..0839a2c --- /dev/null +++ b/docs/reference/edt-comparison.md @@ -0,0 +1,32 @@ +# 🆚 FM Forge vs. Text Editing + +Why should you use FM Forge instead of editing `.edt` files in Notepad? + +| Feature | 📝 Text Editor (Notepad) | ⚒️ FM Forge | +| :--- | :--- | :--- | +| **Ease of Use** | Difficult. Requires memorizing command syntax. | **Easy**. Graphical interface with dropdowns and sliders. | +| **Validation** | None. Typos break the file. | **Automatic**. Prevents invalid values (e.g., CA > 200). | +| **IDs & Codes** | Must look up Club/Nation IDs manually. | **Built-in**. Search clubs and nations by name. | +| **Visualization** | None. Just text. | **Rich**. Charts, graphs, and stats. | +| **Bulk Editing** | Find & Replace (risky). | **Mass Edit**. Smart relative or absolute changes. | +| **Safety** | No undo. Easy to overwrite data. | **Safe**. Changes are staged before saving. | +| **Search** | Basic text search. | **Advanced**. Filter by attributes, position, age, etc. | + +## The "Old Way" (EDT Syntax) + +Traditionally, you would write lines like this: + +```text +"DETAILED_FUTURE_REGEN" "John" "" "Doe" "20/05/2000" "5" "10" "15" ... +``` + +One missing quote or comma would cause the game to ignore the file or crash. You also had to know that `"5"` corresponds to "English" nationality and `"10"` is "Arsenal". + +## The FM Forge Way + +With FM Forge, you simply: +1. Select "Arsenal" from a dropdown. +2. Select "England" from a dropdown. +3. Use sliders or inputs for attributes. + +The application handles the complex syntax generation for you when you save. diff --git a/docs/tutorials/use-cases.md b/docs/tutorials/use-cases.md new file mode 100644 index 0000000..11a62bd --- /dev/null +++ b/docs/tutorials/use-cases.md @@ -0,0 +1,61 @@ +# 🎥 Tutorials & Use Cases + +Here are some common scenarios where FM Forge shines, with video guides to help you master the workflow. + +## 1. Fixing Player Attributes Quickly +*Scenario: You noticed a winger has very low Pace or a Goalkeeper is too short.* + +**Workflow:** +1. Search for the player by name. +2. Double-click the attribute cell. +3. Type the new value. +4. Press Enter. + +![Video Placeholder: Quick Edit Workflow](../static/docs/video_quick_edit_placeholder.png) +*(Video coming soon)* + +--- + +## 2. Buffing an Entire Team +*Scenario: You want to boost the Potential Ability of all youth players in a specific club.* + +**Workflow:** +1. Open Filters. +2. Select the Club. +3. Set Age filter (e.g., max 18). +4. Select All players (checkbox in header). +5. Click **Mass Edit**. +6. In the PA field, enter `+10` (to add 10 to everyone) or `160` (to set everyone to 160). +7. Click Apply. + +![Video Placeholder: Mass Edit Team](../static/docs/video_mass_edit_placeholder.png) +*(Video coming soon)* + +--- + +## 3. Creating a "Class of '92" Scenario +*Scenario: You want to add a group of high-potential players appearing in the same year.* + +**Workflow:** +1. Click **Add Player**. +2. Fill in details for the first player. +3. Set the **Birth Year** to your target year. +4. Repeat for other players. +5. Use **Analyst Mode > Temporal** to verify the spike in talent for that year. + +![Video Placeholder: Adding Players](../static/docs/video_add_players_placeholder.png) +*(Video coming soon)* + +--- + +## 4. Balancing a Retro Database +*Scenario: You are converting a database from 2005 to FM24.* + +**Workflow:** +1. Open **Settings**. +2. Set FM Edition to `24` and Retro Year to `2005`. +3. Enable **Show Real Birth Dates**. +4. Now, when you edit Birth Years, you can input "1988" (real year) instead of calculating the in-game year manually. + +![Video Placeholder: Retro Settings](../static/docs/video_retro_settings_placeholder.png) +*(Video coming soon)* diff --git a/docs/user-guide/analyst-mode.md b/docs/user-guide/analyst-mode.md new file mode 100644 index 0000000..de0c1e2 --- /dev/null +++ b/docs/user-guide/analyst-mode.md @@ -0,0 +1,51 @@ +# 📊 Analyst Mode + +Switch to the **Analyst View** using the toggle in the top-right corner to visualize your database. This mode is essential for balancing your custom database and ensuring realistic distributions of talent. + +![Analyst View Placeholder](../static/docs/analyst_view.png) + +## Sections + +### 1. Overview +A high-level summary of the current dataset (or filtered subset). +- Total player count. +- Most common nationality and club. +- Average CA/PA. +- Dominant foot distribution. + +### 2. Geography +Interactive map and list showing where your players come from. +- **Map**: Visual density of player nationalities. +- **List**: Sortable list of countries by player count. + +### 3. Clubs +Analyze club representation. +- See which clubs have the most regens. +- Identify clubs that might be overpowered or underrepresented. + +### 4. Positional Analysis +Breakdown of players by their natural position. +- Ensure you have enough Goalkeepers, Defenders, Midfielders, and Attackers. +- Visual bar charts for easy comparison. + +### 5. Physical Stats +Distribution of Height and Weight. +- **Scatter Plot**: Visualize the correlation between height and weight. +- **Extremes**: See the tallest, shortest, heaviest, and lightest players. + +### 6. Abilities (CA/PA) +Deep dive into player quality. +- **Distribution Curves**: See the spread of Current and Potential Ability. +- **Quartiles**: Box-plot style analysis (Top 25%, Median, Bottom 25%). +- **Top Prospects**: List of the highest PA players. + +### 7. Temporal (Birth Years) +Analyze the age structure of your database. +- **Birth Year Distribution**: Ensure you don't have "gap years" where no regens appear. +- **Month Distribution**: Check for birth month bias. + +--- + +## 💡 Tips +- **Filters apply to Analyst Mode!** You can filter by "Brazil" and switch to Analyst Mode to see stats specifically for Brazilian players. +- Use this mode to check if your "Wonderkid" distribution is realistic (e.g., not too many 190+ PA players). diff --git a/docs/user-guide/features.md b/docs/user-guide/features.md new file mode 100644 index 0000000..c351534 --- /dev/null +++ b/docs/user-guide/features.md @@ -0,0 +1,85 @@ +# 🛠️ Core Features + +## 🔍 Browsing & Filtering + +FM Forge provides powerful tools to find exactly the players you are looking for. + +### Filters Panel +Click the **Filters** bar to expand the advanced search options. + +![Filters Panel Placeholder](../static/docs/filters_panel.png) + +- **Name Search**: Type to search by First, Last, or Common name. Supports partial matches. +- **Country**: Filter by nationality. +- **Club**: Filter by current club or favourite club. +- **Position**: Select specific positions (e.g., "Goalkeeper", "Striker"). +- **Attributes**: Set ranges for Current Ability (CA) and Potential Ability (PA). +- **Physical**: Filter by Preferred Foot. +- **Personal**: Filter by Birth Year or Favourite Number. + +### Sorting +Click any column header to sort the table. Click again to reverse the order. +- **Sortable Columns**: Name, Nationality, Club, CA, PA, Age, Height, Weight. + +--- + +## ✏️ Editing Players + +There are three ways to edit player data in FM Forge. + +### 1. Quick Edit (Inline) +Perfect for making small adjustments without leaving the list view. +- **Double-click** on any cell in the table (e.g., a player's CA or Club). +- The row will switch to **Edit Mode**. +- Modify the values directly. +- Press **Enter** or click the **Save** icon to confirm. +- Press **Escape** to cancel. + +![Quick Edit Placeholder](../static/docs/quick_edit.gif) + +### 2. Full Edit +For comprehensive changes to a player's profile. +- Click the **Edit (Pencil)** icon on the right side of a player row. +- All fields become editable. +- You can change: + - **Personal**: Names, Birth Date, City. + - **Club**: Current Club, Favourite Club. + - **Attributes**: CA, PA, Foot, Position. + - **Appearance**: Ethnicity, Skin Tone, Hair Color, Height, Weight. + +### 3. Mass Edit +Apply changes to multiple players at once. +1. **Select Players**: Use the checkboxes on the left to select players. + * *Tip: Use Shift+Click to select a range.* +2. Click the **"Mass Edit"** button in the floating action bar. +3. **Configure Changes**: + * **Set Value**: Enter a number (e.g., `150`) to set all selected players to that value. + * **Relative Change**: Enter `+10` or `-5` to increase/decrease values relative to each player's current stats. +4. Click **Apply**. + +![Mass Edit Placeholder](../static/docs/mass_edit.png) + +--- + +## ➕ Adding & Deleting + +### Adding a Player +- Click the **"Add Player"** button in the header. +- A new row will appear at the top of the list. +- Fill in the details and save. + +### Deleting a Player +- Click the **Delete (Trash)** icon on a player row. +- The row will be marked for deletion (strikethrough style). +- **Note**: The player is not removed from the file until you **Save**. You can undo the deletion before saving. + +--- + +## 🔄 Change Tracking + +FM Forge keeps track of your changes visually: +- **Yellow**: Modified player. +- **Green**: Newly added player. +- **Red**: Player marked for deletion. + +The header shows a counter of how many unsaved changes you have. diff --git a/docs/user-guide/getting-started.md b/docs/user-guide/getting-started.md new file mode 100644 index 0000000..89d3992 --- /dev/null +++ b/docs/user-guide/getting-started.md @@ -0,0 +1,38 @@ +# 🚀 Getting Started + +## Installation + +FM Forge is a cross-platform application available for macOS, Windows, and Linux. + +1. Download the latest release for your operating system from the [Releases page](../../releases). +2. **macOS**: Drag the `.app` file to your Applications folder. +3. **Windows**: Run the installer `.exe`. +4. **Linux**: Run the `.AppImage` or install the `.deb` package. + +## First Launch + +When you first open FM Forge, you will be greeted by the main dashboard. The table will be empty until you load a file. + +![Dashboard Placeholder](../static/docs/dashboard_empty.png) +*(Screenshot of empty dashboard)* + +## Loading Data + +1. Click the **"Load File"** button in the top-left corner. +2. Navigate to your Football Manager data folder (usually where you keep your `.edt` files). +3. Select one or more `.edt` files. + * *Tip: You can select multiple files to merge them into a single view.* +4. The application will parse the files and display the player records in the table. + +### Mod Settings (Optional) +If you are working with a **Retro Database**, you might want to configure the date offsets: +1. Click the **Settings** (gear icon) in the header. +2. Enter the **FM Edition** (e.g., `24` for FM24). +3. Enter the **Retro Year** (e.g., `2005` for the database year). +4. Toggle **"Show Real Birth Dates"** to see birth years adjusted to the retro era. + +## Saving Your Work + +1. Click the **"Save File"** button. +2. Choose a location and filename. +3. **Important**: You can choose to save **All Players** or only **Filtered Players**. This is useful if you want to extract a specific subset of players into a new file.