The Joomla Module Generator is a free creator that builds a modern module package for Joomla 5 & 6 (4.4 supported): namespaced PHP, a service provider, language files, and optional media assets. Use it when you need clean boilerplate instead of copying an old mod_* folder by hand.
01Enter Module Name, Module Description, Author, Author Email, Author URL, Version, and License. The Namespace field fills automatically from your module name.
02Optionally enable Include Assets (JS/CSS) and Include jQuery if your module needs front-end scripts or styles.
03Add fieldsets and fields in the Fieldsets and Fields panel. Choose field types, set labels, and drag fields to reorder them.
04Review the live code preview (XML, PHP, language, and optional JS/CSS) as you configure the module.
05Click Generate and Download Module Files to save the mod_*.zip package.
06In Joomla, open System, then Install, then Extensions, upload the ZIP, then create a module instance under Content, then Site Modules and assign it to a position and menu items.
After install, module files live under modules/mod_yourname/ on the site. That is where you continue coding: replace the sample layout output, read parameters, and add helpers as needed. Keep the XML fieldsets in sync when you introduce new settings so administrators can configure the module without editing PHP.
What the boilerplate contains
mod_yourname.xml: the extension manifest with metadata, files, and parameter fieldsets
services/provider.php: the service provider that registers the module with the Joomla DI container
src/Site/Dispatcher/Dispatcher.php: the site dispatcher that loads the layout
tmpl/default.php: the default layout output
language/en-GB/mod_yourname.ini and mod_yourname.sys.ini: frontend and system language strings
Optional media/mod_yourname/js and css files when Include Assets is enabled
The next coding step
Implement the module logic in the dispatcher (queries, API calls, or helpers).
Edit tmpl/default.php for markup and accessibility structure.
Wire parameters from the XML fieldsets with $params->get() in PHP.
Bump the version in the manifest when you package an update ZIP for clients.
Need a custom module built?
This generator gives you a free starter ZIP. If you need business logic, integrations, or a module that ships as a maintained product, see Joomla module development or hire Joomla developers for scoped delivery across EU and US time zones.
What is the difference between a Joomla module, plugin, and component?
A module renders content in a template position. A plugin reacts to Joomla events. A component is a full application with its own views and often an administrator interface. Use this generator for modules; use the plugin generator for event-driven extensions.
Is the generated module compatible with Joomla 5 and 6?
Yes. The boilerplate uses the modern namespaced module structure with a service provider and dispatcher, targeting Joomla 5 & 6 (4.4 supported). Test on your exact site version before production use.
How do I add parameters to the module?
Add fieldsets and fields in the Fieldsets and Fields panel before you download. Those entries are written into the module XML. After install, edit the module instance in Content > Site Modules to set values, and read them in PHP with $params->get().
How do I package an update for the module?
Change the Version field (or the version string in the XML), keep the same element name (mod_yourname), rebuild the ZIP, and install it over the existing extension via System > Install > Extensions. Joomla treats matching element names as updates when the version increases.
Does the tool generate a ready-to-install ZIP file?
Yes. Generate and Download Module Files produces a complete mod_*.zip with the manifest, services provider, dispatcher, layout, language files, and optional media assets.
Where do the module files go after installation?
Joomla installs them under modules/mod_yourname/ on the site. Media assets, when included, are registered for the mod_yourname media destination described in the manifest.