So ResetProp() isn't working?
If so, then what you can do is create new objects in their place.
First create a script area where the vases are located, then use a script like this:
CreateEntityAtArea("vase_1", "vase_file.ent", "area_vase_1", false);
"vase_1" is the entity name that will be created, so basically you need to loop this for the amount of vases you have. "vase_file.ent" is the entity file, which is somewhere in the entities folder. Just find out what it's called. It should be listed at the bottom of the "General" tab in the level editor. "area_vase_1" is the name of the script area that is placed on the vase.
When you place the script areas down, I recommend you name them "area_" + the name of the vase that is there. That way you can use this loop to create the new vases:
for(int i = 1; i <= 4; i++) {
CreateEntityAtArea("vase_"+i, "vase_file.ent", "area_vase_"+i, false);
}
This will loop 4 times and create vase_1, vase_2, vase_3 and vase_4. Edit the '4' inside the for-loop to match the amount of vases you have. Run this inside your CheckPoint callback.
Edit: Actually, this might create more than wanted in case the player didn't break all the vases. Perhaps that's fixed by setting the previous vases inactive.
for(int i = 1; i <= 4; i++) {
SetEntityActive("vase_"+i, false);
CreateEntityAtArea("vase_"+i, "vase_file.ent", "area_vase_"+i, false);
}
This might fix that. Use this instead of the previous code.