ID:142024
 
Code:
/*NO CODE, sorry Code problem forum, but this is still the best place for it to go I think lol */


Problem description:

Anyway, its weird, on my game, weird bugs happen (shocker). Anyway, if the game is hosted for a few days with no break (rehost) then some of the players massively lose a lot of verbs. I'd love to blame byond, but if it were byond then other people would get it too. The problem isn't necessarily the bug, the problem is there is NO ERROR. Nothing goes wrong, nothing breaks, or anything. Just hosted for a few days and randomly decides "Time to F*ck some people over HAHAHAA". That's the part I don't get. I mean there is no error log at all. And there's no part in the coding that would erase all their verbs like that either. It's bizarre. There's just nothing in the code that goes "Hi, time for you to lose all your verbs, kthxbai"

So, any known causes/fixes?
I can think of only three things that would cause this.

1) Even if you don't have a afterFewDays_DeleteAllVerbs() function, the code is still to blame.

Perhaps you do have something somewhere that adds/removes verbs that is malfunctioning.

If you have made code that gives administrators the ability to edit variables of objects in the world, perhaps one is abusing it.

Or perhaps the player's vars list is being accessed some other way. Anything that accesses that list has the potential to cause great havoc. For example, cloning functions often loop through everything in that list.

2) It is a Byond bug that hasn't been reported. If this is the case and you could find the root and replicate it on demand, that would be great.

3) The computer is freaking out. You said it happens to everyone, right? If so, perhaps the PC used as the server is issues. I know my old laptop is doing crazy things right now that don't make sense, even when I'm just at the desktop sometimes, hence the backups I did today. I think it might die soon.
In response to Loduwijk
1) I'm pretty sure I don't have one XD. And there are no admins, except moi. I'm the only one that can edit stats.

And yeah it applies to everyone thats on... at that particular moment. Anyone that logs in after is fine. But its a random moment, never the same time.

And I'm the host so its not like someone's tampering with the saves.

I did make a recover for it, so its not too big a problem, but its annoying to have.

Edit: And I'm hosting on dream daemon if it makes any difference.
In response to VcentG
Why don't you try making a command that checks to see if the players really have the verbs or not, from Byond's point of view, regardless of what the players have from their point of view? That's something I should have suggested earlier.

.../verb/verbDebug()
for(var/client/C)
src << "<u>Checking [C.key]</u>"
src << "<b>Client verbs</b>"
for(var/v in C.verbs)
src << v
src << "<b>Mob verbs</b>"
for(var/v in C.mob.verbs)
src << v

I would assume there's something going on that causes the players to merely not see the verbs. If this tells you that they do still have the verbs regardless of whether they can see them, then it is indeed probably something freaking out.

If that shows that they truly have no verbs, then I would be highly suspect of either the code (Depending on how you program things, sometimes one thing can effect something seemingly completely unrelated) or the computer freaking out and something happening to the memory that makes the game "forget" they had the verbs, or something being transmitted by the server telling the client they have no verbs.

You might want to try to host some other game and just park a few clients in it merely for a test. If another game suffers the same fate after a few days (I'd still leave it for closer to a weak just to be safe, based on what you've said), then that rules out anything you've done. If you also have access to multiple PCs to host on, you could try hosting somewhere else for a week (whether it's the main server for a week or just a dummy test one). If the problem doesn't go to the other PC, then I'd be 98% convinced it's the server; if it does move, at that point I'd be 95% convinced that it's either something in the code or a Byond bug (code if it didn't happen to another game for you, Byond bug if it did).

If you want to go through all that trouble, we should be able to pinpoint the area of the problem. If you do, be sure to lend some more feedback here.
This same thing happened to Naruto Chronology multiple times(3 of what I remember).
In response to Loduwijk
I'm pretty sure that the verbs aren't there at all. Seeing as when verbs are invisible they're still useable. Here, not so much.

Anyway, I've messed around with it and so now I'll just have to see. Sucky part is waiting so many days to just see if its fixed each time lol.
In response to VcentG
Well I would be inclined to think its a combination of a byond limitation and maybe programming, Im not positive about this but from my reading Ive seen that there are limits to in numbers for byond (this is a known fact) also ive read that hosting games for long periods of time without a reboot causes problems when there is constant procs running or just a lot of heavy procs can cause a backup so to speak.

I have seen similar problems in other games and even in one of mine I had a similar problem where things would start to go crazy after a couple days and stop working right. I found that the best solution was to just reboot the server everyday to reset all the background stuff to give it a break. At least thats all i could find to solve the problem
Make sure you're not surpassing the object/list/mob/etc. limits. Those can cause some weird stuff if left unchecked for a while! (The runtime error is "Out of resources!")
In response to NightJumper88
Assuming its that, if I made it auto reboot once a day, would that wipe the stuff or does it have to be a full on rehost?
In response to VcentG
I believe it can be an auto reboot cause it calls the same function as the manual reboot using the dream daemon (but i could be wrong). I did an auto reboot on mine and while i was still hosting that game it seemed to solve the problem
In response to NightJumper88
Gracias, I'm still messing around with the coding (which even if it can't solve this problem would still improve the game so no harm). I'll just make it auto-reboot, just in case.