vMenu v2.2.0 - A server-sided menu including (almost) full permissions support

menu
trainer
vmenu
servermenu
permissions

#2339

Docs update

Docs have been updated, more FAQ questions and some other stuff has changed.
https://docs.vespura.com/vmenu/faq/

Support

Like I’ve mentioned earlier, but so far I haven’t really been keeping myself to this, I’ll not provide support if you don’t read the docs. I’ll be more strict in this policy from now on.

Also, if you:

  • Ask something that’s already answered on the docs?
    I won’t help you.
  • Don’t understand the docs?
    Then I’m sorry to bring it to you, but vMenu might not be the resource for you, if you can’t figure out how to read simple instructions. It won’t help either to ask me as I’ll just copy/paste the answer from the docs anyway…
  • Complain that x doesn’t work, or request help, or report something, but you don’t provide any useful info then:
    I’ll ignore you. NO INFO = NO FIX. It isn’t that difficult! If you don’t know what to provide, then be sure to ask. But usually: if it’s a client problem, send a client log, if it’s a server problem, provide a pastebin.com link to your permissions.cfg and server.cfg (of course removing sensitive info like rcon password and license key etc).

#2340

Hey Vespura, got a puzzle for you,

what the sam hill is this?

Unhandled exception: Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: .. Path '[2]', line 34, position 3.
  at Newtonsoft.Json.JsonTextReader.ParsePostValue (System.Boolean ignoreComments) [0x0019a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonTextReader.Read () [0x0005a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x00075] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Linq.JTokenWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x000b8] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren) [0x0000b] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateJToken (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract) [0x0005d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x00009] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00054] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at vMenuServer.BanManager+<GetBanList>d__8.MoveNext () [0x000ae] in C:\projects\vmenu\vMenuServer\BanManager.cs:77
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at vMenuServer.BanManager+<CheckForBans>d__10.MoveNext () [0x00020] in C:\projects\vmenu\vMenuServer\BanManager.cs:141
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1 (System.Object state) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00007] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
GlobalError: Unhandled exception in Mono script environment: Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: .. Path '[2]', line 34, position 3.
  at Newtonsoft.Json.JsonTextReader.ParsePostValue (System.Boolean ignoreComments) [0x0019a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonTextReader.Read () [0x0005a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x00075] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Linq.JTokenWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x000b8] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren) [0x0000b] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateJToken (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract) [0x0005d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x00009] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00054] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at vMenuServer.BanManager+<GetBanList>d__8.MoveNext () [0x000ae] in C:\projects\vmenu\vMenuServer\BanManager.cs:77
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at vMenuServer.BanManager+<CheckForBans>d__10.MoveNext () [0x00020] in C:\projects\vmenu\vMenuServer\BanManager.cs:141
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1 (System.Object state) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00007] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0    at Newtonsoft.Json.JsonTextReader.ParsePostValue (System.Boolean ignoreComments) [0x0019a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonTextReader.Read () [0x0005a] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x00075] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Linq.JTokenWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren, System.Boolean writeDateConstructorAsDate, System.Boolean writeComments) [0x000b8] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader, System.Boolean writeChildren) [0x0000b] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonWriter.WriteToken (Newtonsoft.Json.JsonReader reader) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateJToken (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract) [0x0005d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x00009] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00054] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <d7f577efea6043649cddd7a978a2c473>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value) [0x00000] in <d7f577efea6043649cddd7a978a2c473>:0
  at vMenuServer.BanManager+<GetBanList>d__8.MoveNext () [0x000ae] in C:\projects\vmenu\vMenuServer\BanManager.cs:77
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at vMenuServer.BanManager+<CheckForBans>d__10.MoveNext () [0x00020] in C:\projects\vmenu\vMenuServer\BanManager.cs:141
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1 (System.Object state) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00007] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <0123fd5b1a1040fe9d70a7e0d4b28acb>:0

#2341

Did you edit the bans.json?


#2342

Trying to change the toggle key to F7 (key 168). The ‘M’ key is still the key that pulls up the menu.

Any valid control ID can be used here.

setr vmenu_menu_toggle_key 168
setr vmenu_noclip_toggle_key 289

Can you tell me why this is not working?


#2343

Probably your permissions file isn’t executed.


#2345

i had to manually enter bans in the bans.json yes. saw in the console a couple times when people had tried using a lua injector, but an admin was not able to get on the server before they left. i copied and pasted previous ban entries that had been created when the ban was done via menu in game. i deleted all info in the bans and the issue went away.


#2346

If you edited the bans.json then that’s why, you messed up while editing it.


#2347

Coordinates Are Not Working Anymore For Me. Or Am I The Only Person?


#2348

There’s a problem with them if you left align the menu and have it open. Close the menu and it works.


#2349

Unless im retarded i cant see the align option in vMenu


#2350

The file is executed in server.cfg. It’s at the top of the file.

you probably don’t want to change these!

exec permissions.cfg


#2351

It’s in the misc settings menu, same as the display coordinates option. Or are you talking about something else (unrelated to displaying coordinates)

Are you sure you have the permissions.cfg in the correct folder? And are you sure it’s executed correctly?


#2352


I am having this problem and cant find where this was answered already, I am not on an Ultrawide but am still having this problem, can some please help!


#2353

Hey, I’m sorry for the late response. But I got it fixed. One file was missing so I downloaded the script again. Thanks a lot anyway!


#2354

It’s on the docs faq page @Alex_White


#2355

is there a way to completely disable the recording options and no clip?


#2356

look on the docs for the permissions page.


#2357

I have this on the server that I own, and all my members and admins have no trouble with it but for me personally, A lot of things are broken. A few examples would be the player location display does not work, the speed limiter does not work, and the auto pilot is stuck on rushed mode even when I have it set to normal. These are just some of the things I have noticed, I do not know everything that is broken for me but do you have any ideas?

Edit: It does not have anything to do with perms because for those specific things I did not change the perms for and I have the admin perm, and another admin has all of his stuff working fine, so its a personal issue.


#2358

No idea. No errors?
Also “rushed mode is stuck”, normal mode is still kind of rushed, the only difference is normal mode doesn’t blow through red lights but rushed mode does, other than that there’s pretty much no difference. Speed is not affected by driving style btw. And the speed limiter is random. Sometimes it works sometimes it doesn’t. There’s nothing I can do about that.

Location display causes lag, it’s not recommended to have that turned on anyway.


#2359

Well, to be honest, I WAS sure… but I double checked and I found that I had the cfg file in the wrong place. I have since fixed this. Thanks for the help though!