yonilerner/cs2-retakes-allocator

Empty hands on newest version

RebornOG opened this issue · 14 comments

Im using the newest version of this plugin and metamod + cssharp and it seems to be bugged.

Got empty hands on spawn. Followed the install instructions no errors in the logs

Can you share your Retakes and RetakesAllocator configs?

Also is this spawn during warmup or the actual game?

Retakes config is the original one with EnableFallbackAllocation = false. I just checked a fresh installed server and the error might be related to the RetakesAllocator config not being created ?

Also the error occurs after warmup

The config is in plugins/RetakesAllocator/config

Its not being created for me. I've tried it on 2 different servers now unfortunately.

You must have some server error logs then

These are the logs from cssharp

2024-04-23 17:43:04.319 +02:00 [EROR] (cssharp:Core) Error invoking callback
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Exception: Config not yet loaded.
   at RetakesAllocatorCore.Config.Configs.GetConfigData() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Config/Configs.cs:line 37
   at RetakesAllocatorCore.Managers.RoundTypeManager.Initialize() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 31
   at RetakesAllocatorCore.Managers.RoundTypeManager.get_Instance() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 11
   at RetakesAllocatorCore.OnRoundPostStartHelper.Handle[T](ICollection`1 allPlayers, Func`2 getSteamId, Func`2 getTeam, Action`1 giveDefuseKit, Action`3 allocateItemsForPlayer, Func`2 isVip, RoundType& currentRoundType) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/OnRoundPostStartHelper.cs:line 20
   at RetakesAllocator.RetakesAllocator.OnRoundPostStart(EventRoundPoststart event, GameEventInfo info) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocator/RetakesAllocator.cs:line 454
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at CounterStrikeSharp.API.Core.FunctionReference.<>c__DisplayClass3_0.<.ctor>b__0(fxScriptContext* context) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/FunctionReference.cs:line 82
2024-04-23 17:43:23.361 +02:00 [EROR] (cssharp:Core) Error invoking callback
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Exception: Config not yet loaded.
   at RetakesAllocatorCore.Config.Configs.GetConfigData() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Config/Configs.cs:line 37
   at RetakesAllocatorCore.Managers.RoundTypeManager.Initialize() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 31
   at RetakesAllocatorCore.Managers.RoundTypeManager.get_Instance() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 11
   at RetakesAllocatorCore.OnRoundPostStartHelper.Handle[T](ICollection`1 allPlayers, Func`2 getSteamId, Func`2 getTeam, Action`1 giveDefuseKit, Action`3 allocateItemsForPlayer, Func`2 isVip, RoundType& currentRoundType) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/OnRoundPostStartHelper.cs:line 20
   at RetakesAllocator.RetakesAllocator.OnRoundPostStart(EventRoundPoststart event, GameEventInfo info) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocator/RetakesAllocator.cs:line 454
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at CounterStrikeSharp.API.Core.FunctionReference.<>c__DisplayClass3_0.<.ctor>b__0(fxScriptContext* context) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/FunctionReference.cs:line 82
2024-04-23 17:44:03.153 +02:00 [EROR] (cssharp:Core) Error invoking callback
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Exception: Config not yet loaded.
   at RetakesAllocatorCore.Config.Configs.GetConfigData() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Config/Configs.cs:line 37
   at RetakesAllocatorCore.Managers.RoundTypeManager.Initialize() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 31
   at RetakesAllocatorCore.Managers.RoundTypeManager.get_Instance() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 11
   at RetakesAllocatorCore.OnRoundPostStartHelper.Handle[T](ICollection`1 allPlayers, Func`2 getSteamId, Func`2 getTeam, Action`1 giveDefuseKit, Action`3 allocateItemsForPlayer, Func`2 isVip, RoundType& currentRoundType) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/OnRoundPostStartHelper.cs:line 20
   at RetakesAllocator.RetakesAllocator.OnRoundPostStart(EventRoundPoststart event, GameEventInfo info) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocator/RetakesAllocator.cs:line 454
   at InvokeStub_GameEventHandler`1.Invoke(Object, Object, IntPtr*)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at CounterStrikeSharp.API.Core.FunctionReference.<>c__DisplayClass3_0.<.ctor>b__0(fxScriptContext* context) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/FunctionReference.cs:line 82
2024-04-23 17:45:11.117 +02:00 [EROR] (cssharp:Core) Error invoking callback
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Exception: Config not yet loaded.
   at RetakesAllocatorCore.Config.Configs.GetConfigData() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Config/Configs.cs:line 37
   at RetakesAllocatorCore.Managers.RoundTypeManager.Initialize() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 31
   at RetakesAllocatorCore.Managers.RoundTypeManager.get_Instance() in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/Managers/RoundTypeManager.cs:line 11
   at RetakesAllocatorCore.OnRoundPostStartHelper.Handle[T](ICollection`1 allPlayers, Func`2 getSteamId, Func`2 getTeam, Action`1 giveDefuseKit, Action`3 allocateItemsForPlayer, Func`2 isVip, RoundType& currentRoundType) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocatorCore/OnRoundPostStartHelper.cs:line 20
   at RetakesAllocator.RetakesAllocator.OnRoundPostStart(EventRoundPoststart event, GameEventInfo info) in /home/runner/work/cs2-retakes-allocator/cs2-retakes-allocator/RetakesAllocator/RetakesAllocator.cs:line 454
   at InvokeStub_GameEventHandler`1.Invoke(Object, Object, IntPtr*)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at CounterStrikeSharp.API.Core.FunctionReference.<>c__DisplayClass3_0.<.ctor>b__0(fxScriptContext* context) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/FunctionReference.cs:line 82

