# ScriptFunction deprecated?

**URL:** <https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913>\
**Category:** Ignition 8.3 Early Access\
**Created:** [May 6, 2025, 12:45pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913 "2025-05-06T12:45:19Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 6, 2025, 12:45pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/1 "2025-05-06T12:45:19Z")

</div>

Hi all,

We make use of ScriptFunction like so:

````python
    @ScriptFunction(docBundlePrefix=docBundleName)
    public PyObject enterBadge(
        @ScriptArg("assetId") PyObject assetId,
        @ScriptArg("badgeNum") PyObject badgeNum,
        @ScriptArg("logIn") PyObject logIn,
        @ScriptArg("tStamp") PyObject tStamp) throws JythonExecException, ScriptManager.UndefinedFunctionException {
        return enterBadgeI(assetId, badgeNum, logIn, tStamp);
    };```

but it seems in 8.3.0

import com.inductiveautomation.ignition.common.script.hints.ScriptFunction;

is no longer present - what do we do instead?

Thx
````

---

<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:** [May 6, 2025, 12:50pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/2 "2025-05-06T12:50:41Z")

</div>

`@ScriptArg` is still supported. `@ScriptFunction` has been replaced by `@JythonElement` with the same usage.

All described in the Google Doc for the API changes.

---

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 6, 2025, 12:53pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/3 "2025-05-06T12:53:38Z")

</div>

Phil,

As usual you're a superstar! Really must buy you a beer one of these days. I haven't stumbled across the Google Doc for API changes yet [only started looking at 8.3 today] can you supply a link please?

---

<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:** [May 6, 2025, 12:57pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/4 "2025-05-06T12:57:03Z")

</div>

Pinned topic: [8.3 Early Access Now Available!](https://forum.inductiveautomation.com/t/8-3-early-access-now-available/93932)

---

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 6, 2025, 1:12pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/5 "2025-05-06T13:12:27Z")

</div>

Thanks Kevin - just requested access to the docs.

---

<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:** [May 7, 2025, 12:44pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/6 "2025-05-07T12:44:41Z")

</div>

Did somebody end up approving your access?

---

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 9, 2025, 10:13am UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/7 "2025-05-09T10:13:27Z")

</div>

Hi Kevin,

I can get to the Migration Guide but I can't access the recommended one that it links to:

> **[Google Docs: Sign-in](https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1UflCtEcAyFtt8bkxrjJFmOUuc-YqUoRpOJq5j-TcEY8%2Fedit%3Ftab%3Dt.drtnacc6kd0b&followup=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1UflCtEcAyFtt8bkxrjJFmOUuc-YqUoRpOJq5j-TcEY8%2Fedit%3Ftab%3Dt.drtnacc6kd0b&ifkv=ASKV5Mg526TPu--QmMMyr7bBP8Q6_xEArBhxx75JIEYreMtsOyE1C3HHvPGY0P2dZm9I5e-K9KKA&ltmpl=docs&osid=1&passive=1209600&service=wise&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S1529364996%3A1746785584143453)**
>
> Access Google Docs with a personal Google account or Google Workspace account (for business use).

---

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 9, 2025, 1:57pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/8 "2025-05-09T13:57:44Z")

</div>

I'm a bit stumped at the moment - things may get cleared up when I get access to all the documentation but I'm currently trying to get a build going that will work for 8.1.x and 8.3.x using gradle parameters and some final static java flag to control the build. The problem I'm having is with the JythonElement v ScriptFunction annotations as mentioned above.

In C++ I would just #ifdef 83BUILD use JythonElement #else use ScriptFunction type shenanigans but we can't do this in Java - annoyingly.

Anyone got a solution for getting a build to work for both Ignition platforms?

---

<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:** [May 9, 2025, 2:28pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/9 "2025-05-09T14:28:50Z")

</div>

You cannot.

Make a branch for v8.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:** [May 9, 2025, 2:34pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/10 "2025-05-09T14:34:53Z")

</div>

Yep, branch. It's what we do as well.

---

<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:** [May 9, 2025, 9:49pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/11 "2025-05-09T21:49:50Z")

</div>

> [@darren.steele](#):
>
> I can get to the Migration Guide but I can't access the recommended one that it links to:

See [8.3 Early Access Now Available! - #3](https://forum.inductiveautomation.com/t/8-3-early-access-now-available/93932/3), we've pulled it out of the restricted document and put it into a PDF for now.

---

<div class="post-metadata">

**Author:** ![darren.steele](https://avatars.discourse-cdn.com/v4/letter/d/a4c791/32.png) [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Post date:** [May 12, 2025, 10:33am UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/12 "2025-05-12T10:33:23Z")

</div>

Thanks guys, I was hoping to avoid the need to maintain a long-running sub branch but it looks like it's the way to go - hopefully shouldn't be too painful. I was a bit surprised that ScriptFunction was simply replaced and not deprecated. Just makes it a pain for developers - increased development friction etc. Long time Android dev and the standard pratice from Google was to long term deprecate stuff so that existing apps didn't get _too_ broken by an API update. The 8.3 branch that I now have to maintain puts us in a situation where we'll be maintaing the two branches for years to come since I don't see all our customers jumping to 8.3 anytime soon. If you fancy putting ScriptFunction into a future 8.3 release as a Deprecated annotation then that would be the perfect solution for me....and all other customers that make use of ScriptFunction

---

<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:** [May 12, 2025, 11:31am UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/13 "2025-05-12T11:31:16Z")

</div>

IA doesn't make any long-term guarantees for SDK users. Not even within a given LTS series. Enough infrastructure changes that branches are necessary. I maintained multi-platform module files in the 7.5 through 7.8 releases. 7.9 broke them all. 8.0 broke everything again, and 8.1 again.

More features =\> more breakage.

FWIW, cherry-picking across branches works really well....

---

<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:** [May 12, 2025, 4:46pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/14 "2025-05-12T16:46:05Z")

</div>

Even if we reintroduce `ScriptFunction` as deprecated (I'm not totally against this, other than ideologically) I'd be surprised by any non-trivial module that would otherwise be able to compile against both 8.1 and 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:** [May 12, 2025, 4:47pm UTC](https://forum.inductiveautomation.com/t/scriptfunction-deprecated/105913/15 "2025-05-12T16:47:35Z")

</div>

> [@paul-griffith](#):
>
> Even if we reintroduce `ScriptFunction` as deprecated

Even if we did this, it would just get culled with the rest of the deprecated stuff in the _next_ major release.

We're not google, this isn't android, we're not trying to keep your code working without changes from major version to major version, forever.
