This plugin tries to hide duplicate copies of games based on a modified version of their name (because copies of the same game can have different names, this does not always work perfectly). Only the copy with the highest priority stays visible if the "Hide Duplicates" function is invoked. The priority is based on the order of the source names in the plugin settings section, which can be re-ordered by using the arrows or by dragging the entries according to preference. The higher in the list a source is, the higher its priority. Installed games always have a higher priority than uninstalled games.
You can enable the UI Integration option to display a toggle button next to the play button if it has copies. Note that this feature might not work with every custom theme. Here is an example using the Default theme:
![[Image: Playbutton-Extension.png]](https://i.ibb.co/DWW2rJn/Playbutton-Extension.png)
Settings:
Drag-and-Drop the .pext file onto the Playnite window to install.
GitHub
Help translate: https://crowdin.com/project/duplicatehider
![[Image: localized.svg]](https://badges.crowdin.net/duplicatehider/localized.svg)
![[Image: 61e11d430afb112ea33c3aa5_Button-1-p-500.png]](https://uploads-ssl.webflow.com/5c14e387dab576fe667689cf/61e11d430afb112ea33c3aa5_Button-1-p-500.png)
Contributions:
Translation:
Portuguese, Brazilian: ferrell
French: ohkami, Lacro59
Dutch: WaelALR, wout25
Spanish: darklinkpower
Polish: luniewski
Change log:
v3.0.0:
v2.5.4:
DuplicateHider_2_5_4.pext (Size: 78.03 KB / Downloads: 1,800)
DuplicateHider_2_5_3.pext (Size: 83.81 KB / Downloads: 402)
DuplicateHider_2_5_2.pext (Size: 95.08 KB / Downloads: 237)
DuplicateHider_2_5_1.pext (Size: 80.61 KB / Downloads: 249)
DuplicateHider_2_5_0.pext (Size: 68.68 KB / Downloads: 390)
DuplicateHider_2_3_2.pext (Size: 56.91 KB / Downloads: 779)
DuplicateHider_2_3_1.pext (Size: 56.51 KB / Downloads: 295)
DuplicateHider_2_3_0.pext (Size: 56.44 KB / Downloads: 264)
DuplicateHider_2_2_5.pext (Size: 56.99 KB / Downloads: 717)
DuplicateHider_2_2_4.pext (Size: 55.93 KB / Downloads: 287)
DuplicateHider_2_2_3.pext (Size: 58.25 KB / Downloads: 347)
DuplicateHider_2_2_2.pext (Size: 49.41 KB / Downloads: 346)
DuplicateHider_2_2_1.pext (Size: 50.65 KB / Downloads: 314)
DuplicateHider_2_2.pext (Size: 47.64 KB / Downloads: 282)
DuplicateHider_2_1.pext (Size: 45.98 KB / Downloads: 336)
DuplicateHider_2_0_1.pext (Size: 44.41 KB / Downloads: 289)
DuplicateHider_2_0.pext (Size: 42.09 KB / Downloads: 311)
DuplicateHider_1_6.pext (Size: 3.35 KB / Downloads: 416)
DuplicateHider_1_5.pext (Size: 3.24 KB / Downloads: 365)
DuplicateHider_1_4.pext (Size: 2.51 KB / Downloads: 426)
DuplicateHider_1_3.pext (Size: 2.43 KB / Downloads: 315)
DuplicateHider_1_2.pext (Size: 2.42 KB / Downloads: 331)
You can enable the UI Integration option to display a toggle button next to the play button if it has copies. Note that this feature might not work with every custom theme. Here is an example using the Default theme:
![[Image: Playbutton-Extension.png]](https://i.ibb.co/DWW2rJn/Playbutton-Extension.png)
Settings:
- Priorites: Source names ordered by their priority. Highest priority at the top. Can be re-ordered using the arrows or by dragging the entries onto the desired position.
- Update Rank Automatically: If enabled, duplicates will be hidden when Playnite opens and whenever a game is changed, added or removed, ensuring that only the game with the highest priority stays visible. If disabled, the "Hide Duplicates" and "Reveal Duplicates" extension functions have to be invoked manually after any changes to games or settings.
- Show Copies in Game Menu: If enabled, right clicking a game will show a "Other copies" entry which contains all other (hidden) copies of the currently selected game. Clicking on the other copies will attempt to launch them using Playnite.
- Included Platforms: Only games with platforms enabled in this setting are considered when looking for duplicates. By clicking the down arrow in the text box, a list of all available platforms is revealed. Only checked platforms are enabled. You can also type in the text box to search for a specific platform you want to enable/disable. Only "PC" and "Undefined" are enabled by default.
- Exluded Sources: Games form sources enabled in this setting are ingored when looking for duplicates. By clicking the down arrow in the text box, a list of all available sources is revealed. Only checked sources are enabled. You can also type in the text box to search for a specific source you want to enable/disable. None are enabled by default.
- Exluded Categories: Similar to Exluded Sources, but excludes enabled categories.
- Ignored Games: A list of games manually put onto a ignore list using the "Add Selected Games to Ignore List" extension function. Games on this list are not considered when looking for duplicates. Select one or more entries to remove them from the list by right clicking and then clicking "Remove Entry". You can also remove games from this list using the "Remove Selected Games from Ignore List" extension function.
- Display string for other copies: String used to display other copies in the game menu, when enabled. Right click to insert placeholder variables. Conditional text can be added before and after the variable name: {Prefix'Variable'Suffix}. Prefix and Suffix will only be visible if Variable can be evaluated.
- Custom Replacement Rule: String replacement rules that matches the left side with a part of a game name and replaces it with the right side. The left side can be interpreted as a regular expression if the checkbox next to "Regex" is checked.
- Enable UI Integration: If enabled, DuplicateHider will try to add an extra button next to the play button to start and install other copies of a game. Might not work with every custom theme.
Drag-and-Drop the .pext file onto the Playnite window to install.
GitHub
Help translate: https://crowdin.com/project/duplicatehider
![[Image: 61e11d430afb112ea33c3aa5_Button-1-p-500.png]](https://uploads-ssl.webflow.com/5c14e387dab576fe667689cf/61e11d430afb112ea33c3aa5_Button-1-p-500.png)
Contributions:
Translation:
Portuguese, Brazilian: ferrell
French: ohkami, Lacro59
Dutch: WaelALR, wout25
Spanish: darklinkpower
Polish: luniewski
Change log:
v3.0.0:
- Playnite 9 Beta Support, not compatible with Playnite 8
- Custom UI Support, used in a showcase theme as an example: DH_Night, Forum Post
- Addon-Id changed, so the extension needs to be uninstalled before installing the new one
v2.5.4:
- updated to QuickSearchSDK 1.3
- added settings to QuickSearch
- added new option to sort by release date if source scores are equal
- updated to QuickSearchSDK 1.2
- updated to QuickSearchSDK 1.1
- Added support for QuickSearch extension.
- Added option to add toggle button next to play button to launch / install other copies of a game (might not work as expected with every theme)
- Added option to define custom string replacement rules that are applied to game names before further processing
- optionally: left side of rule can be intepreted as a regular expression if checkbox is checked.
- optionally: left side of rule can be intepreted as a regular expression if checkbox is checked.
- fixed extension crashing when game names contained numbers outside int32 range
- Added support for ExtensionUpdater to check for new versions.
- Added new option for "Ignore List": "Add manually hidden/revealed Games". If enabled, when the visibility of a game is changed by something other than DuplicateHider, the game is added to the Ignore List. This way DuplicateHider does not override a game's visibibilty which prevented the user from hiding games that have duplicates.
- Improved duplicate detection if game names contain roman numerals in one copy and arabic numerals in another
- Added more symbols to the special character filter to improve duplicate detection
- some small UI improvements
- Fixed Priorities list not being saved/loaded correctly.
- Fixed game not being automatically revealed if only one copy is left after removing another copy (Only if Update Rank Automatically is enabled)
- Display string can have a conditional prefix and/or suffix in this format: {Prefix'Variable'Suffix}. The prefix and suffix are only shown if the variable exists. E.g. {ROM: 'ImageNameNoExt} will evaluate to "ROM: MyRom" if an image file with the name "MyRom" exists, otherwise it will evaluate to the empty string.
- Added customizable display string to plugin settings. Right-click to insert placeholder varaibles
- Added option to show other copies of a game in a game's context menu (Game Menu)
- Fixed default settings not being applied
- Fixed Priority list not being populated
- Ported script over to a full plugin
- Added menu function to add/remove selected games from a ignore list, which will cause DuplicateHider to not consider them when looking for duplicates
- Options moved to plugin settings menu
- Priorites can be changed using the arrows or by dragging them to the desired position
- Ignored games can be removed from the list by selecting one ore more entries and right-clicking them
- Search function for Include/Exclude options
- Priorites can be changed using the arrows or by dragging them to the desired position
- Old settings are not restored when updating from a version below 2.0
- Old version needs to be uninstalled manually when updating from a version below 2.0, otherwise old menu functions will exist next to the new ones
- When UpdateAutomatically is enabled, priorities are also re-evaluated when a game is installed/uninstalled.
- Reminder: When updating, customized priority lists and exclusion lists will be overriden. Back it up before updating to restore it after the update
- Moved configuration to extra json config file.
- Config file can be opened via a new menu function.
- Added option to automatically hide/reveal games when new games are added or when old ones are removed. This always keeps one copy visible, according to the priorities and include/exclude lists (disabled by default, set "UpdateAutomatically" to true in config.json to enable it).
- Reminder: When updating, customized priority lists and exclusion lists will be overriden. Back it up before updating to restore it after the update
- Added "IncludePlatforms" list. Only platform specified in that list are considered when hiding duplicates. Defaulted to "PC" and "Undefined" (games without platform). (Addressing this issue)
- Reminder: When updating, customized priority lists will be overriden. Back it up before updating to restore it after the update
- Added more sources to predefined priorities.
- Reminder: When updating, customized priority lists will be overriden. Back it up before updating to restore it after the update
- added lists to exclude games in specific sources and games in specific categories from being hidden.
- as suggested by darklinkpower:
- added some string replacements to handle different kinds of "GOTY" tags in game names
- added "Undefined" to Priorities list. Games without a source get the priority of "Undefined"
- added "Rockstar Games" source to predefined priorities
- added some string replacements to handle different kinds of "GOTY" tags in game names