<h1 align="center">MC Benchmark</h1>

> Build charts about load time of 1.12 Minecraft modpack.

**Modded Minecraft modpack** could takes ~10 minutes to load. Its could be useful to know, what mod or load step takes so long.
This script parsing `debug.log` file, generated by Forge, and using https://quickchart.io/ API to generate chart images.

<p align="center"><img src="https://i.imgur.com/uZj6wS1.png"/></p>

<p align="center"><img src="https://i.imgur.com/PolHIWi.png"/></p>

## Usage

1. Install latest **NodeJS** for [Windows](https://nodejs.org/en/download/current/) or [Unix](https://nodejs.org/en/download/package-manager/)

2. Open console, navigate to your Minecraft directory (one with the `logs/` directory or `crafttweaker.log` file)

   ```sh
   › cd C:/Instances/MyModpack
   ```

3. Run:
   ```sh
   › npx mc-benchmark > benchmark.md
   ```
4. File after `>` sign would be generated and filled with data.

Minecraft must be launched at least once in advance to generate file `logs/debug.log`.

Some lunchers disable the creation of a `logs/debug.log` file. Change the settings of your luncher in such a case. Example for [CurseForge Luncher](https://i.imgur.com/u3WD1G4.png).

`crafttweaker.log` file is not necessary.

### Options

```
Positionals:
  input  Debug.log path  [string] [default: "logs/debug.log"]

Options:
      --help      Show help  [boolean]
  -c, --ctlog     crafttweaker.log path  [string] [default: "crafttweaker.log"]
  -a, --data      Output of gathered .json data  [string]
  -d, --detailed  Count of detailed mods in main pie chart  [number] [default: 16]
  -t, --template  Non-default template path  [string]
  -m, --modpack   Modpack name in header  [string]
  -v, --verbose   Verbose level -v INFO or -vv DEBUG  [count]
      --cwd       Minecraft directory to OPEN files from  [string] [default: "./"]
  -n, --nospaces  Replace all space characters "\s" in image code. Useful for posting on GitHub.  [boolean] [default: false]
```

### Examples

- **[examples/benchmark.md](examples/benchmark.md)** - Default output without options.
  Useful for version control, because all data that would be changed on new `mc-benchmark` run would be changed in separate lines.
  On Github you will see missed images ![](https://i.imgur.com/DLaTFOZ.png), because GitHub cant parse spaces.
- **[examples/benchmark-nospaces.md](examples/benchmark-nospaces.md)** - using template without spaces, which could be seen from GitHub.

## Author

- https://github.com/Krutoy242
