---
title: "Setting user TSconfig"
manual: "TypoScript Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3tsref:setting-user-tsconfig@main"
source: "UsingSettingTSconfig/UserTSconfig.rst"
rendered: "2026-09-27T06:53:55+00:00"
---

# Setting user TSconfig {#setting-user-tsconfig}

It is recommended to always define custom user TSconfig in a project-specific
[sitepackage](https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/Index.html#start) extension. This way the user TSconfig
settings can be kept under version control.

-   [Importing the user TSconfig into a backend user or group](https://docs.typo3.org/permalink/t3tsref:importing-the-user-tsconfig-into-a-backend-user-or-group@main)
-   [Setting default user TSconfig](https://docs.typo3.org/permalink/t3tsref:setting-default-user-tsconfig@main)
-   [Verify the final configuration](https://docs.typo3.org/permalink/t3tsref:verify-the-final-configuration@main)
-   [Override and modify values](https://docs.typo3.org/permalink/t3tsref:override-and-modify-values@main)
-   [Overriding page TSconfig in user TSconfig](https://docs.typo3.org/permalink/t3tsref:overriding-page-tsconfig-in-user-tsconfig@main)

## Importing the user TSconfig into a backend user or group {#userthetsconfigfield}

1.  Open the record of the user or group. Go to
    **Options > TSconfig**.

    ![The TSconfig field in the Options tab of a backend user](../Images/ManualScreenshots/BackendUsers/TSconfigUserInput.png)
1.  Enter the following TSconfig to import a configuration file from your
    sitepackage:

    **TsConfig added in the backend record of a backend user or group**

    ```typoscript
    @import 'EXT:my_sitepackage/Configuration/TsConfig/User/my_editor.tsconfig'
    ```

This will make all settings in the file available to the user. The file
itself can be kept under version control together with your sitepackage.

TSconfig defined at user level overrides TSconfig defined at group level.

If a user is a member of several groups, the TSconfig from each
group is loaded. The order in which the groups are added to the user in field
**General > Group** is used.

The TSconfig from latter groups overrides the TSconfig from earlier groups if
both define the same property.

## Setting default user TSconfig {#usersettingdefaultusertsconfig}

User TSconfig is designed to be individual for users or groups of
users. However, good defaults can be defined and overridden by group or
user-specific TSconfig.

Default user TSconfig should be stored within an extension, usually a
sitepackage extension. The content of the file
`Configuration/user.tsconfig` within an extension is automatically loaded
during build time.

It is possible to load other user TSconfig files with the import syntax within
this file:

**EXT:my_extension/Configuration/user.tsconfig**

```typoscript
@import 'EXT:my_sitepackage/Configuration/TsConfig/User/default.tsconfig'
```

The PSR-14 event [BeforeLoadedUserTsConfigEvent](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Core/TypoScript/BeforeLoadedUserTsConfigEvent.html#BeforeLoadedUserTsConfigEvent) is available to
add global static user TSconfig before anything else is loaded.

## Verify the final configuration {#userverifyingthefinalconfiguration}

The full user TSconfig of the currently logged-in backend user can be viewed
using the **System > Configuration** backend module and choosing the
action **$GLOBALS\['BE_USER'\]->getTSConfig() (User TSconfig)**. However
this module can only be accessed by admins.

![Viewing user TSconfig using the Configuration module](../Images/ManualScreenshots/Configuration/UserTSconfigOverview.png)

The **Configuration** module is available with installed
[lowlevel](https://docs.typo3.org/c/typo3/cms-lowlevel/main/en-us/Index.html) system extension.

## Override and modify values {#user-override-modify-values}

Properties, which are set in the TSconfig field of a group, are valid
for all users of that group.

Values set in one group can be overridden and
[modified](https://docs.typo3.org/permalink/t3tsref:typoscript-syntax-syntax-value-modification@main) in the
same or another group. If a user is a member of multiple groups, the TSconfig
settings are evaluated in the order in which the groups are included in the
user account: When editing the backend user, the selected groups are evaluated
from top to bottom.

**Example:**

-   Add in user TSconfig

    **EXT:site_package/Configuration/user.tsconfig**

    ```typoscript
    page.RTE.default.showButtons = bold
    ```
-   You get the value "bold".
-   Add later in user TSconfig

    **EXT:site_package/Configuration/user.tsconfig**

    ```typoscript
    page.RTE.default.showButtons := addToList(italic)
    ```
-   You get the value "bold,italic".

Finally, you can override or
[modify](https://docs.typo3.org/permalink/t3tsref:typoscript-syntax-syntax-value-modification@main) the
settings from groups that your user is a member of in the user TSconfig
field of that specific user.

**Example:**

Let's say the user is a member of a *usergroup* with this
configuration:

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCAdefaults.tt_content {
  hidden = 1
  header = Hello!
}

```

Then we set the following values in the TSconfig field of the specific *user*.

**EXT:site_package/Configuration/user.tsconfig**

```typoscript
page.TCAdefaults.tt_content.header = 234
options.clearCache.all = 1
```

This would override the default value of the header ("234") and add the
clear cache option. The default value of the hidden field is not
changed and simply inherited directly from the group.

## Overriding page TSconfig in user TSconfig {#pageoverridingpagetsconfigwithusertsconfig}

All properties from page TSconfig can be **overridden** in user TSconfig by
prepending the property name with `page.`.

When a page TSconfig property is set in **user** TSconfig that way, regardless
of whether it is in the TSconfig field of a
group or a user, it **overrides** the value of the according **page** TSconfig property.

To illustrate this feature let's say new pages and copied pages are not hidden
by default:

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCAdefaults.pages.hidden = 0
TCEMAIN.table.pages.disableHideAtCopy = 1
```

If we activate the following configuration in the user TSconfig of a certain backend
user group, new and copied pages will be hidden for that group. The user TSconfig to
be used is the same, but prefixed with `page.`

**EXT:site_package/Configuration/TSconfig/editors.tsconfig**

```typoscript
// Override the settings from the page TSconfig for the editors usergroup
page {
  TCAdefaults.pages.hidden = 1
  TCEMAIN.table.pages.disableHideAtCopy = 0
}

```

> [!WARNING]
> **Attention**
>
> It is **not** possible to *reference* the value of a property from page
> TSconfig and to *modify* this value in user TSconfig! If you set a property
> in user TSconfig, which already had been set in *page* TSconfig, then the
> value from page TSconfig will be overridden.
>
> The result of the example below is *not* the value "bold,italic",
> but the value "italic".
>
> **EXT:site_package/Configuration/page.tsconfig**
>
> ```typoscript
> # Enable the "bold" button in Page TSconfig (!)
> RTE.default.showButtons = bold
> ```
>
> **EXT:site_package/Configuration/user.tsconfig**
>
> ```typoscript
> # Try to additionally add the "italic" button in User TSconfig (!)
> page.RTE.default.showButtons := addToList(italic)
> ```
