there's a few (or some/many, lol) different designs/methods that you can do...
-------------
every Object is unique (via its 'name' ID Attribute), so the original Object is an Object, and each Clone, is another/separate Object (as when quest creates a clone, it gives that new Object a different name, using numbers at the end, so you can check it's name, to remove the clones, or you can give the original Object an indicator/flag Attribute, which you can check for, to remove the clone). see code box below for an example.
http://docs.textadventures.co.uk/quest/functions/ (scroll down to the very bottom, the 'String Functions' category/section)
http://docs.textadventures.co.uk/quest/ ... swith.htmlhttp://docs.textadventures.co.uk/quest/ ... swith.htmletc etc etc String Checking/Manipulation Scripts/Functions, take a look at all of them, and be creative on how you can use them!
<object name="potion">
</object>
// turning on your... sink (lol), has scripting that creates clones of 'potion' Object, lol. It's a magical potion sink in this example, lol.
foreach (object_variable, AllObjects()) {
if (StartsWith (object_variable.name, "potion") and not EndsWith (object_variable.name, "potion")) {
destroy (object_variable) // only your clones will be destroyed due to the if code line above
}
}
-------------------------
probably the easiest/simpliest would be to create Clones upon turning on the sink, and then remove/destroy the Clones (this will involve a bit of code/scripting + Attribute work to accomplish this though ~ ask me or whoever about how to do this stuff if interested in using this method) them as needed and where/when to do so.
------------------------
however, creating clones whenever you to turn on the sink, is probably a bad idea possibly in terms of code efficiency/file size/performance, as you don't want a ton of clones to be dealing with, even if you're removing/destroying them. A better way would be to just have a single Object somewhere by itself and hidden (not a Object the person playing would know about), and then you can use 'Object Attributes/Stringlists Attributes/Objectlists Attributes' to do whatever actions you want upon that Object.
and there's probably many other ways as well...