Mechanic to prevent Dupes.

Anabolic Man

Well-known member
Sep 7, 2020
1,133
734
113
I know that some games suffer from Players exploiting and using Dupes.
Even Games from Rockster or Developing Studios with a lot of money and staff.

Programming errors in the database can occur from time to time, so I recommend the following query. I hope SV will implement such
Queries if they haven't already done so


I am not a developer, but i have talked to a
programmer


If a player puts a stack of valuable material in his bagpack, the game could start a query. Where does the material come from. If the player traded another player, if the stack was taken from a bank slot. If the player interacted with a vendor or the mailbox, or if he used the furnice, to see if the stack of Materials has been created in a legit way, or if it have been created out of nowhere.

Dupes can always appear,
but these are not a problem if the game detects them inside the logs, whether this material was created out of nothing and will be removed from the game.

A player told me that there was a Dupe in MO1, that have been fixed. A player could send Materials to another Player.

This material was removed from the database as soon as the player picked it up, but he could pick it up as often as he wanted, if he deleted his character and created a new character with the same name.

The player name is also an ID which authorizes the player to remove material sent to him from the vendor.

There were two identifications. The name and the player ID. Because the name matched, the player was allowed to pick up the material, but because the player identification was no longer correct, because a new character was created, the material was not removed from the database and could be picked up as often as the player wanted.


This error arose because of a missing query, that should have checked, whether a new character was created, or if a character have been deleated.


SV should definitely include such queries. Dupes can ruin such a game, and the duped materials need to be
be recognized in the logs and removed from the game.

Rerolls should be prevented as much as possible.
 
Last edited:

Anabolic Man

Well-known member
Sep 7, 2020
1,133
734
113
I am a Player that would immediatly report such a bug, , but we had Players in MO1 who did not and exploited such bugs. Aq was the best example, when i played MO1 in 2013. They got sieged and removed from the game.

I am very happy that SV apparently decided to do all the important functions serverside this time. The swing speed, the hitpoints, the movement speed and so on. In order to change these values, a program would have to access the INI files, and this seems to be detected by the Anticheat engine,
as far as I was told.
I'm a fan of cheat engines that scour the desktop for all kinds of open programs.
These always work best.
 
Last edited:
  • Like
Reactions: Speznat and Xunila

Necromantic

Active member
Jun 9, 2020
349
224
43
You don't need to check for character deletion, all you need to do is just delete everything related to that character when the character is deleted.
Just like when you currently create a guild in MO and you delete your character that guild still exists despite not a single existing character being in it and making a character with the same name doesn't give you access either. Which renders the guild name lost forever.
For things that still need to exist in the world after the character is gone remove any reference and only reference the character by name. Or create a special data object for deleted characters that only keeps that data that needs to remain.
On top if these stupid obvious problems you also get a lot of underlying problems like the database being filled with meaningless trash data.

For any kind of transaction in-game you really need the ACID principle, which is the basic principle behind any secure database transaction.
 
  • Like
Reactions: PatWins

Jackdstripper

Well-known member
Jan 8, 2021
1,200
1,064
113
Oh I see you talked to a programmer....well then you are perfectly qualified to advise other programmers...
Like me, I once talked to a doctor .....so now I can pretty much tell all doctors how to do their job.

don’t be ridiculous dude. If it was an easy fix it would have be done. You fail to understand how incredibly arrogant and foolish it is to come here and tell devs (which have coded this game for the last 10 years) how to do their job.

if you find a dupe, be decent human being and report it. Don’t tell your friends and don’t use it. Devs know a lot more than you about fixing this type of stuff.
 

Necromantic

Active member
Jun 9, 2020
349
224
43
Well, I am a professional software engineer with a specialization for interactive media. Just saying. ;P
 

bbihah

Well-known member
Jul 10, 2020
1,111
951
113
I think Necro is one of, if not the most qualified person to weigh in on programming matters on these forums.
 

Rhias

Well-known member
May 28, 2020
1,142
1,330
113
I'm a developer for ERP systems. There it is also really critical to have duplicated bookings. But shit happens.
Personally I don't think anyone at this forum is able to give any helpful advice, unless you you have some insider Information of their stack/architecture.
Sure, there are general concepts, but I'm sure SV is also aware of them.
 
  • Like
Reactions: Xunila

Speznat

Well-known member
May 28, 2020
1,305
1,177
113
Tindrem
wolfszeit.online
I'm a developer for ERP systems. There it is also really critical to have duplicated bookings. But shit happens.
Personally I don't think anyone at this forum is able to give any helpful advice, unless you you have some insider Information of their stack/architecture.
Sure, there are general concepts, but I'm sure SV is also aware of them.
I agree with you too.

