Page MenuHomeFeedback Tracker

Anti-Dupe Algorithm - Suggestion w/ code
New, WishlistPublic

Description

Hello DayZ Standalone staff;

I have recently been playing DayZ Standalone and got killed due to a group of dupers. So I started thinking of an anti-duplication method and I came up with these results:

I have managed to solve my own duplication method in the code by creating a list with one-hundred 'player inventories' using a randomly generated item list containing a weapon with an attachment. I then proceeded to attach a unique identifier (serial number) to each weapon:
(i.e ["AUG" , "Silencer”, "1"] OR ["SVD" , "Scope" , "2"]).
This then means that each weapon is numbered uniquely; without any overlaps of serial numbers. Therefore in my code; at the end of the printed list; under the title 'After Dupe' we can see that a weapon which is randomly generated is then added to this list (final printed line). This simulates the same concept where a player would duplicate a weapon and transferred to another player, meaning that its unique serial number is stored two times in the database (there is a discrepancy). Therefore the server will then pick-up the duplicated weapons and do necessary actions; i.e removing both or removing the newest added (duplicated item).

For example; a player duplicates his weapon and let’s say that the weapon in DayZ’s database looks similar to this:

[ “MP5” , “Silencer, Red-dot sight, Fore grip”, “28/30” , ”5292”]

      with each variable referring to:-

[“Gun type”, “Attachments”, “Ammunition inside weapon”, “Unique serial number”]

Therefore because the weapon is duplicated; two of the same weapons are on the database at the same time. Hence their unique serial number appears twice. Where the server will find these duplications and do necessary actions to remove the discrepancy.
External modifications of the code (scripts / hacks) are not covered by this method; as changing the variable ‘itemNumber’ outside of the current list will create a discrepancy; bypassing the first method. This is solved using a simple prevention ‘if’ statement to filter out these variables (i.e if unique item number > the amount of items in the database).
I have used this algorithm in one of my projects in year eleven and I have never had any bugs or unexplained glitches happening because of it.

From a loyal DayZ franchise fan,

Weezytrout
{F32054}

Details

Legacy ID
3531595685
Severity
None
Resolution
Open
Reproducibility
N/A
Steps To Reproduce

All information provided in the description.

Additional Information

To run the code provided, please download Python 2.7.9 or Python 3.

For any additional information or issues; feel free to contact me as I believe that this algorithm will solve duplication for future DayZ Standalone updates.

Event Timeline

Weezytrout edited Additional Information. (Show Details)
Weezytrout set Category to category:glitchabuse.
Weezytrout set Reproducibility to N/A.
Weezytrout set Severity to None.
Weezytrout set Resolution to Open.
Weezytrout set Legacy ID to 3531595685.May 8 2016, 11:04 PM

Dude, that is all nice and such, but that stuff you posted is database 101. Unique identifiers have been implemented quite a while ago. And duping is logged in the background.

My suspicion is they leave it semi open for two reasons: they wait for a more robust loot economy system (because its mechanics could influence this as well) and to catch more/different methods of duping in the meantime.

And many dupe methods are resolutions of deadlocks with a bias to players favour: imagine the shitstorm when every discrepancy (currently there are many) leads to deleted weapons.

Although evident; it seems that this concept will cover the overall duping problem. Instead of fixing different dupe methods; why not use this system? It works and solves the problem down to the root instead of the branches. And with the first part, it doesn't make sense to (like said above) fix branches compared to the root; why bother?

vox added a subscriber: vox.May 8 2016, 11:04 PM
vox added a comment.Jun 25 2015, 4:21 PM

I can see the cry of "This will be horribly server taxing".

But if implemented properly, it shouldn't be too ugly.
You couldn't have it run this check every time an item spawns or gets touched.

BUT you could have a cleanup script running this every minute or so. And instantly kill off both duped items. (Fuck you dupers... Lose BOTH items)

I could see this getting abused in the short time. (Imagine mags duping on the fly as you shoot them, they wouldn't get nailed by the cleanup. That or with the CLE, it may be possible to run the check much faster without killing resources. Maybe run it more often on key items like weapons/mags.)

There could easily be a way to get around that as well by flagging certain variables for the script to check out as it passes.

EX:
Has user fired X bullets in X time. Someone who pisses out 500 rounds in a minute, something's wrong.

I really think there needs to be some heavy/handed consequences to duping as well. Maybe something that keeps a master list of client IDs and how many times they've been nailed for duping. It's one thing to do it by accident. I think I've managed it once or twice. But someone who gets nailed with 10+ items duped, and multiple times, should automatically get a heavy handed consequence. Or at least enough to kill him off globally until he has a chance to explain.

Honestly I think this system is efficient in the sense that it only needs to run maybe ever half hour. I see where you are getting too; but this is primarily for the long time dupers who have for example alternate accounts to save characters that have all these expensive items and their main which consists of that gear. However I am not saying that you need to replace the current system with this one; it's just this system is a lot more robust and is there as a secondary anti-dupe method which is always guaranteed to work. As for the item deletion; deleting both would be essential to stop people from attempting to dupe again. However that being said, items like guns and clothes could be checked every 10 - 30 minutes while food and items that are used more can have checks ever 2 - 3 minutes; although not as fast, it will stop people from mass duping food.

This shouldn't be implemented yet.

I was playing on a private shard. Fullpop, no lag, fun server.

I was driving a V3S heading to the coast to pick up a fresh spawn and drive around.
While driving at top speed, I got a memory error and crashed to desktop.

Upon logging back in, I saw my truck, engine still on some distance up the road.

I ran up to it, and noticed my own dead body next to it.

I walked to my body and was able to open its inventory. My entire characters inventory was duped.

I didn't need a second copy of anything so I left it on the ground. Hopped back in my truck and continued down the road.

After a bit the server admin started raging in global chat about dupers and how he had just banned two dupers. A short while later I was banned from this server.

Despite the best intentions, and even very careful planning, systems such as these aren't always necessary.

Writing the code that does just what you described would take even a less-skilled programmer about an hour. Doing just what you described is so simple that it could be implemented relatively bug proof.

When discussing implementing a system like this, there are many variables that must be considered, beyond "Fuck you dupers".

Will other bugs in the game cause this system to malfunction?
Will this system penalize legitimate players?
Are the illegitimate players causing enough trouble for the legitimate players to accept possible false positives?
How would the system impact the performance of the server in X state.
How well does such a system scale?
How much would the total implementation of the system cost?

I personally feel that duping isn't as big of a problem as some let on.

Finally, my question to you (the ticket author), how do you know with absence of any doubt that these players were in fact duping?

I personally know three different ways of duping. Some of which require your own server; and the vehicle duplication is one of them. The reason why I knew they were duping is they all had the same clothing, they all had the same mace, weapon + attachments and clan tag. Duping in itself is an easy to figure out; simple things like a server restart not saving the characters gear thus being rolled back is a prime example.

Often times when I've rolled as a clan, we've matched very closely in gear.

There's still plenty of room for doubt there. There's no way to truly know unless you had admin access to the server.

Ok; well lets say that those guys aren't duping. As I said before I do know multiple ways of duping items; no matter what server

andro added a subscriber: andro.May 8 2016, 11:04 PM
andro added a comment.Sep 14 2015, 4:03 PM

Eugen said once that some anti dupe methode like this will be implementet. But its sad that the Devs dont answer every feedback ticket. Brian said they read all. But the lack of feedback back to the ticket authors is sometimes frustrating.

osb added a subscriber: osb.May 8 2016, 11:04 PM
osb added a comment.Sep 15 2015, 6:11 PM

I dont know how the server admin knew you duped. There's no way to tell in the logs.

Please make your comments private, Weezy.

Micho added a subscriber: Micho.May 8 2016, 11:04 PM
Micho added a comment.Sep 17 2015, 5:18 PM

I totally agree with this, Devs he even provide you a example/solution in the code, how much work is it really to add this in, atleast if this really is a root solution you have that issue out of the window and dont have to think about it anymore, except for maybe having to fine tune the code to not affect the server performance that much if it really does affect it to a certain extent.

Thoese fuckers that downvoted this is probably dupers.

Osb; I have no idea what you're talking about. But Micho you are very much correct, another thing is that I was completely geared yesterday, AUG, full ttsko and my friend and I joined a full server. Killed 6 guys, ran inside of the jail at NWAF and got shot, through the walls by a group of about 3 people. As soon as I died to that, I knew that this game is a total disaster, the developers really need to fix their shit out. I am 16 years old, I have had two years of programming experience and have created projects before similar to dayz. This is going out there publically; developers, pull your shit together, stop wasting months on training up new employees for the game; hire people that know what they are doing. In my opinion, this project is merely just a money grab to create a game so that over 30 million people would render their money wasted. FIX YOUR GAME BOHEMIA, REPLY OR ACKNOLEDGE THAT YOU READ THE COMMUNITIES FEEDBACK!