# Gateway Tag Value Change helper script

**URL:** <https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [February 27, 2026, 3:37pm UTC](https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231 "2026-02-27T15:37:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![joshua.edwards.navy](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@joshua.edwards.navy](https://forum.inductiveautomation.com/u/joshua.edwards.navy)\
**Post date:** [February 27, 2026, 3:37pm UTC](https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231/1 "2026-02-27T15:37:03Z")

</div>

Maybe my search skills are lacking, but I can’t seem to find how I can create a common function that my UDT tag value changed scripts can access. Basically in some of my UDT tag value changed scripts I want to call MySpecialHelperFunction(). I tried a project library, but obviously this didn’t work because the project library isn’t accessible by the gateway tag value changed events. So how would I create my MySpecialHelperFunction() at the gateway level?

---

<div class="post-metadata">

**Author:** ![WillMT10](https://avatars.discourse-cdn.com/v4/letter/w/7feea3/32.png) [@WillMT10](https://forum.inductiveautomation.com/u/WillMT10)\
**Post date:** [February 27, 2026, 3:59pm UTC](https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231/2 "2026-02-27T15:59:05Z")

</div>

See “Gateway Scripting Project” setting:

> **[Gateway Settings​ - Gateway Settings | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.3/platform/gateway/web-interface/platform/gateway-settings#gateway-settings)**
>
> After you launch the Gateway, you can define the high-level settings that apply to the entire Gateway by going to Platform \> System \> Gateway Settings on the Gateway Webpage. From this page, you can use the default values or define a new setting. The...

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [March 1, 2026, 8:39pm UTC](https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231/3 "2026-03-01T20:39:19Z")

</div>

Also, I would look into naming conventions for Java\*. PascalCase is reserved for classes. Variables, libraries, and functions should use camelCase to avoid confusion by other programmers.

\*Java and not Python due to Ignition being Java-based. Although a lot of the PEP8 conventions can still be applied, it's really just the replacement of snake\_case for camelCase which should be made, as well as using tabs for white space instead of 4 space characters as defined in the standard, as these are not user friendly in the code editors in the designer – although I'd argue they’re not user friendly regardless.

However, regardless of all that, it’s more important to be consistent across the project

---

<div class="post-metadata">

**Author:** ![joshua.edwards.navy](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@joshua.edwards.navy](https://forum.inductiveautomation.com/u/joshua.edwards.navy)\
**Post date:** [March 2, 2026, 2:08pm UTC](https://forum.inductiveautomation.com/t/gateway-tag-value-change-helper-script/114231/4 "2026-03-02T14:08:38Z")

</div>

I usually use camelCase for functions. I wasn’t giving the actual name of the function so I didn’t pay it much mind.
