Repository navigation
Releases: kferrano/Modwhitelist
Release list
1.21.1-2.1.3
🐛 Fix
- Fixed a rare race condition where ModWhitelist could try to send scan results after the client had already disconnected
- Prevented a
NullPointerExceptionwhen a background scan completed after the connection had already been closed
🔧 Improvement
- Added connection checks before sending scan response chunks
- Remaining scan results are now discarded safely if the client disconnects during the response process
1.21.1-2.1.2
🐛 Fix
- Fixed a rare client-side freeze that could occur while ModWhitelist scans and hashes installed mod files
- SHA-256 file scanning is now performed asynchronously instead of blocking the Minecraft client thread, preventing connection timeouts on systems where scanning the mods folder takes significantly longer
- Added client scan duration logging to make future scan-related issues easier to diagnose
🔧 Improvement
- Mod scan responses are now sent only after the background file scan has completed, without blocking normal client rendering or network processing
1.20.1-3.1.1
🔧 Improvement
settings.jsonis now generated on client startup in Forge 1.20.1- This allows
singleplayerDevModeto be configured before starting a singleplayer world - ModWhitelist checks remain disabled in singleplayer by default and can be enabled explicitly for development/testing
1.19.2-3.0.0
✨ Feature
- Added the new multi-file ModWhitelist configuration system to Forge 1.19
- Added
singleplayerDevModefor testing ModWhitelist in singleplayer/integrated server environments - Added SHA-256 based deny rules for individual mod files
- Added automatic classification into
both_side_required,client_required,client_optionalandserver_only - Added chunked client scan responses for large modpacks
🔧 Improvement
settings.jsonis now generated on client startup sosingleplayerDevModecan be configured before starting a world- Reworked Collect Mode to automatically classify client and server mods/files
- Switched scan nonce generation to
SecureRandom - Improved kick messages and scan validation
- Improved cleanup of pending player scans on logout
🐛 Fix
- Fixed Collect Mode being blocked when
strict=false - Required mod and SHA-256 checks are no longer unintentionally skipped when strict mode is disabled
🧩 Refactor
- Updated the Forge 1.19 networking protocol to support chunked scan packets
- Reworked the legacy single-file configuration system to match the current ModWhitelist architecture
- Updated ModWhitelist commands to the current command structure
📁 File/Project structure
- Replaced the old
config/modwhitelist.jsonlayout with:settings.jsonboth_side_required.jsonclient_required.jsonclient_optional.jsonserver_only.jsondeny.json
- Added automatic migration from the legacy
modwhitelist.jsonconfiguration - Added
ModScanChunkPacketfor segmented client scan responses
⚙️ Compatibility
- Forge 1.19 is now aligned with the current ModWhitelist feature set used by the newer supported versions
- Network protocol updated to version
2
1.18.2-3.0.0
✨ Feature
- Added
singleplayerDevModeto allow developers to enable ModWhitelist checks in Singleplayer. - Added automatic Dedicated Server detection.
- Added
/modwhitelist init. - Added new
/modwhitelist collect on|off|clearcommands. - Added support for
client_requiredandserver_onlymod classifications. - Added chunked client scan responses for large modpacks.
🔧 Improvement
- Updated the 1.18.* version to match the current ModWhitelist feature set.
- Improved client mod and file scanning.
- Improved handling of large mod lists to prevent oversized network packets.
- Added cleanup of pending scans when players disconnect.
- Internal Minecraft/Forge mod IDs are now filtered from collected mod lists.
settings.jsonis now generated even when running in Singleplayer.- Added clearer log messages for Dedicated Server and Singleplayer detection.
🐛 Fix
- Fixed incomplete
settings.jsongeneration logic in the 1.18.* version. - Fixed pending scan data potentially remaining after player disconnects.
- Fixed compatibility issues caused by missing configuration components.
📦 Modpack/Config
-
Replaced the old single
modwhitelist.jsonconfiguration with the new multi-file configuration system. -
Added:
settings.jsonboth_side_required.jsonclient_required.jsonclient_optional.jsonserver_only.jsondeny.json
-
Added migration support for existing legacy
modwhitelist.jsonconfigurations. -
Added file-based deny rules and SHA-256 validation.
-
Added automatic mod classification during collect mode.
⚙️ Compatibility
- Ported the current ModWhitelist functionality to Forge 1.18.* while retaining the required 1.18-specific Minecraft/Forge APIs.
- Updated the network protocol to support chunked scan packets.
1.20.1-3.0.0
Modwhitelist v2.0.0
✨ Feature
-
Split the config into multiple files for better structure and easier maintenance:
settings.jsonboth_side_required.jsonclient_required.jsonclient_optional.jsonserver_only.jsondeny.json
-
Added support for client-only required mods
-
Added support for both-side required mods
-
Added support for server-only mods
-
Added support for optional client-side mods in a cleaner separated setup
🔧 Improvement
-
Added a new collect mode workflow to automatically classify:
- both-side required mods
- client-optional mods
- server-only mods
-
Improved overall config clarity for server admins
-
client_required.jsonis now intentionally kept manual, so admins can decide which client-only mods are truly required -
Added support for denied files in addition to denied mod IDs
🐛 Fix
- Improved kick messages with colored formatting for better readability
- Kick messages are now much clearer when mods or files are missing, denied, or not allowed
- Fixed command structure by simplifying collect mode usage
📁 File/Project structure
- Moved from a single
modwhitelist.jsonto a structured multi-file config folder:config/modwhitelist/
⚙️ Compatibility
- Added automatic legacy migration from the old single-file config to the new multi-file structure
Commands
/modwhitelist reload/modwhitelist init/modwhitelist collect on/modwhitelist collect off/modwhitelist collect clear
Notes
- Old configs are migrated automatically on first start
- Auto-collect writes to:
both_side_required.jsonclient_optional.jsonserver_only.json
client_required.jsonmust be adjusted manually if you want certain client-only mods to be mandatory
1.21.1-2.0.0
Modwhitelist v2.0.0
✨ Feature
-
Split the config into multiple files for better structure and easier maintenance:
settings.jsonboth_side_required.jsonclient_required.jsonclient_optional.jsonserver_only.jsondeny.json
-
Added support for client-only required mods
-
Added support for both-side required mods
-
Added support for server-only mods
-
Added support for optional client-side mods in a cleaner separated setup
🔧 Improvement
-
Added a new collect mode workflow to automatically classify:
- both-side required mods
- client-optional mods
- server-only mods
-
Improved overall config clarity for server admins
-
client_required.jsonis now intentionally kept manual, so admins can decide which client-only mods are truly required -
Added support for denied files in addition to denied mod IDs
🐛 Fix
- Improved kick messages with colored formatting for better readability
- Kick messages are now much clearer when mods or files are missing, denied, or not allowed
- Fixed command structure by simplifying collect mode usage
📁 File/Project structure
- Moved from a single
modwhitelist.jsonto a structured multi-file config folder:config/modwhitelist/
⚙️ Compatibility
- Added automatic legacy migration from the old single-file config to the new multi-file structure
Commands
/modwhitelist reload/modwhitelist init/modwhitelist collect on/modwhitelist collect off/modwhitelist collect clear
Notes
- Old configs are migrated automatically on first start
- Auto-collect writes to:
both_side_required.jsonclient_optional.jsonserver_only.json
client_required.jsonmust be adjusted manually if you want certain client-only mods to be mandatory
1.20.1-2.1.0
Changelog
🐛 Fix
- Fixed an issue where players could get disconnected on join with
Payload may not be larger than 32767 bytes. - Large scan responses are no longer sent as a single oversized packet.
- Pending scan data is now properly cleared when a player logs out.
🔧 Improvement
- Mod and file scans are now split into smaller network packets.
- Received scan data is reassembled correctly on the server side.
- Timeout and nonce validation were cleanly preserved in the updated scan flow.
collectclientonlywas changed to a more compact toggle command.
🧩 Refactor
- Reworked the internal network flow for the client scan.
- Scan handling is now more clearly separated between request, chunked transfer, and final processing.
- Simplified command handling for
collectclientonly.
📦 Modpack/Config
- Reordered entries in the config.
collectWhitelist,collectClientOnly,strictFiles,customMessage, andpackLinkare now grouped aboveallowedinstead of being placed in the middle of the config.- Existing behavior for
strict,strictFiles, andcollectClientOnlyremains unchanged.
⚙️ Compatibility
- Improved stability for larger modpacks with many mods and files.
- Strict mode remains compatible with the new scan transfer flow.