ID:1913673
 
(See the best response by Lummox JR.)
http://www.byond.com/games/EternalDuelistSoul/ DuelMonstersGenesis

Our game has been hosted through byondpanel for quite some time now, recently (approximately 1 month) the servers hosted through this service have been acting strangely. This is also not the first hosting service this problem has popped up in.

When a player logs in to the game, the server seems to be reading their save file incorrectly and not interpretting certain lines like it should.

This is a card game and the players have decks saved. We update cards frequently and pull these cards from the associated anime, the original japanese card game, and the english card game. So when a card from the anime gets released in real life, we remove the anime version of the card and add the real version.

When the player logs in to an updated server with outdated cards in their deck, the game will clear those cards from their decks and then alert the player about the removed cards so they can update their decks.

The problem is that when a player logs in to the server hosted through the dedicated service, the game is alerting the player that they have bad cards in their deck and removing them when they're not bad cards.

This doesn't seem to be a coding mistake as this error only happens when hosting through byondpanel or a similar service. If I or another user hosts a server from their personal PC, it runs just fine. We've also been hosting on these services for a long time now. This has never happened with byondpanel before but it has happened with another service I tried and couldn't find a solution back then.

As far as how this is manifesting itself.

When hosting through this particular hosting service...
The game will remove cards it shouldn't from a player's deck as if they weren't in the game. But those cards are still in the game and can instantly be re-added by the player.
If they relog, it will remove those exact same cards from their decks again.
When another player logs in, it will do the same thing to them except the cards it removes will not be the same. However it will continue to affect that 1 specific player in the same way consistently as long as the server is running.

Player A has the "Apple" "Orange" and "Banana" cards removed from all their decks every time they log in.
Player B has the "Grape" "Pear" and "Cherry" cards removed from all their decks instead, eventhough they may also have "Apple" "Orange" and "Banana" in their decks.
Player C logs in just fine, has all 6 of those cards in their deck, and gets nothing removed.

I thought it might just be that the server's rsc file was corrupted somehow but I've tried uploading it several times and get the same issue. I've also had another person upload the files from a different PC and got the same result.

If I, or any other player runs the same files from their home PC, the server runs fine and all of this is a complete non-issue.


Anyone have any thoughts as to why this is happening, what may be causing it, or how to fix it?
Best response
By removing cards and replacing them, do you mean you're changing type paths at all? Or is there some kind of lookup by card name?

My gut says some kind of character issue could be in play, except regular savefiles are binary. The only way the server could possibly have some kind of issue, I would think, might be if its locale were set strangely and making some kind of awful mistake interpreting decoded strings.

One thing I do know is that users who've been setting their locale to Japanese have been having all kinds of headaches with the pager. I can't help but wonder if that kind of thing is related.
When we make an update...

We would remove the anime card from the game.... for example...

obj/cards/monster/AV01/YMA001

and add a new obj

obj/cards/monster/CORE/EN001

When the player logs in, the game will detect that AV01/YMA001 is no longer a valid obj and will strip it from the player's deck and then report to them "____ has been removed from "(Deck Name)".

When the error with the hosting service happens, we get the same result but AV01/YMA001 would still be a valid obj in the game and gets stripped for no apparent reason.

The vast majority of our card obj's use similar naming styles for the obj path.

obj/cards/monster/<Set Abbreviation>/<Card Number>

Some of the older cards in the game might be

obj/cards/monster/<Set Abbreviation>/<card name>.

I don't think it has anything to do with system locale though. I've experienced the bug myself and use the english locale. I have used the japanese locale in the past and never experienced any issues though aside from a few characters not rendering properly in chat.

But again, this bug ONLY happens when we're hosting through a hosting service like byondpanel.
The way I figure things... the only reason for something like this to happen would be...

1. The rsc got corrupted somehow during the upload to the hosting service.

This doesn't seem likely though as we've tried to upload it numerous times and it has persisted through more than update.

2. Some type of setting with the hosting service is preventing the server from accessing players sav files properly.

This doesn't seem to be it either since we've used byondpanel for quite some time now and never had issues before. The service also doesn't really offer any types of settings you can adjust aside from port number and the typical byond hosting settings. Normal/Invisible/etc.

3. There's an error in the coding

If this were the case, I can't see why this would only occur on the hosting service instead of happening on all servers.

4. There is some kind of recent conflict with the linux version of byond

This one could be possible, but I have no way to really test this. Any of our players would be hosting personally on a windows PC while the hosting service uses the linux versions.
Could it possibly be cache related?
Old temp files on the server?
Other conflicts? How often is the server restarted?
Have you tried changing ports or anything like a save-wipe (can back them up of course) as a test?

