# Module Development

**URL:** https://forum.inductiveautomation.com/c/module-development/7.md

[Latest](https://forum.inductiveautomation.com/latest.md) · [Categories](https://forum.inductiveautomation.com/categories.md) · [Tags](https://forum.inductiveautomation.com/tags.md)

---

## [Io.ia.sdk.modl Gradle Plugin and Module Generator Releases](https://forum.inductiveautomation.com/t/io-ia-sdk-modl-gradle-plugin-and-module-generator-releases/95376)

<div class="topic-metadata">

**Author:** [@Brian\_Ray](https://forum.inductiveautomation.com/u/Brian_Ray)\
**Replies:** 5\
**Last updated:** [January 21, 2026, 5:26pm UTC](https://forum.inductiveautomation.com/t/io-ia-sdk-modl-gradle-plugin-and-module-generator-releases/95376 "2026-01-21T17:26:39Z")

</div>

New 0.4.0 releases are now up on the inductiveautomation/ignition-module-tools GitHub and the Gradle Plugins repositories. The GH release link has the changelog. Meta-note: The versions the plugin and the generator are…

---

## [NEW Ignition SDK Programmer's Guide](https://forum.inductiveautomation.com/t/new-ignition-sdk-programmers-guide/81903)

<div class="topic-metadata">

**Author:** [@Susan\_Shamgar](https://forum.inductiveautomation.com/u/Susan_Shamgar)\
**Replies:** 7\
**Last updated:** [November 1, 2024, 6:38am UTC](https://forum.inductiveautomation.com/t/new-ignition-sdk-programmers-guide/81903 "2024-11-01T06:38:41Z")

</div>

The IA documentation team is happy to announce that we have a new version of the Ignition SDK Guide available now at sdk-docs.inductiveautomation.com. We’d love to get your feedback on the guide and would appreciate any …

---

## [Ignition SDK Programmer's Guide](https://forum.inductiveautomation.com/t/ignition-sdk-programmers-guide/2878)

<div class="topic-metadata">

**Author:** [@Colby.Clegg](https://forum.inductiveautomation.com/u/Colby.Clegg)\
**Replies:** 9\
**Last updated:** [March 28, 2019, 1:45pm UTC](https://forum.inductiveautomation.com/t/ignition-sdk-programmers-guide/2878 "2019-03-28T13:45:34Z")

</div>

We've written a new programmer's guide for the sdk that will shortly make its way into the distribution. In the meantime, however, I wanted to make it available here for reference and feedback. We certainly recognize t…

---

## [Getting an OpcUaServer reference](https://forum.inductiveautomation.com/t/getting-an-opcuaserver-reference/113708)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 3\
**Last updated:** [October 12, 2026, 11:27am UTC](https://forum.inductiveautomation.com/t/getting-an-opcuaserver-reference/113708 "2026-10-12T11:27:48Z")

</div>

I'd like to register some DataType nodes in my own namespace when my module starts. Is there a supported way to get a reference to the gateway's OpcUaServer? I'm assuming I'd have to reference the OPC UA module from the…

---

## [8.3 module migration: supported timing for deleting legacy PersistentRecord rows after NamedRecordMigrationStrategy?](https://forum.inductiveautomation.com/t/8-3-module-migration-supported-timing-for-deleting-legacy-persistentrecord-rows-after-namedrecordmigrationstrategy/117377)

<div class="topic-metadata">

**Author:** [@mdia](https://forum.inductiveautomation.com/u/mdia)\
**Replies:** 1\
**Last updated:** [October 7, 2026, 10:13pm UTC](https://forum.inductiveautomation.com/t/8-3-module-migration-supported-timing-for-deleting-legacy-persistentrecord-rows-after-namedrecordmigrationstrategy/117377 "2026-10-07T22:13:26Z")

</div>

Hi all, We're developing a module that supports both Ignition 8.1 and 8.3, and I'm testing the supported 8.1 → 8.3 configuration migration path. On 8.1, the module stores configuration in a PersistentRecord. On 8.3, th…

---

## [AI and the future of Ignition development](https://forum.inductiveautomation.com/t/ai-and-the-future-of-ignition-development/117303)

<div class="topic-metadata">

**Author:** [@mehrdadtelli](https://forum.inductiveautomation.com/u/mehrdadtelli)\
**Replies:** 17\
**Last updated:** [October 7, 2026, 1:45pm UTC](https://forum.inductiveautomation.com/t/ai-and-the-future-of-ignition-development/117303 "2026-10-07T13:45:21Z")

</div>

AI coding assistance is surprisingly changing the way developers and integrators work, and it raises some interesting questions about what will happen in the coming years — maybe over the next 2–5 years. AI can already …

---

## [Ignition without OPC-UA?](https://forum.inductiveautomation.com/t/ignition-without-opc-ua/117286)

<div class="topic-metadata">

**Author:** [@christofer.dutz](https://forum.inductiveautomation.com/u/christofer.dutz)\
**Replies:** 9\
**Last updated:** [October 6, 2026, 10:14am UTC](https://forum.inductiveautomation.com/t/ignition-without-opc-ua/117286 "2026-10-06T10:14:00Z")

</div>

Hi all, in the past I've had two customers trying my ADS driver and reporting class not found exceptions. I was a bit puzzled as they are core classes of the OPC-UA sub-system. Recently one of them reported that he had…

---

## [SDK Artifact Repo \`nexus.inductiveautomation.com\` | Downtime | 2026-10-02 17:00 PDT (2026-10-03 00:00 UTC)](https://forum.inductiveautomation.com/t/sdk-artifact-repo-nexus-inductiveautomation-com-downtime-2026-10-02-17-00-pdt-2026-10-03-00-00-utc/117310)

<div class="topic-metadata">

**Author:** [@Brian\_Ray](https://forum.inductiveautomation.com/u/Brian_Ray)\
**Replies:** 0\
**Last updated:** [October 2, 2026, 2:32pm UTC](https://forum.inductiveautomation.com/t/sdk-artifact-repo-nexus-inductiveautomation-com-downtime-2026-10-02-17-00-pdt-2026-10-03-00-00-utc/117310 "2026-10-02T14:32:05Z")

</div>

The artifact repository at nexus.inductiveautomation.com will be down for maintenance starting 2026-10-02 17:00 PDT (2026-10-03 00:00 UTC) . It should be down for no more than 90 minutes. During this downtime, the SDK a…

---

## [Catalyst + 3rd Party Modules](https://forum.inductiveautomation.com/t/catalyst-3rd-party-modules/117292)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 6\
**Last updated:** [October 2, 2026, 2:17am UTC](https://forum.inductiveautomation.com/t/catalyst-3rd-party-modules/117292 "2026-10-02T02:17:46Z")

</div>

On release, what options will module authors have for integrating with Catalyst’s features? (IDK how to talk about this yet, so I’m going to refer to Catalyst as an “actor” lol) Specific questions: Will Catalyst know…

---

## [Performance problems with Tag Provider](https://forum.inductiveautomation.com/t/performance-problems-with-tag-provider/116993)

<div class="topic-metadata">

**Author:** [@philipp.melzer](https://forum.inductiveautomation.com/u/philipp.melzer)\
**Replies:** 7\
**Last updated:** [September 8, 2026, 12:27pm UTC](https://forum.inductiveautomation.com/t/performance-problems-with-tag-provider/116993 "2026-09-08T12:27:24Z")

</div>

We are currently developing our own MES, using the Java modules. Do to this we need to read, write and subscribe to PLC tags. The communication between the MES and PLC is based on handshake, i.e. setting a Boolean tag t…

---

## [ServiceConnector contexte](https://forum.inductiveautomation.com/t/serviceconnector-contexte/116890)

<div class="topic-metadata">

**Author:** [@r.lebohec](https://forum.inductiveautomation.com/u/r.lebohec)\
**Replies:** 2\
**Last updated:** [August 25, 2026, 5:05pm UTC](https://forum.inductiveautomation.com/t/serviceconnector-contexte/116890 "2026-08-25T17:05:41Z")

</div>

I created a new cloud connector by implementing ServiceConnectorExtensionPoint / ServiceConnector. During module startup, the getExtensionPoints function is called before the setup function of the ModuleHook class. As …

---

## [Downtime | SDK Artifact Repo \`nexus.inductiveautomation.com\` | 2026-08-26 18:00 PDT (2026-08-27 01:00 UTC)](https://forum.inductiveautomation.com/t/downtime-sdk-artifact-repo-nexus-inductiveautomation-com-2026-08-26-18-00-pdt-2026-08-27-01-00-utc/116889)

<div class="topic-metadata">

**Author:** [@Brian\_Ray](https://forum.inductiveautomation.com/u/Brian_Ray)\
**Replies:** 0\
**Last updated:** [August 25, 2026, 3:34pm UTC](https://forum.inductiveautomation.com/t/downtime-sdk-artifact-repo-nexus-inductiveautomation-com-2026-08-26-18-00-pdt-2026-08-27-01-00-utc/116889 "2026-08-25T15:34:12Z")

</div>

The artifact repository at nexus.inductiveautomation.com will be down for maintenance starting 2026-08-26 18:00 PDT (2026-08-27 01:00 UTC) . It should be down for no more than 90 minutes. During this downtime, the SDK a…

---

## [\[IGN-17532\]NPE in ViewNode.onChildrenSelected after calling IgnitionDesigner.updateProject() from a module](https://forum.inductiveautomation.com/t/ign-17532-npe-in-viewnode-onchildrenselected-after-calling-ignitiondesigner-updateproject-from-a-module/116816)

<div class="topic-metadata">

**Author:** [@kgamble](https://forum.inductiveautomation.com/u/kgamble)\
**Replies:** 2\
**Last updated:** [August 18, 2026, 5:27pm UTC](https://forum.inductiveautomation.com/t/ign-17532-npe-in-viewnode-onchildrenselected-after-calling-ignitiondesigner-updateproject-from-a-module/116816 "2026-08-18T17:27:46Z")

</div>

I know this is probably an un-documented approach to refreshing the Project Browser, but I'm wondering if this is considered a bug that could be fixed to enable this functionality. I maintain an open-source Designer mod…

---

## [Module Showcase Licensing: Intended Use of Activation Grants](https://forum.inductiveautomation.com/t/module-showcase-licensing-intended-use-of-activation-grants/116773)

<div class="topic-metadata">

**Author:** [@j.perry](https://forum.inductiveautomation.com/u/j.perry)\
**Replies:** 6\
**Last updated:** [August 14, 2026, 1:43pm UTC](https://forum.inductiveautomation.com/t/module-showcase-licensing-intended-use-of-activation-grants/116773 "2026-08-14T13:43:40Z")

</div>

For an Ignition redundant Master/Backup pair, what's the recommended approach? One license key with 2 activation grants, or 2 license keys with 1 grant each? As another example, suppose a customer has 5 redundant Mast…

---

## [Ignition SDK Training Project Build Failure - Plugin 'io.ia.sdk.modl' version '0.1.1' Could Not Be Resolved](https://forum.inductiveautomation.com/t/ignition-sdk-training-project-build-failure-plugin-io-ia-sdk-modl-version-0-1-1-could-not-be-resolved/116764)

<div class="topic-metadata">

**Author:** [@svatsal77](https://forum.inductiveautomation.com/u/svatsal77)\
**Replies:** 3\
**Last updated:** [August 12, 2026, 5:35pm UTC](https://forum.inductiveautomation.com/t/ignition-sdk-training-project-build-failure-plugin-io-ia-sdk-modl-version-0-1-1-could-not-be-resolved/116764 "2026-08-12T17:35:15Z")

</div>

Hi Everyone, I am trying to build the Ignition SDK training project scripting-function-g, but the build fails during plugin resolution. Environment java -version openjdk version "11.0.32" 2026-07-21 LTS OpenJDK Runtim…

---

## [Downtime | SDK Artifact Repo \`nexus.inductiveautomation.com\` | 2026-08-05 12:00PM PST (1800 UTC)](https://forum.inductiveautomation.com/t/downtime-sdk-artifact-repo-nexus-inductiveautomation-com-2026-08-05-12-00pm-pst-1800-utc/116658)

<div class="topic-metadata">

**Author:** [@allen.miller1](https://forum.inductiveautomation.com/u/allen.miller1)\
**Replies:** 0\
**Last updated:** [August 4, 2026, 8:57pm UTC](https://forum.inductiveautomation.com/t/downtime-sdk-artifact-repo-nexus-inductiveautomation-com-2026-08-05-12-00pm-pst-1800-utc/116658 "2026-08-04T20:57:43Z")

</div>

We will be patching the artifact repository at nexus.inductiveautomation.com on 2026-08-05 at 12:00PM PST (1800 UTC). Duration is expected to last under an hour. During this downtime, the SDK artifacts will be inaccessi…

---

## [\`testcontainers-ignition\`: a Java library for testing with Ignition Docker containers](https://forum.inductiveautomation.com/t/testcontainers-ignition-a-java-library-for-testing-with-ignition-docker-containers/94803)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 6\
**Last updated:** [August 4, 2026, 8:45pm UTC](https://forum.inductiveautomation.com/t/testcontainers-ignition-a-java-library-for-testing-with-ignition-docker-containers/94803 "2026-08-04T20:45:26Z")

</div>

Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. This project is a T…

---

## [Working RTSP Viewer - Coming Soon!](https://forum.inductiveautomation.com/t/working-rtsp-viewer-coming-soon/115855)

<div class="topic-metadata">

**Author:** [@NP209](https://forum.inductiveautomation.com/u/NP209)\
**Replies:** 28\
**Last updated:** [July 31, 2026, 10:09pm UTC](https://forum.inductiveautomation.com/t/working-rtsp-viewer-coming-soon/115855 "2026-07-31T22:09:22Z")

</div>

A sneak peak of what is coming. Ever wanted to see what was happening down on the factory floor from a dashboard? Nope, didn't think so! So we made it anyways! Currently undergoing heavy testing, but things have been lo…

---

## [Error message when upgrading module with same certificate - Ignition 8.3](https://forum.inductiveautomation.com/t/error-message-when-upgrading-module-with-same-certificate-ignition-8-3/116603)

<div class="topic-metadata">

**Author:** [@rhys.nickerson](https://forum.inductiveautomation.com/u/rhys.nickerson)\
**Replies:** 3\
**Last updated:** [July 31, 2026, 6:05pm UTC](https://forum.inductiveautomation.com/t/error-message-when-upgrading-module-with-same-certificate-ignition-8-3/116603 "2026-07-31T18:05:12Z")

</div>

Hi everyone, I think I have encountered a bug in 8.3.8 related to upgrading of my module which shares a certificate with older versions of the module. When I install/upgrade the module I correctly get the module accepta…

---

## [JDK Version Strategy](https://forum.inductiveautomation.com/t/jdk-version-strategy/115766)

<div class="topic-metadata">

**Author:** [@Isaac\_Apodaca](https://forum.inductiveautomation.com/u/Isaac_Apodaca)\
**Replies:** 3\
**Last updated:** [July 30, 2026, 2:35am UTC](https://forum.inductiveautomation.com/t/jdk-version-strategy/115766 "2026-07-30T02:35:53Z")

</div>

Hello I was wondering if anyone could shed some light on how IA chooses its Java version to ship with ignition? I believe the most recent versions ship with 17. What determines when ignition includes a newer version? An…

---

## ["Suspended" and "Platform License Key" features in Showcase API](https://forum.inductiveautomation.com/t/suspended-and-platform-license-key-features-in-showcase-api/99270)

<div class="topic-metadata">

**Author:** [@Haniyeh\_Seyed\_Alinez](https://forum.inductiveautomation.com/u/Haniyeh_Seyed_Alinez)\
**Replies:** 8\
**Last updated:** [July 30, 2026, 1:19am UTC](https://forum.inductiveautomation.com/t/suspended-and-platform-license-key-features-in-showcase-api/99270 "2026-07-30T01:19:26Z")

</div>

Hi Everyone, I am testing Showcase API dashboard for license management of my custom module: I generated two license keys for my custom module: 1) with my platform license key 2) without my platform license key When…

---

## [OPC Quick Client doesn't show nodes from a custom Device-API driver (8.3.3)](https://forum.inductiveautomation.com/t/opc-quick-client-doesnt-show-nodes-from-a-custom-device-api-driver-8-3-3/116524)

<div class="topic-metadata">

**Author:** [@rm.severs1](https://forum.inductiveautomation.com/u/rm.severs1)\
**Replies:** 6\
**Last updated:** [July 24, 2026, 4:12pm UTC](https://forum.inductiveautomation.com/t/opc-quick-client-doesnt-show-nodes-from-a-custom-device-api-driver-8-3-3/116524 "2026-07-24T16:12:10Z")

</div>

Following up on the earlier thread about Quick Client returning in 8.3.1/8.3.2 — it's back on my 8.3.3 gateway, but it doesn't seem to render nodes from a custom driver built on the Device/DeviceExtensionPoint API (the n…

---

## [8.3 Editing of a singleton resource in the gateway ui](https://forum.inductiveautomation.com/t/8-3-editing-of-a-singleton-resource-in-the-gateway-ui/116463)

<div class="topic-metadata">

**Author:** [@alice.herbst](https://forum.inductiveautomation.com/u/alice.herbst)\
**Replies:** 3\
**Last updated:** [July 21, 2026, 10:54am UTC](https://forum.inductiveautomation.com/t/8-3-editing-of-a-singleton-resource-in-the-gateway-ui/116463 "2026-07-21T10:54:28Z")

</div>

I have an Ignition module which was developed for Ignition 8.1 and I need to upgrade it to 8.3. The module uses a single PersistentRecord to store some configuration. From the docs, Ifound creating a singleton resource …

---

## [What do I need to do in order to get my module white-listed for Ignition Edge?](https://forum.inductiveautomation.com/t/what-do-i-need-to-do-in-order-to-get-my-module-white-listed-for-ignition-edge/116403)

<div class="topic-metadata">

**Author:** [@christofer.dutz](https://forum.inductiveautomation.com/u/christofer.dutz)\
**Replies:** 10\
**Last updated:** [July 14, 2026, 8:38pm UTC](https://forum.inductiveautomation.com/t/what-do-i-need-to-do-in-order-to-get-my-module-white-listed-for-ignition-edge/116403 "2026-07-14T20:38:17Z")

</div>

Hi all, so now finally my first module is in the module-showcase and ready for sales. However I currently have two potential customers that would like to purchase a license, if it was able to run on Edge. What do I ne…

---

## [Perspective Workstation: native file-open dialog (\<input type="file"\>) freezes the entire client](https://forum.inductiveautomation.com/t/perspective-workstation-native-file-open-dialog-input-type-file-freezes-the-entire-client/116385)

<div class="topic-metadata">

**Author:** [@porter.grigg](https://forum.inductiveautomation.com/u/porter.grigg)\
**Replies:** 4\
**Last updated:** [July 14, 2026, 4:25pm UTC](https://forum.inductiveautomation.com/t/perspective-workstation-native-file-open-dialog-input-type-file-freezes-the-entire-client/116385 "2026-07-14T16:25:04Z")

</div>

Context: We have a custom Perspective component (built with the Component SDK) that needs to import a JSON config file from the local filesystem. It uses a standard hidden \<input type="file"\>, triggered via fileInputRef…

---

## [How long does it usually take to have a Module showcase page approved?](https://forum.inductiveautomation.com/t/how-long-does-it-usually-take-to-have-a-module-showcase-page-approved/116272)

<div class="topic-metadata">

**Author:** [@christofer.dutz](https://forum.inductiveautomation.com/u/christofer.dutz)\
**Replies:** 11\
**Last updated:** [July 14, 2026, 1:43pm UTC](https://forum.inductiveautomation.com/t/how-long-does-it-usually-take-to-have-a-module-showcase-page-approved/116272 "2026-07-14T13:43:06Z")

</div>

Hi all, Last week I finished the testing of my Ignition Beckhoff ADS module and wanted to start selling licenses for this and therefore added the Module showcase page for it ... It's however remaining "unapproved"... Ho…

---

## [Perspective Workstation: showSaveFilePicker() crashes the renderer on write; download-dialog fallback doesn't return window focus](https://forum.inductiveautomation.com/t/perspective-workstation-showsavefilepicker-crashes-the-renderer-on-write-download-dialog-fallback-doesnt-return-window-focus/116395)

<div class="topic-metadata">

**Author:** [@porter.grigg](https://forum.inductiveautomation.com/u/porter.grigg)\
**Replies:** 0\
**Last updated:** [July 14, 2026, 1:25pm UTC](https://forum.inductiveautomation.com/t/perspective-workstation-showsavefilepicker-crashes-the-renderer-on-write-download-dialog-fallback-doesnt-return-window-focus/116395 "2026-07-14T13:25:03Z")

</div>

Context: Same custom Perspective component as above, this time exporting/saving a JSON config file. It uses window.showSaveFilePicker() (File System Access API), with a Blob + \<a download\> fallback for browsers that lac…

---

## [Ignition logic for opening windows](https://forum.inductiveautomation.com/t/ignition-logic-for-opening-windows/116360)

<div class="topic-metadata">

**Author:** [@ignition\_user243](https://forum.inductiveautomation.com/u/ignition_user243)\
**Replies:** 5\
**Last updated:** [July 10, 2026, 8:55pm UTC](https://forum.inductiveautomation.com/t/ignition-logic-for-opening-windows/116360 "2026-07-10T20:55:09Z")

</div>

Hello, not sure if this is the right thread for this question but I am trying to wrap my head around how Ignition Vision handles some basic operations in the background. I am looking to understand how opening windows wo…

---

## [Reimplementating system.device.addDevice functionality](https://forum.inductiveautomation.com/t/reimplementating-system-device-adddevice-functionality/111062)

<div class="topic-metadata">

**Author:** [@Eden.Mar](https://forum.inductiveautomation.com/u/Eden.Mar)\
**Replies:** 19\
**Last updated:** [July 8, 2026, 3:51pm UTC](https://forum.inductiveautomation.com/t/reimplementating-system-device-adddevice-functionality/111062 "2026-07-08T15:51:03Z")

</div>

Hello, while doing testing I noticed that the system.device.addDevice functionality isn’t included for “free” in the 8.3 API anymore when I call on it to add my custom device implementation. Having a look at the warning …

---

## [Open "Edit Bindings dialog" from a selection editor](https://forum.inductiveautomation.com/t/open-edit-bindings-dialog-from-a-selection-editor/116294)

<div class="topic-metadata">

**Author:** [@torstein](https://forum.inductiveautomation.com/u/torstein)\
**Replies:** 1\
**Last updated:** [July 7, 2026, 2:56pm UTC](https://forum.inductiveautomation.com/t/open-edit-bindings-dialog-from-a-selection-editor/116294 "2026-07-07T14:56:37Z")

</div>

Hi, We have implemented the \`createSelectionEditor\` for an ComponentDesignDelegate. But we would like the user to be able to open the "Edit Binding" dialog. Like clicking on the chain link on the props panel beside a pr…

[Next page](https://forum.inductiveautomation.com/c/module-development/7.md?page=1)
