---
title: "Feature: #91132 - Introduce User Settings JavaScript Modules Event"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-91132"
source: "Changelog/10.4.x/Feature-91132-IntroduceUserSettingsJavaScriptModulesEvent.rst"
modified: "2026-09-14T09:47:36+00:00"
---

# Feature: #91132 - Introduce User Settings JavaScript Modules Event

See [forge#91132](https://forge.typo3.org/issues/91132)

## Description

JavaScript events in custom User Settings Configuration options shall
not be placed as inline JavaScript anymore, but utilize a dedicated
JavaScript module to handle custom events
(see [Important: #91132 - Avoid JavaScript in User Settings Configuration options](https://docs.typo3.org/permalink/changelog:important-91132))

This new PSR-14 event is introduced:

-   `\TYPO3\CMS\SetupEvent\AddJavaScriptModulesEvent`

These public methods are exposed:

-   `public function addModule(string $moduleName): void`
-   `public function getModules(): array`

`$moduleName` refers to the JavaScript module to be loaded with RequireJS
(e.g. `TYPO3/CMS/MyExtension/CustomUserSettingsModule`).

## Example

A listener using mentioned PSR-14 event could look like the following.

1.  Register listener

    `typo3conf/my-extension/Configuration/Services.yaml`

    ```yaml
    services:
       MyVendor\MyExtension\EventListener\CustomUserSettingsListener:
        tags:
          - name: event.listener
            identifier: 'myExtension/CustomUserSettingsListener'
            event: TYPO3\CMS\SetupEvent\AddJavaScriptModulesEvent
    ```
1.  Implement Listener to load JavaScript module `TYPO3/CMS/MyExtension/CustomUserSettingsModule`

    ```php
    namespace MyVendor\MyExtension\EventListener;

    use TYPO3\CMS\SetupEvent\AddJavaScriptModulesEvent;

    class CustomUserSettingsListener
    {
        // name of JavaScript module to be loaded
        private const MODULE_NAME = 'TYPO3/CMS/MyExtension/CustomUserSettingsModule';

        public function __invoke(AddJavaScriptModulesEvent $event): void
        {
            $javaScriptModuleName = 'TYPO3/CMS/MyExtension/CustomUserSettings';
            if (in_array(self::MODULE_NAME, $event->getModules(), true)) {
                return;
            }
            $event->addModule(self::MODULE_NAME);
        }
    }
    ```

## Related

-   [Important: #91132 - Avoid JavaScript in User Settings Configuration options](https://docs.typo3.org/permalink/changelog:important-91132)
