Players able to duplicate quest rewards

Hi, One of my players told me today that he was able to duplicate his rewards because the button never vanished upon claim he walked me through the process but it did not replicate for me, I may try it again a few more times.

plugin version: 2.4.1

Bug Process:

Gather what you need for the quest.

Claim Rewards.

You recive quest rewards but the button does not disappear

you can then spam the claim button as much as you want until it does vanish (seems to be random)

wondering what could be causing this, plugin has been working great for us well over a year no issues.

Experiencing a similar issue on my server as well w/ version 2.4.1. I've had a few player reports recently about being able to claim a reward more than once. Here is a support ticket transcript from the most recent report:

[Dec 3, 2021 08:21:51 PM PST] [redacted player name]: i think i got quest reward twice

[Dec 3, 2021 08:22:02 PM PST] [redacted player name]: i handed in quest and it still said claim reward

[Dec 3, 2021 08:22:24 PM PST] [redacted player name]: then when i pressed it got a message saying "contact administrator unable to give quest reward"

[Dec 3, 2021 08:22:43 PM PST] [redacted player name]: then 5 mins later i hit it and got reward again and then it showed a cooldown on that quest

The experience was pretty identical for all reports.

Can you two please dm me on discord to check this?
Gonzi#1337

I added you on discord(aSexyTryHard) so I could give you the details but I couldnt message you without being a friend so I'll let you know on here. 

I've been having the same issue. So I delete all data,except config, wiped user data, and reinstalled plugin. I then created a new test quest, and upon creation I get this in the rcon 

Failed to call hook 'cmdSaveQuest' on plugin 'Quests v2.4.1' (UnauthorizedAccessException: Access to the path "/home/container/oxide/data/Quests/quests_data.json" is denied.)
at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)
at System.IO.StreamWriter.CreateFile (System.String path, System.Boolean append, System.Boolean checkHost) [0x0001c] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize, System.Boolean checkHost) [0x00055] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string,bool,System.Text.Encoding)
at System.IO.File.WriteAllText (System.String path, System.String contents, System.Text.Encoding encoding) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00007] in <eae584ce26bc40229c1b1aa476bfa589>:0

at Oxide.Core.Configuration.DynamicConfigFile.WriteObject[T] (T config, System.Boolean sync, System.String filename) [0x0003f] in <9882f28dc2204b4dba514a9ad18f5042>:0

at Oxide.Plugins.Quests.SaveQuestData () [0x00011] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.SaveQuest (BasePlayer player, System.Boolean isCreating) [0x00230] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.cmdSaveQuest (ConsoleSystem+Arg arg) [0x00044] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x026a4] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <60c318df79ed41688ea59335e48d61ad>:0

at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <9882f28dc2204b4dba514a9ad18f5042>:0

at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <9882f28dc2204b4dba514a9ad18f5042>:0

I then tested the quest and it worked as expected. Even though everything SEEMS to be working as expected after deleting and manually readding quest, this error appears in rcon when claiming reward. 

[Quests] Error retrieving quest info for: Not Mushroom in here

But, its working. 

TLDR: Remove quest and manually readd them, and this seems to fix the issue.



Merged post

I added you on discord(aSexyTryHard) so I could give you the details but I couldnt message you without being a friend so I'll let you know on here. 

I've been having the same issue. So I delete all data,except config, wiped user data, and reinstalled plugin. I then created a new test quest, and upon creation I get this in the rcon 

Failed to call hook 'cmdSaveQuest' on plugin 'Quests v2.4.1' (UnauthorizedAccessException: Access to the path "/home/container/oxide/data/Quests/quests_data.json" is denied.)
at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)
at System.IO.StreamWriter.CreateFile (System.String path, System.Boolean append, System.Boolean checkHost) [0x0001c] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize, System.Boolean checkHost) [0x00055] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string,bool,System.Text.Encoding)
at System.IO.File.WriteAllText (System.String path, System.String contents, System.Text.Encoding encoding) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0

at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00007] in <eae584ce26bc40229c1b1aa476bfa589>:0

at Oxide.Core.Configuration.DynamicConfigFile.WriteObject[T] (T config, System.Boolean sync, System.String filename) [0x0003f] in <9882f28dc2204b4dba514a9ad18f5042>:0

at Oxide.Plugins.Quests.SaveQuestData () [0x00011] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.SaveQuest (BasePlayer player, System.Boolean isCreating) [0x00230] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.cmdSaveQuest (ConsoleSystem+Arg arg) [0x00044] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.Quests.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x026a4] in <a51cd5cacc274eb08b36c36b2129650c>:0

at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <60c318df79ed41688ea59335e48d61ad>:0

at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <9882f28dc2204b4dba514a9ad18f5042>:0

at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <9882f28dc2204b4dba514a9ad18f5042>:0

I then tested the quest and it worked as expected. Even though everything SEEMS to be working as expected after deleting and manually readding quest, this error appears in rcon when claiming reward. 

[Quests] Error retrieving quest info for: Not Mushroom in here

But, its working. 

TLDR: Remove quest and manually readd them, and this seems to fix the issue.

Hi there, I just got report of a player able to claim rewards infinitely too. Any idea how to fix it?

Same issue on my server.

I have the same problem on the server, a player claims infinite rewards.