# Re-creating vs storing event instances clarification

**URL:** <https://qa.fmod.com/t/re-creating-vs-storing-event-instances-clarification/16670>\
**Category:** FMOD Studio\
**Created:** [January 19, 2021, 8:11pm UTC](https://qa.fmod.com/t/re-creating-vs-storing-event-instances-clarification/16670 "2021-01-19T20:11:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tlconflict](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tlconflict](https://qa.fmod.com/u/tlconflict)\
**Post date:** [January 19, 2021, 8:11pm UTC](https://qa.fmod.com/t/re-creating-vs-storing-event-instances-clarification/16670/1 "2021-01-19T20:11:26Z")

</div>

Looking at the `simple_event.cpp` , the explosion does a `create instance()` then `start()` and `release()` while the UI cancel instance only `start()`.

So for things like gunshots, footsteps, a new instance should be created, started and released every time?  
In the `event_parameter.cpp` , are not re-created, so I’m confused as to when/what use cases should I store vs re-create events, and what is most preferable for performance.

---

<div class="post-metadata">

**Author:** ![AlexM](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@AlexM](https://qa.fmod.com/u/AlexM)\
**Post date:** [January 19, 2021, 8:28pm UTC](https://qa.fmod.com/t/re-creating-vs-storing-event-instances-clarification/16670/2 "2021-01-19T20:28:38Z")

</div>

I’d also like to know what is usually done.  
In my case, our dev chose to have a pool of instances: each time he needs one, he polls the instances to find one in the stopped state, to use it. I don’t know if it’s the usual way to deal with instances.

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [January 25, 2021, 5:23am UTC](https://qa.fmod.com/t/re-creating-vs-storing-event-instances-clarification/16670/3 "2021-01-25T05:23:23Z")

</div>

By calling `start` and `release` on an Event, you are guaranteeing that the entire event will play out and it will only end naturally. Using `release` will also invalidate any handle you had to the instance so you cannot modify or stop in manually. If you do not `release` the instance, then anything you do with the handle you have stored will effect that individual instance. Eg. if the instance is already playing, calling `play` on it again will cause the instance to restart.
