Neoforge Mods.toml: Modloader Value Neoforge Or Javafml Hot!
Defines the version range for the language loader (currently version 1 for most projects). e.g., MIT Mandatory field for the license your mod is provided under. Why javafml is the Standard
Why does this matter to the average modder or server admin? Because misusing this value leads to the classic "loader mismatch" errors. A common mistake is to copy a mods.toml from an old Forge mod, change the name and description, but leave modloader="javafml" . When loaded in a pure Neoforge environment (especially one that has disabled legacy fallbacks), the loader may reject the mod or attempt to run it in an incomplete legacy mode, causing cryptic crashes or missing features. Conversely, setting modloader="neoforge" for a mod that still relies on old Forge internals will cause the Neoforge loader to look for entrypoints or behaviors that don’t exist. Therefore, the rule is straightforward: neoforge mods.toml modloader value neoforge or javafml
Other specialized loaders exist, such as lowcodefml for "low-code" or no-code modding, but for 99% of developers writing standard Java or Kotlin mods, javafml is the requirement. Common Pitfalls and Version Differences Defines the version range for the language loader