# Where do/should Gateway Scripts live with respect to an inherited project structure?

**URL:** <https://forum.inductiveautomation.com/t/where-do-should-gateway-scripts-live-with-respect-to-an-inherited-project-structure/83460>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [December 22, 2023, 4:39am UTC](https://forum.inductiveautomation.com/t/where-do-should-gateway-scripts-live-with-respect-to-an-inherited-project-structure/83460 "2023-12-22T04:39:57Z")\
**Posts on this page:** 1\
**Showing post:** 3

<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:** [December 22, 2023, 3:20pm UTC](https://forum.inductiveautomation.com/t/where-do-should-gateway-scripts-live-with-respect-to-an-inherited-project-structure/83460/3 "2023-12-22T15:20:35Z")

</div>

> [@sherman](#):
>
> while still wanting to have a project that contains all of my scripts for use downstream

Put all of the logic in project library scripts, in the "universe" project at the root of your hierarchy, if you must. Then, in _ **leaf** _ projects, use one-line calls to the appropriate logic from event scripts and message handlers. (I don't agree with your desire, but this is what you must do to achieve it.)

I recommend you **not** put all your scripts (eggs) in one inheritable project (basket). I recommend a hierarchy something like this:

```auto
universe
├bg_common
│├gsp
│├background1
│├background2
│└webdev
└ui_common
 ├perspective_common
 │├ui1
 │└ui2
 └vision_common
  ├ui3
  └ui4

```

In this arrangement, `universe` and `*_common` contain only _ **well-tested** _ resources, and are only edited/modified in appropriate maintenance windows in production. (Edits to these will cause scripting restarts in the gateway in all projects under them.)

When developing something that will end up in one of these inheritable projects, use a testing leaf project below it for your development work. When well tested, send the resources to the appropriate inheritable project and delete the testing project.

Note that `perspective_common` is the appropriate place for re-usable Views, and `vision_common` in the right place for reusable windows and templates. All other inheritable projects only contain project library scripts.

{ `gsp` is the gateway scripting project. }

---

_[View the full topic](https://forum.inductiveautomation.com/t/where-do-should-gateway-scripts-live-with-respect-to-an-inherited-project-structure/83460)._
