# Can I call a Project Script from a Gateway Timer Script?

**URL:** <https://forum.inductiveautomation.com/t/can-i-call-a-project-script-from-a-gateway-timer-script/18693>\
**Category:** Ignition\
**Created:** [July 2, 2018, 2:00pm UTC](https://forum.inductiveautomation.com/t/can-i-call-a-project-script-from-a-gateway-timer-script/18693 "2018-07-02T14:00:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dano38291](https://avatars.discourse-cdn.com/v4/letter/d/9d8465/32.png) [@dano38291](https://forum.inductiveautomation.com/u/dano38291)\
**Post date:** [July 2, 2018, 2:00pm UTC](https://forum.inductiveautomation.com/t/can-i-call-a-project-script-from-a-gateway-timer-script/18693/1 "2018-07-02T14:00:47Z")

</div>

Hello,  
I am using a Gateway timer script currently to do read/ write a few tags on a daily basis. I need to add functionality on a daily basis that I currently have in a Project Script?  
**Can I call a Project Script from Inside a Gateway Timer Script? Is there any weird syntax?**  
My current Gateway Timer script just reads and writes to two tags. My Project Script that I plan to add just reads and a few tags. I did just review my Project script and I read from the following:

> "system.tag.read("[System]Client/User/OSUsername").value"

I have a feeling the above Read might break when I call the Project Script from a Gateway Timer script? Probably need to modify the Project Script with some Try/ Excepts to handle not being able to read the above tag. That's under the assumption I can call a Project Script from a Gateway Timer script.

---

<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:** [July 2, 2018, 2:43pm UTC](https://forum.inductiveautomation.com/t/can-i-call-a-project-script-from-a-gateway-timer-script/18693/2 "2018-07-02T14:43:47Z")

</div>

Yes, you may call `project.script.function()` from gateway timer events. In fact, they are usable from any Gateway Event Script present in the “Gateway Event Scripts” dialog. The caveat is that there are no GUI-related functions in `system.*`, and none of the corresponding java classes can be imported. There are a few other nuances, but you should be fine if you set up a separate project script just for gateway operations. On a related note, this makes Gateway Tag Change Events (from the same dialog) far superior to Tag Events (defined directly on the tag).