You say that it could be unicode characters not rendering...that would be an issue. You'd want to have a hosting setup that can render as unicode/UTF-8 so that international languages are not a problem. Maybe that would fix it!
This bug happens immediately on launch of the server.

Every time we host a new version we store it in a different folder. But I have tried numerous times to just delete all the files stored on the server.

We dont use any unicode characters in the game, they tend to not display properly in-game anyways.

Saves are client-side so we can't wipe them. But even a player with a fresh save file will still get this bug affecting them as soon as they log in.

Well, I was talking about your hosting (not the game itself).
Byondpanel may not support unicode/UTF-8 (international characters). Do you use mysql to handle the saves? I need more information but my hunch is that something to do with your server is mangling the japanese characters in the save files and thus causing problems?
That is what I felt from reading your posts, anyway.
Seems to be what Lummox was getting on about earlier in the thread, as well.

@ post below - hey I am just trying to figure out how their system is setup. They mentioned Byondpanel and that they are hosting their game so, to me, it seemed like it might be something to do with that connection. Just because the savefiles themselves are on the clients PC doesn't mean that the saving of the file wasn't handled by a(n) (external) system.
In response to AERProductions
AERProductions wrote:
Do you use mysql to handle the saves?

...

Saves are client-side so we can't wipe them.

I need more information but my hunch is that something to do with your server is mangling the japanese characters in the save files and thus causing problems?

Could be the issue, enabling that locale may fix the issue, or may not, pretty sure its enabled by default anyway..

IceFire2050, can you page me the servers IP and I'll check it out for you.
We dont have japanese characters in the game. We have have japanese cards in the game but they're translated in to english.
Hmm, well.
Clearly you need more expansive help than offered here. :)
Alright, well I've take a look into the games .log file .. This is something you can access from the File Manager, it's generated automatically by DreamDaemon and will always be named after your .dmb.

So in this case the.dmb is named dmg.dmb so the log file is dmg.log

Here's one snippet from the log when someone has logged out

Warning: type read from file (/obj/cards/trap/CROS/EN076) is not defined
runtime error: bad client
proc name: r fd window (/mob/proc/r_fd_window)
usr: Samchris11 (/mob)
src: Samchris11 (/mob)
call stack:
Samchris11 (/mob): r fd window()
Samchris11 (/mob): c to grave(Blackwing - Kris the Crack of ... (/obj/cards/monster/ENG3/PGL2_EN006), 1, 0, 0)
ClearCards(Samchris11 (/mob))
ClearMob(Samchris11 (/mob))
Samchris11 (/mob): Logout()
runtime error: bad client
proc name: r fd window (/mob/proc/r_fd_window)
usr: Samchris11 (/mob)
src: Samchris11 (/mob)
call stack:
Samchris11 (/mob): r fd window()
Samchris11 (/mob): c to grave(Blackwing - Gale the Whirlwind (/obj/cards/monster/CRMS/blackwing_gale_of_the_whirlwind), 1, 0, 0)
ClearCards(Samchris11 (/mob))
ClearMob(Samchris11 (/mob))
Samchris11 (/mob): Logout()
Warning: type read from file (/obj/cards/trap/DM04/magnet_armor) is not defined
Warning: type read from file (/obj/cards/trap/DM04/magnet_armor) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN070) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN070) is not defined
Warning: type read from file (/obj/cards/trap/CSOC/treacherous_trap_hole) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN072) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/DM03/chasm_of_spikes) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CSOC/treacherous_trap_hole) is not defined
Warning: type read from file (/obj/cards/trap/DM04/magnet_armor) is not defined
Warning: type read from file (/obj/cards/trap/DM04/magnet_armor) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN071) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN070) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN070) is not defined
Warning: type read from file (/obj/cards/trap/CSOC/treacherous_trap_hole) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN073) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN072) is not defined
Warning: type read from file (/obj/cards/trap/DOCS/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN089) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/DM03/chasm_of_spikes) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CSOC/treacherous_trap_hole) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/DM05/silver_dollar) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/spell/TPCP/fusion_sage) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/DM05/silver_dollar) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN074) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/spell/TPCP/fusion_sage) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN072) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/trap/CORE/EN076) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/intercept_wave) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/cards_for_black_feathers) is not defined
Warning: type read from file (/obj/cards/trap/DCR/ojama_trio) is not defined
Warning: type read from file (/obj/cards/trap/DCR/ojama_trio) is not defined
Warning: type read from file (/obj/cards/trap/DCR/sakuretsu_armor) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN075) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN075) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/DM03/chasm_of_spikes) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CDIP/cyber_shadow_gardna) is not defined
Warning: type read from file (/obj/cards/trap/CDIP/cyber_shadow_gardna) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
Warning: type read from file (/obj/cards/spell/TSHD/cards_for_black_feathers) is not defined
Warning: type read from file (/obj/cards/trap/DCR/ojama_trio) is not defined
Warning: type read from file (/obj/cards/trap/DCR/ojama_trio) is not defined
Warning: type read from file (/obj/cards/trap/DCR/sakuretsu_armor) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN075) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN075) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/ANPR/reinforce_truth) is not defined
Warning: type read from file (/obj/cards/trap/DM03/chasm_of_spikes) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN077) is not defined
Warning: type read from file (/obj/cards/trap/CBLZ/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CDIP/cyber_shadow_gardna) is not defined
Warning: type read from file (/obj/cards/trap/CDIP/cyber_shadow_gardna) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
Warning: type read from file (/obj/cards/trap/CROS/EN078) is not defined
BUG: Finished erasure with refcount=2 (ref=3:26) DM (:65535)
Those errors...