Can you show me like.. way more logs? If the config isn't being loaded, it means there must be an exception way earlier

Sorry i think this should provide more infos and these combined with the earlier ones are all the logs i have associated to the RetakesAllocator plugin:

Thank you for taking your time btw

/home/36343e05-312a-4a0b/gameserver/gameserver/game/csgo/addons/counterstrikesharp/plugins/disabled/RetakesAllocator/RetakesAllocator.dll"
System.IO.FileNotFoundException: Could not load file or assembly 'SQLitePCLRaw.batteries_v2, Version=2.1.7.2151, Culture=neutral, PublicKeyToken=8226ea5df37bcae9'. The system cannot find the file specified.

File name: 'SQLitePCLRaw.batteries_v2, Version=2.1.7.2151, Culture=neutral, PublicKeyToken=8226ea5df37bcae9'
   at RetakesAllocator.RetakesAllocator.Load(Boolean hotReload)
   at CounterStrikeSharp.API.Core.Plugin.PluginContext.Load(Boolean hotReload) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Plugin/PluginContext.cs:line 216
   at CounterStrikeSharp.API.Core.Plugin.Host.PluginManager.LoadPlugin(String path) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Plugin/Host/PluginManager.cs:line 56
   at CounterStrikeSharp.API.Core.Application.OnCSSPluginCommand(CCSPlayerController caller, CommandInfo info) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Application.cs:line 179

It looks like you dont have all the files from the plugin. Did you do something other than unzip the entire folder?

Also why is the plugin in the disabled folder?

Fixed that error now. The disabled folder is because im running a multi plugin setup on this instance.
Im getting this error now which looks like a missing runtime for my specifc setup ?

2024-04-24 17:58:21.003 +02:00 [EROR] (cssharp:Core) Could not load plugin "/home/36343e05-312a-4a0b/gameserver/gameserver/game/csgo/addons/counterstrikesharp/plugins/disabled/RetakesAllocator/RetakesAllocator.dll"
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

Looks like a similar error. How are you extracting the files?

I am also experiencing the empty hands issue after warmup. At the start of each round, players spawn in with no items.
The Config was generated, I've made only slight changes to the RoundTypeSelection and how many rounds each type should get.

