Overview

Loads mods from nested folders in the mods directory.

A file explorer window showing the mods folder with the FFModsSubfolders jar at the top level and subfolders named performance, qol, worldgen and testing.disabled.

Features

Getting started

  1. Put FFModsSubfolders itself directly in mods.
  2. Create some subfolders and move your other NeoForge mods into them.
  3. Start the game. Look for [mod scan] in the log for a scan summary and any warnings.

Rename a folder to end in .disabled to skip everything inside it, including deeper folders. For example, mods/testing.disabled/ is ignored. Renaming it back enables it again on your next launch. Folder suffix matching is case-insensitive.

Configuration

After the first launch, edit config/ffmodsubfolders-common.toml. Changes affect the next launch because mod discovery happens before normal configuration registration. Config editing mods can also show the translated setting names and tooltips.

Group Setting Default Purpose
general enabled true Enable recursive scanning.
general disabledFolderSuffix .disabled Skip folders ending with this nonblank suffix.
general maxScanDepth 32 Maximum folder depth, from 1 to 256.
logging logIndividualSubfolders true Log each scanned folder.
logging logEmptySubfolders false Include empty folders in normal logs.
logging warnOnDuplicateJarNames true Warn about repeated jar filenames.
sinytraConnector enableConnectorIntegration true Pass scanned folders to Connector when available.

The default depth of 32 counts mods/a/ as level 1. Symlink loops are skipped. Unreadable folders, empty jars and duplicate filenames produce diagnostic messages.

Compatibility and limitations

Requirements and source version

Minecraft1.20.4, 1.20.6, 1.21, 1.21.1 through 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
LoaderNeoForge only. Choose the jar and NeoForge build matching Minecraft; checked loader ranges are listed below. Java 17 for 1.20.4, Java 21 for 1.20.6 and 1.21.x, Java 25 for 26.x.
Source version0.6.0

The Modrinth button is enabled only when a published project link is configured. The source version above may be newer than the latest published file.

Checked NeoForge targets

MinecraftBuild checkedAllowed NeoForge range
1.20.420.4.251[20.4.251,20.5)
1.20.620.6.141[20.6.141,20.7)
1.2121.0.167[21.0.167,21.1)
1.21.121.1.252[21.1.244,21.2)
1.21.221.2.1-beta[21.2.1-beta,21.3)
1.21.321.3.97[21.3.97,21.4)
1.21.421.4.158[21.4.158,21.5)
1.21.521.5.98[21.5.98,21.6)
1.21.621.6.20-beta[21.6.20-beta,21.7)
1.21.721.7.25-beta[21.7.25-beta,21.8)
1.21.821.8.54[21.8.54,21.9)
1.21.921.9.16-beta[21.9.16-beta,21.10)
1.21.1021.10.64[21.10.64,21.11)
1.21.1121.11.45[21.11.45,21.12)
26.126.1.0.19-beta[26.1.0.19-beta,26.1.1)
26.1.126.1.1.15-beta[26.1.1.15-beta,26.1.2)
26.1.226.1.2.114[26.1.2.114,26.1.3)
26.226.2.0.88[26.2.0.88,26.3)
26.326.3.0.43-beta[26.3.0.43-beta,26.4)

Some short-lived Minecraft releases only have beta NeoForge builds. Minecraft 1.20.1, 1.20.2, 1.20.3 and 1.20.5 are not supported by these downloads. Connector and client graphics compatibility are not verified across this matrix.

Installation and startup services

Choose the jar for your Minecraft version and keep FFModsSubfolders directly in mods. No other mod is required. On 1.20.4 and 1.21.9 or newer, other mods providing early startup services must also stay directly in mods; misplaced jars produce a warning. Connector compatibility was previously checked on 1.21.1 and is not verified for the new targets.