Jump to content

Issue/bug with Personal Floater makes server crash and disconnects all players


konijnenmoed
  • Fixed

This bug happened on my own hosted public server and knowing the context when/how it happened, it was used as an exploit by a player. All players got disconnected and the server crashed. I was able to restart the server, but lost some progress because it loaded the previous snapshot.

I hope this can be patched asap with a hot fix, because personal floaters are very easy to obtain. Official Klei servers will crash indefinitely when this bug is used as an exploit to crash servers.

[10:12:14]: Spawn request: woodie from [...]
[10:12:14]: Skill Selection request: 16748354	
[...]
[10:21:34]: [string "scripts/components/inventory.lua"]:1205: attempt to index field 'equippable' (a nil value)
LUA ERROR stack traceback:
scripts/components/inventory.lua:1205 in () ? (Lua) <1120-1242>
   self =
      opencontainerproxies = table: 0x294bd660
      ignoreoverflow = false
      silentfull = false
      inst = 417512 - woodie (valid:true)
      equipslots = table: 0x294bd600
      dropondeath = false
      isopen = true
      opencontainers = table: 0x294bd630
      isexternallyinsulated = table: 0x294bd690
      ignorefull = false
      ignoresound = false
      isvisible = true
      itemslots = table: 0x409f0940
      _ = table: 0x409f0810
   item = 429237 - flotationcushion (valid:true)
   old_to_active = nil
   no_animation = nil
   force_ui_anim = nil
   eslot = hands
   olditem = 430685 - flotationcushion (valid:true)
   iscontroller = false
   leftovers = nil
=(tail call):-1 in ()  (tail) <-1--1>
scripts/bufferedaction.lua:26 in (method) Do (Lua) <22-36>
   self (valid:false) =
      action = table: 0x2dd24300
      invobject = 429237 - flotationcushion (valid:true)
      onfail = table: 0x2367d810
      doerownsobject = true
      rotation = 0
      onsuccess = table: 0x9d7f150
      options = table: 0x313ee7d0
      doer = 417512 - woodie (valid:true)
scripts/entityscript.lua:1556 in (method) PushBufferedAction (Lua) <1525-1568>
   self (valid:true) =
      _PostActivateHandshakeState_Client = 0
      GetMoistureRateScale = function - scripts/prefabs/player_common.lua:254
      SetCameraDistance = function - scripts/prefabs/player_common.lua:1535
      SetGooseFlying = function - scripts/prefabs/woodie.lua:491
      skeleton_prefab = skeleton_player
      EnableBoatCamera = function - scripts/prefabs/player_common.lua:923
      MakeGenericCommander = function - scripts/prefabs/player_common_extensions.lua:920
      IsOverheating = function - scripts/prefabs/player_common.lua:224
      CommandWheelAllowsGameplay = function - scripts/prefabs/player_common_extensions.lua:1100
      SetClientAuthoritativeSetting = function - scripts/prefabs/player_common_extensions.lua:989
      IsBeaverStarving = function - scripts/prefabs/woodie.lua:557
      ApplySkinOverrides = function - scripts/prefabs/player_common.lua:1711
      ResetMinimapOffset = function - scripts/prefabs/player_common.lua:1519
      ApplyScale = function - scripts/prefabs/player_common.lua:1630
      CustomSetShadowForSkinMode = function - scripts/prefabs/woodie.lua:1088
      SetGhostMode = function - scripts/prefabs/woodie.lua:448
      ShowActions = function - scripts/prefabs/player_common.lua:1495
      SetGymStartState = function - scripts/prefabs/player_common.lua:55
      Transform = Transform (0x40bbbd10)
      UseWereFormSkill = function - scripts/prefabs/woodie.lua:1644
      event_listening = table: 0x3ed9a2b0
      actioncomponents = table: 0x255c2120
      PushMooseSmashShake = function - scripts/prefabs/woodie.lua:520
      SwapAllCharacteristics = function - scripts/prefabs/player_common.lua:2200
      RecalculateWereformSpeed = function - scripts/prefabs/woodie.lua:1140
      prefab = woodie
      updatecomponents = table: 0x40026d10
      YOTB_issetunlocked = function - scripts/prefabs/player_common.lua:85
      ShakeCamera = function - scripts/prefabs/player_common.lua:1571
      YOTB_isskinunlocked = function - scripts/prefabs/player_common.lua:92
      MiniMapEntity = MiniMapEntity (0x3a25ec00)
      SetGymStopState = function - scripts/prefabs/player_common.lua:64
      EnableTargetLocking = function - scripts/prefabs/player_common_extensions.lua:1094
      _wasnomorph = false
      _parasiteoverlay = net_bool (0x2eb7fde0)
      _underleafcanopy = net_bool (0x33586280)
      IsChannelCasting = function - scripts/prefabs/player_common.lua:286
      SetCameraZoomed = function - scripts/prefabs/player_common.lua:1557
      TargetForceAttackOnly = function - scripts/prefabs/player_common.lua:51
      CanSeeTileOnMiniMap = function - scripts/prefabs/player_common_extensions.lua:895
      DisableLoadingProtection = functi
[10:21:34]: [string "scripts/components/inventory.lua"]:1205: attempt to index field 'equippable' (a nil value)
LUA ERROR stack traceback:
    scripts/components/inventory.lua:1205 in () ? (Lua) <1120-1242>
    =(tail call):-1 in ()  (tail) <-1--1>
    scripts/bufferedaction.lua:26 in (method) Do (Lua) <22-36>
    scripts/entityscript.lua:1556 in (method) PushBufferedAction (Lua) <1525-1568>
    scripts/components/locomotor.lua:892 in (method) PushAction (Lua) <827-925>
    scripts/components/inventory.lua:2046 in (method) UseItemFromInvTile (Lua) <2027-2053>
    scripts/networkclientrpc.lua:651 in () ? (Lua) <639-654>
    =[C]:-1 in (method) CallRPC (C) <-1--1>
    scripts/networkclientrpc.lua:1524 in (global) HandleRPCQueue (Lua) <1505-1577>
    scripts/update.lua:42 in () ? (Lua) <33-138>

 


Steps to Reproduce

attempt to index field 'equippable' (a nil value)

 

  1. Player tries to equip a 'flotationcushion' (Personal Floater) item
  2. The game tries to access the equippable component of the item, but that component was nil (didn't exist)
  3. Server crashes.

This might not be related, but it's worth to mention: I was able to replicate this bug (only once) by picking Woodie with Weregoose mastery. When triggering a full moon with commands, it crashed my server when it started 'loading' from dusk to night. The Personal Floater was in my inventory at that specific moment.

  • Thanks 1
  • Shopcat 1
  • Big Ups 2
  • Spooky 1



User Feedback


A developer has marked this issue as fixed. This means that the issue has been addressed in the current development build and will likely be in the next update.


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...