# Advice on creating a base project to be used across a large number of plants with limited variation

**URL:** <https://forum.inductiveautomation.com/t/advice-on-creating-a-base-project-to-be-used-across-a-large-number-of-plants-with-limited-variation/41313>\
**Category:** Ignition\
**Created:** [December 8, 2020, 9:37pm UTC](https://forum.inductiveautomation.com/t/advice-on-creating-a-base-project-to-be-used-across-a-large-number-of-plants-with-limited-variation/41313 "2020-12-08T21:37:55Z")\
**Posts on this page:** 1\
**Showing post:** 6

<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:** [December 9, 2020, 9:41pm UTC](https://forum.inductiveautomation.com/t/advice-on-creating-a-base-project-to-be-used-across-a-large-number-of-plants-with-limited-variation/41313/6 "2020-12-09T21:41:38Z")

</div>

> [@craigl](#):
>
> I think this will work in general, but I have some concerns about Gateway Event scripts and reporting. From what I’m seeing Gateway Event scripts will not fire from an inheritable project, so it appears that firing of timed events needs to be in a leaf project, but I want to keep as much as possible out of the plants leaf project . It sounds like some people advocate creating a separate leaf project just for firing off scripts. I’m not sure if that’s the best way to go, but maybe. I really want to keep the ‘Site’ leaf project as simple as possible.

I can't speak to what will work best for you/your environment, but some general technical concerns to be aware of:  
As you are aware, inheritable projects will not run scripts. Inherited projects will, but there's another wrinkle there - _all_ gateway event scripts (startup, shutdown, timer, message handler) are _one_ resource. As soon as any change is made in the leaf projects, you're no longer inheriting from the parent, _and_ there's no obvious way to revert. In the short term, we want to make that more clear in the UI; in the long term, we're hoping to do the obvious thing and separate those script types into distinct resources.

_In general_, I would say to keep as much logic as absolutely possible in project script resources (which do properly inherit) and just accept some duplication of effort in leaf projects re: timer scripts and the like - which should be as simple as possible and immediately call project scripts anyways. That way your development experience can only get better as we introduce better capabilities, instead of an exercise in frustration as things don't inherit properly, or in unexpected ways.

---

_[View the full topic](https://forum.inductiveautomation.com/t/advice-on-creating-a-base-project-to-be-used-across-a-large-number-of-plants-with-limited-variation/41313)._
