# Set module free

**URL:** <https://forum.inductiveautomation.com/t/set-module-free/103540>\
**Category:** Module Development\
**Created:** [March 11, 2025, 7:31pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540 "2025-03-11T19:31:59Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [March 11, 2025, 7:31pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/1 "2025-03-11T19:31:59Z")

</div>

Where in the pom.xml file and using what attribute do I set the module to being free?

---

<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:** [March 11, 2025, 7:34pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/2 "2025-03-11T19:34:35Z")

</div>

You don't any more. You override the module hook method to return true instead of false. Same with Maker support.

---

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [March 11, 2025, 7:43pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/3 "2025-03-11T19:43:58Z")

</div>

Do I have to add a gateway hook? Right now, my module just has a common package. Does this mean I have to add a gateway package with a gateway hook with a method isFreeModule() that returns true?

---

<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:** [March 11, 2025, 7:48pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/4 "2025-03-11T19:48:00Z")

</div>

Yes. I'm a bit surprised that any module would work without the hook classes.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [March 11, 2025, 8:14pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/5 "2025-03-11T20:14:02Z")

</div>

> [@pturmel](#):
>
> without the hook classes

> **[Do-nothing Machine](https://www.instructables.com/Do-nothing-Machine/)**
>
> Do-nothing Machine: Do you like to do nothing?Introducing the Do-nothing Machine. As the name suggest it does absolutely positively nothing useful. Sure it may entertain some people for a few minutes, last about an hour on me, but it still does...

---

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [March 11, 2025, 8:30pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/6 "2025-03-11T20:30:21Z")

</div>

It does do something it imports the jar files into all the scopes of Ignition. It is interesting that the build pom.xml does not use the tag true when I add it to the path build/plugins/plugin/configuration. The intellisense in the IDE seems to think that is a valid tag.

---

<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:** [March 11, 2025, 8:32pm UTC](https://forum.inductiveautomation.com/t/set-module-free/103540/7 "2025-03-11T20:32:09Z")

</div>

The free module marker **used** to be in the `module.xml` file. But that was too easy for bad actors to leverage. Now the code must affirmatively signal that it is free.
