perfectionist-plugins 2.0.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,121 +1,143 @@
1
- <div align="center">
2
-
3
- # Perfectionism
4
-
5
- **Small plugins that fix the annoying parts of League of Legends champ select.**
6
-
7
- Built for [Pengu Loader](https://pengu.lol)
8
-
9
- ![Pengu Loader](https://img.shields.io/badge/Pengu%20Loader-plugin%20suite-8A63D2?style=for-the-badge)
10
- ![League of Legends](https://img.shields.io/badge/League%20of%20Legends-client-C89B3C?style=for-the-badge)
11
- ![Stars](https://img.shields.io/github/stars/SrKing-9812/Perfectionist-Plugins?style=for-the-badge&color=F5C542)
12
-
13
- </div>
14
-
15
- <br>
16
-
17
- ## Plugins
18
-
19
- <table>
20
- <tr>
21
- <th align="left">🛡️ Ban Blocker</th>
22
- </tr>
23
- <tr>
24
- <td>
25
- In champ select, every teammate except you gets a <b>BLOCK</b> button.
26
- <br><br>
27
- While a teammate is blocked, the plugin instantly prepicks the champion they are about to ban on your own pick turn. That way, their ban can never land on it.
28
- </td>
29
- </tr>
30
- <tr>
31
- <td>&nbsp;</td>
32
- </tr>
33
- <tr>
34
- <th align="left">🎨 Hide Unowned Skins</th>
35
- </tr>
36
- <tr>
37
- <td>
38
- In champ select, the skin carousel only shows the skins you own for the champion you picked.
39
- <br><br>
40
- No more scrolling past skins you can't use.
41
- </td>
42
- </tr>
43
- <tr>
44
- <td>&nbsp;</td>
45
- </tr>
46
- <tr>
47
- <th align="left">🔓 Unlock Profile Skins</th>
48
- </tr>
49
- <tr>
50
- <td>
51
- In the <b>Set profile background</b> window, every skin shows as unlocked, even the event skins (Signature).
52
- <br><br>
53
- Browse the full list and pick any skin you like as your profile background.
54
- </td>
55
- </tr>
56
- <tr>
57
- <td>&nbsp;</td>
58
- </tr>
59
- <tr>
60
- <th align="left">🎁 Auto Claimer</th>
61
- </tr>
62
- <tr>
63
- <td>
64
- Claims every reward for you the moment it becomes claimable — event tracks, missions and the TFT Battle Pass.
65
- <br><br>
66
- Three optional extras, all <b>off by default</b>: auto-buy shop items Riot lists for 1 BE,
67
- auto-open mystery loot (icons, ward skins), and auto-open chests with keys.
68
- </td>
69
- </tr>
70
- <tr>
71
- <td>&nbsp;</td>
72
- </tr>
73
- <tr>
74
- <th align="left">🚀 BetterClient</th>
75
- </tr>
76
- <tr>
77
- <td>
78
- Debloats the client without changing how it looks or behaves: telemetry and analytics calls are dropped,
79
- duplicate requests are merged, and immutable payloads (game-data assets and rune definitions) are cached
80
- instead of re-downloaded and re-parsed every time a screen renders.
81
- <br><br>
82
- Tiles are marked for asynchronous decode, so building bot lists, champion grids and the tournament-draft
83
- board no longer stalls the UI, and the in-game un-gate pass backs off to one check every five seconds once it
84
- has nothing left to unlock.
85
- <br><br>
86
- It also keeps the social panel, friend requests and settings usable while a game is running.
87
- <br><br>
88
- For memory creep, <code>tools/betterclient-monitor.mjs</code> logs per-process RAM and client phase to CSV and
89
- diffs heap snapshots.
90
- </td>
91
- </tr>
92
- </table>
93
-
94
- ## Install
95
-
96
- 1. Download this repo.
97
- 2. Move the `Perfectionism` folder into your Pengu Loader `plugins` folder.
98
- 3. Restart the League Client.
99
-
100
- That's it. The folder holds one tiny loader file. The plugins themselves come from the
101
- [`perfectionist-plugins`](https://www.npmjs.com/package/perfectionist-plugins) npm package the
102
- first time the client starts. Install, remove and toggle plugins in **Settings → Perfectionism**.
103
-
104
- ## Updates
105
-
106
- Every time the client starts, the loader checks npm for a newer version and runs it. Publishing
107
- a new version of the npm package **is** the update. If a new version appears while the client is
108
- already open, the suite downloads it with a progress window and restarts the client at a safe
109
- moment (never in the middle of a game). You never replace files by hand.
110
-
111
- <br>
112
-
113
- ---
114
-
115
- <div align="center">
116
-
117
- Made by **Sr. King** 👑
118
-
119
- If these helped you, a ⭐ on the repo is always nice.
120
-
121
- </div>
1
+ <div align="center">
2
+
3
+ # Perfectionism
4
+
5
+ **Small plugins that fix the annoying parts of League of Legends champ select.**
6
+
7
+ Built for [Pengu Loader](https://pengu.lol)
8
+
9
+ ![Pengu Loader](https://img.shields.io/badge/Pengu_Loader-plugin_suite-8A63D2?style=for-the-badge)
10
+ ![League of Legends](https://img.shields.io/badge/League_of_Legends-client-C89B3C?style=for-the-badge)
11
+ ![Stars](https://img.shields.io/github/stars/SrKing-9812/Perfectionist-Plugins?style=for-the-badge&color=F5C542)
12
+
13
+ </div>
14
+
15
+ <br>
16
+
17
+ ## Plugins
18
+
19
+ <table>
20
+ <tr>
21
+ <th align="left">🛡️ Ban Blocker</th>
22
+ </tr>
23
+ <tr>
24
+ <td>
25
+ In champ select, every teammate except you gets a <b>BLOCK</b> button.
26
+ <br><br>
27
+ While a teammate is blocked, the plugin instantly prepicks the champion they are about to ban on your own pick turn. That way, their ban can never land on it.
28
+ </td>
29
+ </tr>
30
+ <tr>
31
+ <td>&nbsp;</td>
32
+ </tr>
33
+ <tr>
34
+ <th align="left">🎨 Hide Unowned Skins</th>
35
+ </tr>
36
+ <tr>
37
+ <td>
38
+ In champ select, the skin carousel only shows the skins you own for the champion you picked.
39
+ <br><br>
40
+ The list is filtered where the client reads it, so the carousel, the arrows and the dots all move through owned
41
+ skins only, and the ones that are left keep their normal spacing.
42
+ </td>
43
+ </tr>
44
+ <tr>
45
+ <td>&nbsp;</td>
46
+ </tr>
47
+ <tr>
48
+ <th align="left">🔓 Unlock Profile Skins</th>
49
+ </tr>
50
+ <tr>
51
+ <td>
52
+ In the <b>Set profile background</b> window, every skin shows as unlocked, even the event skins (Signature).
53
+ <br><br>
54
+ Browse the full list and pick any skin you like as your profile background.
55
+ </td>
56
+ </tr>
57
+ <tr>
58
+ <td>&nbsp;</td>
59
+ </tr>
60
+ <tr>
61
+ <th align="left">🎁 Auto Claimer</th>
62
+ </tr>
63
+ <tr>
64
+ <td>
65
+ Claims every reward for you the moment it becomes claimable — event tracks, missions and the TFT Battle Pass.
66
+ <br><br>
67
+ Three optional extras: auto-buy shop items Riot lists for 1 BE, auto-open mystery loot (icons, ward skins), and auto-open chests with keys.
68
+ </td>
69
+ </tr>
70
+ <tr>
71
+ <td>&nbsp;</td>
72
+ </tr>
73
+ <tr>
74
+ <th align="left">🚀 BetterClient</th>
75
+ </tr>
76
+ <tr>
77
+ <td>
78
+ Debloats the client without changing how it looks or behaves: telemetry and analytics calls are dropped,
79
+ duplicate requests are merged, and immutable payloads (game-data assets and rune definitions) are cached
80
+ instead of re-downloaded and re-parsed every time a screen renders.
81
+ <br><br>
82
+ Everything it does on the page runs in idle slices instead of blocking navigation: image decode marking is
83
+ batched, the client phase comes from the client's own events rather than a timer, and the in-game un-gate pass
84
+ reads the page once with a single query and backs off to one check every five seconds once it has nothing left
85
+ to unlock.
86
+ <br><br>
87
+ It also keeps the social panel, friend requests and settings usable while a game is running, and repairs the
88
+ champ-select data race after a client reload so the ban list is still populated.
89
+ <br><br>
90
+ For weaker machines there is one optional switch, <b>Performance mode</b>, which drops background blur,
91
+ decorative animation and looping background video. Leave it off and the client is pixel-identical.
92
+ <br><br>
93
+ <b>Diagnostics</b> is a separate opt-in switch, off by default. It keeps an in-memory tally of long tasks,
94
+ screen settle times, requests and heap samples and has a <b>Copy report</b> button. Nothing is sent over the
95
+ network and the report contains no account, summoner, token or LCU data.
96
+ </td>
97
+ </tr>
98
+ </table>
99
+
100
+ ## Install
101
+
102
+ 1. Download this repo.
103
+ 2. Move the `Perfectionism` folder into your Pengu Loader `plugins` folder.
104
+ 3. Restart the League Client.
105
+
106
+ ### Test a local build without npm
107
+
108
+ Unzip `Perfectionism-folder-install.zip`, then move the `Perfectionism` folder it
109
+ contains into Pengu Loader's `plugins` folder and restart the client. That folder
110
+ carries the plugin files themselves and loads them locally, so no CDN version is
111
+ needed. Do not keep it next to the normal loader folder at the same time — Pengu
112
+ would load the suite twice.
113
+
114
+ That's it. The folder holds one tiny loader file. The plugins themselves come from the
115
+ [`perfectionist-plugins`](https://www.npmjs.com/package/perfectionist-plugins) npm package the
116
+ first time the client starts. Install, remove and toggle plugins in **Settings → Perfectionism**.
117
+
118
+ ## Updates
119
+
120
+ Every time the client starts, the loader checks npm for a newer version and runs it. Publishing
121
+ a new version of the npm package **is** the update. If a new version appears while the client is
122
+ already open, the suite downloads it with a progress window and restarts the client at a safe
123
+ moment (never in the middle of a game). You never replace files by hand.
124
+
125
+ ### Diagnostics (optional)
126
+
127
+ Open **Settings → Perfectionism → BetterClient**, enable **Diagnostics**, use the
128
+ client normally, then press **Copy report**. It records long tasks, screen settle
129
+ times, request counts and heap samples in memory only. It is off by default and
130
+ sends nothing over the network; the report has no account, summoner, token or LCU
131
+ data.
132
+
133
+ <br>
134
+
135
+ ---
136
+
137
+ <div align="center">
138
+
139
+ Made by **Sr. King** 👑
140
+
141
+ If these helped you, a ⭐ on the repo is always nice.
142
+
143
+ </div>