# \[SOLVED\] Why does saving the project reset component positions but not client tags?

**URL:** <https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917>\
**Category:** Ignition\
**Tags:** ignition80, vision\
**Created:** [August 19, 2020, 3:58pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917 "2020-08-19T15:58:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![bmeyers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmeyers/32/37453_2.png) [@bmeyers](https://forum.inductiveautomation.com/u/bmeyers)\
**Post date:** [August 19, 2020, 3:58pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/1 "2020-08-19T15:58:26Z")

</div>

Good morning,

Why does saving a project reset component positions on the screen (I am moving components around using system.gui.transform) BUT the default client tags aren’t read into the saved project? Is this a bug?

Solution: Not a bug but a feature 🙂

---

<div class="post-metadata">

**Author:** ![alexraymond](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/alexraymond/32/16951_2.png) [@alexraymond](https://forum.inductiveautomation.com/u/alexraymond)\
**Post date:** [August 19, 2020, 4:30pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/2 "2020-08-19T16:30:32Z")

</div>

~~Do you have a script that is resetting the component positions when a window is opened, closed, etc? That could be why they reset on save. You would need a similar block of code that sets client tags to default values on client startup or some other event. When you save the client tags in designer, it thinks you want those values to be saved in those tags. There are no “default client tag” values.~~

Misunderstood OP.

---

<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:** [August 19, 2020, 5:06pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/3 "2020-08-19T17:06:35Z")

</div>

> [@alexraymond](#):
>
> There are no “default client tag” values.

Not true. What is present in the designer is saved with the project's other resources to be the defaults. But client tags that already exist were deliberately exempted from replacement during a Vision client restart, to allow state to persist. (Old decision that would be troublesome to change, I think.) Window resources have always been reloaded, so any component transforms are discarded along with the old window.

---

<div class="post-metadata">

**Author:** ![alexraymond](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/alexraymond/32/16951_2.png) [@alexraymond](https://forum.inductiveautomation.com/u/alexraymond)\
**Post date:** [August 19, 2020, 5:50pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/4 "2020-08-19T17:50:41Z")

</div>

Ah, I see where there was confusion. For some reason, I was thinking the OP was talking about what happens to the opened windows and client tags in the designer when he saves a project. I didn’t realize he was talking about what happens to an open client.

---

<div class="post-metadata">

**Author:** ![bmeyers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmeyers/32/37453_2.png) [@bmeyers](https://forum.inductiveautomation.com/u/bmeyers)\
**Post date:** [August 19, 2020, 6:01pm UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/5 "2020-08-19T18:01:46Z")

</div>

Ahhh yes, this is the root of my problems today.

I created a scroll bar menu using 5 rectangles and 5 templates. The 5 templates move along the screen to the next rectangle in the sequence based on it’s current location. I then have the client save the “offset” from the original position in a client tag. As soon as I go to save the project the 5 templates are back in their original starting position and the “offset” is telling me they are somewhere else.

I resolved this by setting the client “offset” to the default value when an internal frame is opened.

Shortened version: I’m using component positions in the state of my clients.

---

<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:** [August 20, 2020, 1:15am UTC](https://forum.inductiveautomation.com/t/solved-why-does-saving-the-project-reset-component-positions-but-not-client-tags/37917/6 "2020-08-20T01:15:04Z")

</div>

May I suggest you flip the state around: use client tags to drive the positions. Send position changes to the client tags and let the window notice that and drive system.gui.transform. That would keep the locations through an update.
