Character Limit
-
DSAM does a pretty good job of letting you know where the issues lie. I knew about the cargo hold/equipment issues, but I was unaware that they might span accounts - usually when a file is corrupted, the rest of the account (sometimes even that file) still works fine?
Perhaps then, it would be a good idea to have a bunch of huge characters with many entries in the file, stick them on an account, and see what happens?
-
I haven’t used DSAM at all because I’m not sure how it works on non-disco servers. I tried it a while back when we were having some server issues and it seemed like it was doing stuff to some character files I didn’t know enough about. At any rate it didn’t fix the problem(s) we were having so I haven’t tried it since.
-
Generally it doesn’t fix the issues, but it lets you know what you’re looking for - for example, earlier today, I got a “Value was either too large or too small for a UInt32.”, and after checking the file, the player had somehow managed to have -20 of commodity_water…
Maybe I should just create a setup with lots of cargo/equipment lines, and clone it into 50-60 characters.
-
Usually we see the problem with players who make their little armories or weps/equip depots. I’ve seen them with over 300 items in their cargo holds.
them: Hey Robo old buddy old pal old friend of mine!! long time no see!! howyabeen?
me: fine, who (backspace backspace backspace) how are you?
them: fine, hey listen, i can’t log in on my other account! what’s wrong with your server, why did you ban me?
me: what are you talking about, there’s nobody in the firewall atm
them: i can’t log in, it gives me some error message
me: what message?
them: i don’t know
me: sigh… go try and log in while I watch the console (logs into the remote console)
them: ok, brb, don’t go awaythey attempt to log in, i see the login attempt with corrupted account message, go back to game. they log in again with the working account…
them: yeah, your server is screwed up, it won’t let me in. (note that it’s always the server’s fault…)
me: what is the character name you’re having probs with?
them: gives character nameI go and look and sure enough, there’s more lines of code in their file than in weapon_equip.ini. I edit the account and remove all the cargo = and base_cargo = lines and paste them into a text file because I know what’s coming next…
I go back into the gameme: all right, try now.
them: ok, brb, don’t go awaythey log in with the account they were having problems with.
them: WT*, why’d you delete all my cargo??? (note the lack of thanks)
me: character works now?
them: WHERE’S MY CARGO, I WORKED ALL MY LIFE FOR THAT STUFF!!!
me: take a chill, we’ll get to that next. go make four new characters.
them: … why?
me: because I said so…
them: I don’t have room in my account, it’s already full.
me: do you want your cargo or not…?One day I’ll write a book about my experiences as a firefighter and a Freelancer server Admin…
-
-
DSAM requires FLHook; aren’t you running FLAC robo?
Otherwise, DSAM is perhaps the best account manager, easily beating IFSO when combined with DSPM.
-
No, we’re not running FLHook. Maybe that’s why the DSAM results I was seeing looked odd. If I recall correctly, the program ran fine, I just wasn’t sure what it was doing at the time. I used it just enough to figure out it wouldn’t solve my issues at the time and then discarded it.
-
Hey, I know those conversations too.
To shed a little light on everything, I think you guys might be talking about 2 different things.
There is a maximum number of cargo/equipment item limit in Freelancer. This appears to be 127 and although more items are possible there is a bug somewhere that sometimes corrupts the character file. The 127 limit includes engines, lights, cargo and equipment.
Depending on the corruption, when a single character file in the account gets corrupted, the account cannot be used. I’ve found that resetting the tstamp parameter in the character file to another date (the tstamp parameter is a windows FILETIME split into 2 integers) fixes the problem.
What I thought the first question was about was “how safe is it to increase the number of characters per account?”
-
SSM currently runs with 10 players per account, haven’t had any trouble with it. Now the overflowing cargo can be a problem, it is limited to 99 items per ship by using the player cleaner. If it’s commodities (as in stackable) then it’s only considered 1 item.
-
Sorry to dig this thread but it seems i have a problem
Well i have a strange behavior.I have one account that crashes the server as soon the player list gets displayed and it has something to do with the overloaded char. But if i just take out one of the chars of this account then the server does not crash. And the strange thing. It must not be the overloaded char - it can be any other. So yes its item/equip related but not entirely. It seems that the number of chars within this account play a role as well, although the char limit is not reached yet.
Anyone an idea what causes this and why removing one char of this account (not mandatory the bugged one) seems to be enough?
-
Overlimit is a strange bug. Theoretically the limit is 512 for the whole acct (or something like that), and 127 per pilot. But this is not a hard and fast rule. I have a few players with 150 items and 2 ships on the acct and both can be accessed fine.
So, if your 5 ships together breech the 512 limit, then removing any one of them should go below and make things good again.
-
Try using Freelancer Player Cleaner. http://forge.the-starport.net/attachments/download/198/FLPlyrCleanerV1_010.zip
It’ll scan your Multiplayer folder and correct detected errors in all player files.
As mentioned above, there is a total line count problem that can be shared across characters within an account. It’s odd though that it’s the server that’s crashing and not the player.
I’d start by removing all visit = lines and see if that fixes the problem. I presume you’ve already looked at the ship archetype, last base, and equipment lines for anything out of sorts.
-
Be careful just autocleaning >127 items. Our mod has lots of good items and people use ships for storage (worth billions). I run it as ‘check for errors only’ and then manually see what they have if they get flagged as over. If junk, delete it, if storage, delete just the few to get it under again.
-
good point. I have our server set to automatically back up the Multiplayer folder once a week. Then FLPlayerCleaner automatically runs and cleans the player files. This way if somebody does lose all their loot I can always restore the char from backups and they can shuffle things around as needed.
-
I found that issue with the 0xFFFFFFFF bug in the player files plus the overloaded cargo hold. Seems to happen only if you push the limit past the max of 5 players per account. In my case though it only craps out their account and doesnt crash the server.
-
One other thing you should do. Is it possible that the player in question has corrupted or incompatible game files? You should have that player reinstall FL, probably the JFLP, and also the latest version of your mod. May not make a difference, but at least you’ll have ruled that out as the cause.
-
Well i know of the PlayerCleaner Tool. But that does not help really to avoid crashing the server.
The server crashes as soon as the player list gets displayed. The routine that causes the crash is the CharacterInfoReq routine from the remoteclient.dll. At least thats what i get while debugging the hook. Its reproducable but i cant seem to find a way to avoid this crash.
I could parse all files before the remoteclient.dll routine is called. But its wrong to simply remove the equipments from one char who has more than 99 equipments as its the sum that seems to play a matter here. Character limit for one account is currently 9 although is also crashes with 8 chars only. If i remove one char then everything is fine tho. I dont know yet how to start to get around - than just remove each equip from the cargo that is beyond 99. Although that may make some players unhappy ;D
Is there known what limit exists as it seems not to be only 99 equips and also not char limit based for one account.
;( Struggling
Edit:
Its getting a bit more confusing now. I counted all the equipments on this account that is causing the crash. And it is not near any of the mentioned limits at all - except that one char has more than 99 equipments. I tried to remove on char from the account and so it works even with the “bugged” char still is on the list.
Then i made all chars again available and removed the base_cargo entries from the player file and it works. Ok too much base_cargo entries seems to be a reason - yeah. BUT no. It even works if i fill up the cargo entries from the player file so base_cargo and cargo count and items again match. Then the player even has too much cargo items but the account is still working this way with all player chars and the server is not crashing. So my last assumption is that the difference allone in one player file may be reason to trigger a crash. Although i dont understand why removing one char file before has also solved the issue so the server is not crashed.Has anyone an idea where base_cargo and cargo entries are coming from and why in most cases they are the same lists?
-
CharacterInfoReq () contains buffer overflow vulnerability, and can crash the server, with 7… 12 characters per account, and many visited objects or cargo holds.
Try to reduce arguments, contains buffer size (integer), not less than on 12.remoteclient.dll
0x96b1: 00 28 00 00 -> f0 27 00 00
0x9707: 00 90 01 00 -> f0 8f 01 00
It’s workaround only, NOT best solution.