# Custom application settings

**URL:** <https://forum.inductiveautomation.com/t/custom-application-settings/114551>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [March 18, 2026, 12:20pm UTC](https://forum.inductiveautomation.com/t/custom-application-settings/114551 "2026-03-18T12:20:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Flying55](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Flying55](https://forum.inductiveautomation.com/u/Flying55)\
**Post date:** [March 18, 2026, 12:20pm UTC](https://forum.inductiveautomation.com/t/custom-application-settings/114551/1 "2026-03-18T12:20:04Z")

</div>

I’m from the dotnet world and is moving towards Ignition,

In dotnet appsettings.json is used for various types of settings for the application where I can add custom information. Usually there is different versions of it, production and development.

What I would like is to have some general settings saved that are used in the project, some constants or paths to api and such.

I would prefer to use proper way to do things in the Ignition world, so what I am asking is if there is a prefered way to save custom static settings for a perspective application, a good practice.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 18, 2026, 12:48pm UTC](https://forum.inductiveautomation.com/t/custom-application-settings/114551/2 "2026-03-18T12:48:01Z")

</div>

You can use JSON in a file in the install folder (parent of the data folder) and pull it in at the top level of a project script module, holding it in a top-level variable. These act as constants (or caches). Keeping the file out of the data folder ensures it does **not** get caught up in a gateway backup.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [March 18, 2026, 3:21pm UTC](https://forum.inductiveautomation.com/t/custom-application-settings/114551/3 "2026-03-18T15:21:39Z")

</div>

Another approach, if you don't want to do the file reading/writing yourself (and only have simple string keys to store)

You could use the technique Kevin outlines in this post:

> [@Disable devices in Gateway Startup Script (v8.3.0)](https://forum.inductiveautomation.com/t/disable-devices-in-gateway-startup-script-v8-3-0/111599/6):
>
> Setting the deployment mode via an environment variable is not yet supported, you've got to supply the Java system property via a JVM argument, -Dignition.config.mode=yourdeploymentmode. As @paul-griffith mentions, we're going to be doing additional refinements in this area. However, I've got some guidance that might be useful in the meantime. Currently, at time of writing w/ 8.3.0, if you add the deployment mode arg explicitly to your data/ignition.conf, it will be within any gateway backup …

To set up arbitrary system properties (they can have whatever name you want) and then retrieve them in scripting via [`system.util.getProperty`](https://www.docs.inductiveautomation.com/docs/8.3/appendix/scripting-functions/system-util/system-util-getProperty).

I'd use Phil's approach if you need to store anything more complex than a handful of top-level variables that are strings or can be easily type-coerced from string, like booleans/integers.
