To help prevent object number clashes, or in your case, setting an object to zero, the best thing you can do is setup your program to dynamically assign object numbers to logical names rather than numbers you have to remember. After all it's alot easier to refer to an object as "player" or "enemy" than it is to remember that the player object is one, and the enemy object is two. Sure it might seem easy from that point onwards. But as soon as you have 2, 10, 20, enemy's appearing, as well as your games objects in scenes etc. It becomes a small nightmare.
The way to do this is to write a simple function called Free_Object_ID() you can shorten it to free_obj() if you like. The code for this is:
Function Free_Object_ID()
ObjID = 0
Repeat
Inc ObjID
ID = Object Exist(ObjID)
Until ID = 0
EndFunction ObjID
This command litarily checks every single object ID number assigned to an existing object, as soon as it finds an object slot free.
You can then call objects at that ID by typing in:
Global MyLevel as Integer
MyLevel = Free_Object_ID()
Load Object "MyUniverse.dbo", MyLevel
This can be further advanced by applying data types and arrays to your program, allowing you to group objects by type, class, etc.