{
  "UsableWeapons": [
    "Deagle",
    "Glock",
    "USPS",
    "HKP2000",
    "Elite",
    "Tec9",
    "P250",
    "CZ",
    "FiveSeven",
    "Revolver",
    "Mac10",
    "MP9",
    "MP7",
    "P90",
    "MP5SD",
    "Bizon",
    "UMP45",
    "XM1014",
    "Nova",
    "MAG7",
    "SawedOff",
    "M249",
    "Negev",
    "AK47",
    "M4A1S",
    "M4A1",
    "GalilAR",
    "Famas",
    "SG556",
    "AWP",
    "AUG",
    "SSG08",
    "SCAR20",
    "G3SG1"
  ],
  "AllowedWeaponSelectionTypes": [
    "PlayerChoice",
    "Random",
    "Default"
  ],
  "DefaultWeapons": {
    "Terrorist": {
      "FullBuyPrimary": "AK47",
      "HalfBuyPrimary": "Mac10",
      "Secondary": "Deagle",
      "PistolRound": "Glock"
    },
    "CounterTerrorist": {
      "FullBuyPrimary": "M4A1S",
      "HalfBuyPrimary": "MP9",
      "Secondary": "Deagle",
      "PistolRound": "USPS"
    }
  },
  "MaxNades": {
    "GLOBAL": {
      "Terrorist": {
        "Flashbang": 2,
        "Smoke": 1,
        "Molotov": 1,
        "HighExplosive": 1
      },
      "CounterTerrorist": {
        "Flashbang": 2,
        "Smoke": 1,
        "Incendiary": 2,
        "HighExplosive": 1
      }
    }
  },
  "MaxTeamNades": {
    "GLOBAL": {
      "Terrorist": {
        "Pistol": "AverageOnePerPlayer",
        "HalfBuy": "AverageOnePointFivePerPlayer",
        "FullBuy": "AverageOnePointFivePerPlayer"
      },
      "CounterTerrorist": {
        "Pistol": "AverageOnePerPlayer",
        "HalfBuy": "AverageOnePointFivePerPlayer",
        "FullBuy": "AverageOnePointFivePerPlayer"
      }
    }
  },
  "RoundTypeSelection": "ManualOrdering",
  "RoundTypePercentages": {
    "Pistol": 15,
    "HalfBuy": 25,
    "FullBuy": 60
  },
  "RoundTypeRandomFixedCounts": {
    "Pistol": 5,
    "HalfBuy": 10,
    "FullBuy": 15
  },
  "RoundTypeManualOrdering": [
    {
      "Type": "Pistol",
      "Count": 5
    },
    {
      "Type": "HalfBuy",
      "Count": 6
    },
    {
      "Type": "FullBuy",
      "Count": 19
    }
  ],
  "MigrateOnStartup": true,
  "ResetStateOnGameRestart": true,
  "AllowAllocationAfterFreezeTime": true,
  "UseOnTickFeatures": true,
  "EnableRoundTypeAnnouncement": true,
  "EnableRoundTypeAnnouncementCenter": false,
  "EnableBombSiteAnnouncementCenter": false,
  "BombSiteAnnouncementCenterToCTOnly": false,
  "DisableDefaultBombPlantedCenterMessage": false,
  "ForceCloseBombSiteAnnouncementCenterOnPlant": true,
  "BombSiteAnnouncementCenterDelay": 1,
  "BombSiteAnnouncementCenterShowTimer": 5,
  "EnableBombSiteAnnouncementChat": false,
  "EnableNextRoundTypeVoting": false,
  "NumberOfExtraVipChancesForPreferredWeapon": 1,
  "AllowPreferredWeaponForEveryone": false,
  "ChanceForPreferredWeapon": 100,
  "MaxPreferredWeaponsPerTeam": {
    "Terrorist": 1,
    "CounterTerrorist": 1
  },
  "MinPlayersPerTeamForPreferredWeapon": {
    "Terrorist": 1,
    "CounterTerrorist": 1
  },
  "EnableCanAcquireHook": true,
  "LogLevel": "Information",
  "ChatMessagePluginName": "Retakes",
  "ChatMessagePluginPrefix": null,
  "InGameGunMenuCenterCommands": "gunsmenu,gunmenu,!gunmenu,!gunsmenu,!menugun,!menuguns,/gunsmenu,/gunmenu,.gunmenu",
  "InGameGunMenuChatCommands": "guns,!guns,/guns,.guns",
  "ZeusPreference": "Never",
  "DatabaseProvider": "Sqlite",
  "DatabaseConnectionString": "Data Source=data.db; Pooling=False"
}

Retakes Config

{
  "Version": 9,
  "MaxPlayers": 9,
  "TerroristRatio": 0.45,
  "RoundsToScramble": 8,
  "IsScrambleEnabled": true,
  "EnableFallbackAllocation": false,
  "EnableBombsiteAnnouncementVoices": false,
  "EnableBombsiteAnnouncementCenter": true,
  "ShouldBreakBreakables": false,
  "ShouldOpenDoors": true,
  "IsAutoPlantEnabled": true,
  "QueuePriorityFlag": "@css/vip",
  "IsDebugMode": false,
  "ShouldForceEvenTeamsWhenPlayerCountIsMultipleOf10": true,
  "EnableFallbackBombsiteAnnouncement": true,
  "ShouldRemoveSpectators": true
}

I did get my situation resolved. My environment is atypical I suppose, but I had issues with my user having access to the configuration file and to the data.db file.

Glad to hear thats sorted out!

For anyone else reading: Im going to close this ticket since there's not enough information to do anything with. At this point if a new issue comes up, please open a new issue with as much detail as possible :)