You'd have code that looks something like this:
Code:
void main()
{
object oOrigPlac = GetObjectByTag("TAG OF PLACEABLE"); //This is your original placeable, the one you're destroying.
location lOPlac = GetLocation(oOrigPlac); //This is the location of that original placeable.
DestroyObject(oOrigPlac); //Destroys the original placeable.
CreateObject(OBJECT_TYPE_PLACEABLE, "TEMPLATE RES REF OF NEW PLACEABLE", lOPlac); //Creates the new placeable where the old one was.
}
Now that's assuming you don't have the original placeable's coordinates in the beginning. In all honesty it'd be best to just have the original placeable's coordinates, to reduce glitches/weird things going on that might occur with trying to grab the original placeable's location and use it to spawn the new one when the original has been destroyed. So, if you had the coordinates, the script would look like this:
Code:
void main()
{
object oOrigPlac = GetObjectByTag("TAG OF PLACEABLE");
vector PlacPosition = Vector(333.33, 333.33, 333.33);
location lOPlac = Location(PlacPosition, 234.44);
DestroyObject(oOrigPlac);
CreateObject(OBJECT_TYPE_PLACEABLE, "TEMPLATE RES REF OF NEW PLACEABLE", lOPlac);
}
The green 333.33 triplets are the place where your X, Y and Z coordinates of the placeable would go. The red 234.44 is the angle orientation of that placeable.