I see also a potential problem as a whole.

I mean if not even Rockstar Games can prevent exploids from happening how can SV do that.
And DB anomalys can happen. And because of code that is not written correctly more stuff can happen.

Maybe Henrik made it already pretty bulletproof noone knows. I just hope that the Honorable players find the exploids first and can report that immediatly that SV can instand fix them before damage is happening.
 

Speznat

Well-known member
May 28, 2020
1,305
1,177
113
Tindrem
wolfszeit.online
These Cases can maybe atleast help a little to find a false or duped item.

I mean atleast you can check if the new ID is somehow handled correctly.

Something like refined with the refining id of the pig iron too. and if that dont match no chance. or something like that. but thats something SV will takes ages for to implement i think and its difficult to implement and it also cause more bugs. but it could prevent duping to some extend.
 

Necromantic

Active member
Jun 9, 2020
349
224
43
Well, as was said before, one of the problems is potentially that a lot of things are done by references to a characters name, not his internal id or hash. That may work in most cases but not all and is prone to error. They are basically using mutable data as opposed to unique primary keys.
They also don't seem to remove related garbage data like a guild when no existing leader exists anymore. Even a check every 24 hours would work. Does someone who can manage the guild still exist? Yes? Okay. No? Remove the guild. Implementation details may vary.

Everyone who has at some point seen the MO database, when they forgot to encrypt it, kind of knows how things are set up internally to some degree.

I mean if not even Rockstar Games can prevent exploids from happening how can SV do that.
Honestly, taking any big company as a reference means nothing. A lot of people are bad at their jobs, especially in the games industry. ;P
A lot of people are basically just winging it despite not having the expertise for a lot of things that may be needed.
 
Last edited:
  • Like
Reactions: Speznat and Vagrant

cwall

New member
Dec 28, 2020
16
11
3
speculating about the game's data model and trying to offer advice about an assumption is a worthless endeavor

it just comes off as condescending
 

bbihah

Well-known member
Jul 10, 2020
1,111
951
113
I think Necro has more insight in past and current internals of MO than the devs themselves, always had.

From what I remember he helped them out on multiple occasions during MO1.
 

MolagAmur

Well-known member
Jul 15, 2020
796
975
93
Correct me if I'm wrong, but MO1 didn't have unique IDs for items right? So it was even harder to track things?

I'm very ignorant when it comes to programming, but I remember that being said and it also being why there were a lot of OP "pre-patch" items that didn't get nerfed when they would patch the item. This could also have absolutely nothing to do with IDs...

If it doesn't..could someone explain.
 

Rhias

Well-known member
May 28, 2020
1,142
1,330
113
Correct me if I'm wrong, but MO1 didn't have unique IDs for items right? So it was even harder to track things?

I'm very ignorant when it comes to programming, but I remember that being said and it also being why there were a lot of OP "pre-patch" items that didn't get nerfed when they would patch the item. This could also have absolutely nothing to do with IDs...

If it doesn't..could someone explain.

It doesn't.
Craftable items in MO1 stored all their necessary information they needed. E.g. their looks, attack values, defense values and weight. But they didn't store "unnecessary" information such as the lore levels of all skills which affected the result while crafting.
That does also mean that SV was unable to recalculate existing items once a patch changed the crafting calculation, since they simply didn't know all the values which would be required to recalculate them.
 

Rhias

Well-known member
May 28, 2020
1,142
1,330
113
Correct me if I'm wrong, but MO1 didn't have unique IDs for items right? So it was even harder to track things?
During the AIM scandal several players got banned for possessing duplicated items and/or items got removed. So at least they were somehow able to track them down.
 

barcode

Well-known member
Jun 2, 2020
370
352
63
there's plenty of ways dupes can happen. acid transactions are nice but its certainly not a panacea

deleting characters should be a logical deletion not a physical deletion. this is in case someone deletes a character in a fit of rage or from a hacker or whatnot, seb can bring it back. Items and everything should be attached to the character and not the account. If a character's gear or mail or whatever is tied to their *name* and not a proper unique id, then i think their schema needs a bit of roto rooting.

preventing dupes is important but there may be unforseen ways for dupes to occur. Its equally important to have a way of tracking items as they move in the economy so you can clean up the duped items after-the-fact. This is difficult in mo since you can create a new item at any time by splitting a stack (gives it a new unique id). I really hope SV is up to the task on this one as the economy in mo1 was jacked from the start.

-barcode