Warning: type read from file (/obj/cards/trap/DM04/magnet_armor) is not defined


Those are the error that is generated when a player logs in with an outdated card in their deck.

Depending on how old that user's save file is, a few of those cards could be out of date but without going through every single one of those, I know for a fact that most of those cards are clearly defined..

Especially any of them named as a "/EN###". That's the final implementation of a card in the game. We dont move them around anymore after they get released officially in english.

When one of these errors is generated, it also reports the card in-game to the user.

runtime error: bad client
proc name: r fd window (/mob/proc/r_fd_window)
usr: Samchris11 (/mob)
src: Samchris11 (/mob)
call stack:
Samchris11 (/mob): r fd window()
Samchris11 (/mob): c to grave(Blackwing - Kris the Crack of ... (/obj/cards/monster/ENG3/PGL2_EN006), 1, 0, 0)
ClearCards(Samchris11 (/mob))
ClearMob(Samchris11 (/mob))
Samchris11 (/mob): Logout()
runtime error: bad client
proc name: r fd window (/mob/proc/r_fd_window)
usr: Samchris11 (/mob)
src: Samchris11 (/mob)
call stack:
Samchris11 (/mob): r fd window()
Samchris11 (/mob): c to grave(Blackwing - Gale the Whirlwind (/obj/cards/monster/CRMS/blackwing_gale_of_the_whirlwind), 1, 0, 0)
ClearCards(Samchris11 (/mob))
ClearMob(Samchris11 (/mob))
Samchris11 (/mob): Logout()

These errors came likely from a player logging out while they were in an active duel.
Question: What BYOND build is the server running?
In response to Lummox JR
Lummox JR wrote:
Question: What BYOND build is the server running?

508.1293
Follow-up question: What build was the server compiled in?
In response to Lummox JR
Lummox JR wrote:
Follow-up question: What build was the server compiled in?

Will need IceFire2050 to answer that one..
The files were compiled on 507.1286.
In response to IceFire2050
IceFire2050 wrote:
The files were compiled on 507.1286.

Try updating and compiling on the beta?
I'll give it a try and see if it helps. Source iss passed through a few hands right now to get updated so it might take a little bit to get compiled and tested.
Well, I wont be able to test a full compile in a while but I did try rolling back the server's byond version to 507.1286. We're still getting the errors.

Tue Aug 11 22:33:23 2015
World opened on network port 48170.
Welcome BYOND! (5.0 Public Version 507.1286)
World Opened at 22:33:48 08/11/2015.
10029 Cards Compiled (22:33:48 08/11/2015)
Server Config file found.
Hostkey Set to Dr. Seraphimon Obby.
Max Players Set to 200.
(Debug) Djinn Release of Rituals is not a valid Forbidden card.
Debug Check completed at 22:33:48 08/11/2015.
The BYOND hub reports that port 48170 is reachable.
Warning: type read from file (/obj/cards/spell/PTDN/allure_of_darkness) is not defined
Warning: type read from file (/obj/cards/spell/SRL/mystical_space_typhoon) is not defined
Warning: type read from file (/obj/cards/spell/SRL/mystical_space_typhoon) is not defined
Warning: type read from file (/obj/cards/spell/SRL/mystical_space_typhoon) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN005) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN005) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DPS/DPYG_EN020) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN005) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN005) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Warning: type read from file (/obj/cards/spell/DRLG/EN014) is not defined
Page: 1 2