*Virtual object name duplicates an existing object name

There is already tests in the testsuite to verify that virtual object’s virtual_start() is being called by the driver. Don’t know why that didn’t work you. You don’t need to call it manually in your cityd again. If you want to verify , set an flag in the object and in virtual_start() set that flag to 1 and see afterwards.

Like I said , and debug macro is not going to print anything since the execution is not under an player.

There is another solution to your problem. Instead of having the tent move to the object on create , you can simply construct the object during create() and call move(this_object()) .

My apologies for insisting that virtual_start() is not being called.
My evidence is I am in “/std/bit_bucket”.
1 // /domains/city/rooms/city/cityroom8.c
8 inherit VIRTUAL_ROOM;
9
10 #define DEBUGGER “crius”
11
12 protected void virtual_create(){
34
35 NPC_D->create_npc(NPCS+“jenna.liv”,this());
36 DEBUG(“tent load”);
37 load_object("/domains/city/rooms/city/tent21")->move(this());
38 load_object("/domains/city/rooms/city/tent22")->move(this());
39 load_object("/domains/city/rooms/city/tent23")->move(this());
40 }

In /std/base_room.c
// First function called after create() by the driver…
// This gets called by virtual rooms ONLY.
void virtual_start() {
// Don’t process the blueprints.
if (!clonep())
return;

this()->virtual_create();

// If its a virtual room, we can’t load the doors until we
// do a virtual_create() and thus know the file_name().
DOOR_D->load_room_doors(file_name(this()));
}

In short, once the driver calls virtual_start(), this base_room triggers a call to virtual_create() which causes /domains/city/rooms/city/cityroom8.c to execute virtual_create(). This triggers creating the NPC Jenna, which I would see since I’m in the bit_bucket. Since I don’t see Jenna created, I know virtual_create() isn’t being called, which causes me to suspect virtual_start() isn’t being called. The goto also fails with a 6 (no room) which means the room wasn’t being created properly - which includes setting its size.

You - “/std/bit_bucket”>dest /domains/banzar/city_server/7/6/0
You dest the thing.
DEBUG object=>/cmds/wiz/dest<=
DEBUG file =>/cmds/wiz/dest.c<=
DEBUG value =>"/domains/city/city_server/7/6/0"<=
Restored to previous location.
You - “/std/bit_bucket”>goto /domains/city/city_server/7/6/0
DEBUG object=>/domains/city/rooms/city/cityroom8#845<=
DEBUG file =>/std/virtual_room.c<=
DEBUG value =>“clonep is true!”<=
DEBUG object=>/daemons/city_d<=
DEBUG file =>/daemons/city_d.c<=
DEBUG value =>/domains/city/rooms/city/cityroom8#845<=
DEBUG object=>/daemons/city_d<=
DEBUG file =>/daemons/city_d.c<=
DEBUG value =>/domains/city/rooms/city/cityroom8#845<=
You disappear in a puff of smoke.
DEBUG object=>/cmds/wiz/goto<=
DEBUG file =>/cmds/wiz/goto.c<=
DEBUG value =>"/cmds/wiz/goto.c main return value 6
MOVE_OK 1 MOVE_NO_DEST 10 MOVE_NOT_RELEASED 3 MOVE_NOT_ALLOWED 7 prev /std/bit_bucket"<=
Goto: Error in movement.

please create an test program with an minimal structure before dipping into this myriad of calls, anything could be happening and you need to verify you understand how basic stuff works before understanding what is going on.

Check error logs, and the virtual_start() call may have triggered errors so it didn’t fully execute , that would appear as “not called” , but it will show up in the error logs

Thank you, this suggested solution mostly fixed the problem. I can enter the rooms via walking or direct goto, and if they aren’t loaded, they will load without error, and properly.
HOWEVER, if I update the file, all the tents are removed from the room.
I was able to confirm again that virtual_start() isn’t being called, and this is probably leading to the missing tent problem upon updating the files. We can work around this by manually desting the rooms if we ever update them though.
It’s not pretty, but it works.
I have entered in the call to manually call virtual_start() on each of our created rooms, and this now fixes all problems… except when a file is updated.