# How to initialize a modules resource in 8.3

**URL:** <https://forum.inductiveautomation.com/t/how-to-initialize-a-modules-resource-in-8-3/112319>\
**Category:** Ignition\
**Tags:** ignition83\
**Created:** [November 20, 2025, 4:47pm UTC](https://forum.inductiveautomation.com/t/how-to-initialize-a-modules-resource-in-8-3/112319 "2025-11-20T16:47:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aron\_Semle](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Aron\_Semle](https://forum.inductiveautomation.com/u/Aron_Semle)\
**Post date:** [November 20, 2025, 4:47pm UTC](https://forum.inductiveautomation.com/t/how-to-initialize-a-modules-resource-in-8-3/112319/1 "2025-11-20T16:47:02Z")

</div>

I have a custom module with 3 settings, and in 8.3 I’ve created a React app with Webpack and have all that working. The module has a single SettingsResource with the three settings. Everything works, except on install I don’t get a default resource/config.json. What code do I need to run to create the defaults? More specifically.

Here is my resource code:

```python
<public static final ResourceTypeMeta<SettingsResource> META = ResourceTypeMeta.newBuilder(SettingsResource.class)
        .resourceType(RESOURCE_TYPE)
        .categoryName("myCat")
        .defaultConfig(DEFAULT)
        .buildRouteDelegate(routes -> routes.configSchema(SettingsResource.class)
            .openApiGroupName("My Group")
            .openApiTagName("My API Tag"))
        .singleton()
        .build();
/>

```

Then in my gateway class I do the following on setup:

```python
namedResourceHandler = NamedResourceHandler.newBuilder(SettingsResource.META)
                .context(context)
                .onResourceUpdated(resource -> {
                    // My code on change here
                })
           .build();

```

Then I call start/stop on resourcehandler in the gateway start/stop overrides.

My problem is on install in the Ignition directory under data/config/resources/core/my module id/my resource doesn't exist. I get a 404 when I hit my config page saying the resource isn't found. If I manually create the directory and add the config.json and resource.json files, everything works fine.

I looked at the SDK examples, and there is a MongoDB one that looks like it's using a UserExtensionPoint to maybe do the init, but otherwise I'm not seeing it, and I'm not using ExtensionPoints.

In 8.1 there was a way to initial/update the record on startup. Is there a way to do this in 8.3?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 20, 2025, 4:54pm UTC](https://forum.inductiveautomation.com/t/how-to-initialize-a-modules-resource-in-8-3/112319/2 "2025-11-20T16:54:15Z")

</div>

Use a `SingletonResourceHandler` + make sure to call the `defaultConfig()` method when building your `ResourceTypeMeta`.

---

<div class="post-metadata">

**Author:** ![Aron\_Semle](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Aron\_Semle](https://forum.inductiveautomation.com/u/Aron_Semle)\
**Post date:** [November 20, 2025, 5:04pm UTC](https://forum.inductiveautomation.com/t/how-to-initialize-a-modules-resource-in-8-3/112319/3 "2025-11-20T17:04:24Z")

</div>

That did it. I switched to Singleton and it's working. Thank you! For future reference.

```python
resourceHandler = SingletonResourceHandler.newBuilder(SettingsResource.META)
            .context(context)
            .onChange(resource -> {
                 // My code on change here
            })
            .build();

```
