s1m13 Posted May 31, 2019 Share Posted May 31, 2019 (edited) Hey devs, I have a new mod: https://steamcommunity.com/sharedfiles/filedetails/?id=1755351523 It's running fine as long as there are no Caves - and I don't know why. My mod includes a custom container which is defined this way: local compostpileparams = { widget = { slotpos = { Vector3(0,32+4,0), Vector3(-(32+4), -(32+4),0), Vector3((32+4), -(32+4),0), Vector3(-(32+4), -(64+32+8+4),0), Vector3((32+4), -(64+32+8+4),0) }, animbank = "ui_compostpile1c6x3", animbuild = "ui_compostpile1c6x3", pos = Vector3(200, 0, 0), side_align_tip = 100, buttoninfo = { text = "Fill", position = Vector3(0, -170, 0), } }, acceptsstacks = false, type = "cooker", } function compostpileparams.itemtestfn(container, item, slot) return composting.IsCompostIngredient(item.prefab) and not container.inst:HasTag("burnt") end function compostpileparams.widget.buttoninfo.fn(inst) if inst.components.container ~= nil then BufferedAction(inst.components.container.opener, inst, ACTIONS.COMPOST):Do() elseif inst.replica.container ~= nil and not inst.replica.container:IsBusy() then SendRPCToServer(RPC.DoWidgetButtonAction, ACTIONS.COMPOST.code, inst, ACTIONS.COMPOST.mod_name) end end -- "can 'Fill' be clicked?" function compostpileparams.widget.buttoninfo.validfn(inst) local num = 0 for k,v in pairs (inst.components.container.slots) do num = num + 1 end return inst.replica.container ~= nil and num > 2 end inst:AddComponent("container") inst.components.container:WidgetSetup("compostpile", compostpileparams) inst.components.container.onopenfn = onopen inst.components.container.onclosefn = onclose I also tried using inst.components.container:WidgetSetup("cookpot") which doesn't change a thing... When clicking the container, I receive the following stacktrace: [00:11:35]: [string "scripts/widgets/containerwidget.lua"]:29: attempt to index local 'widget' (a nil value) LUA ERROR stack traceback: scripts/widgets/containerwidget.lua:29 in (method) Open (Lua) <24-143> self = callbacks = table: 6C6BE580 slotsperrow = 3 inst = 101081 - (valid:true) focus = false children = table: 6C6BE3F0 focus_flow_args = table: 6C6BE4E0 focus_target = false isopen = false owner = 100182 - wickerbottom (valid:true) open = false can_fade_alpha = true inv = table: 6C6BE670 parent = name = Container bgimage = Image - : focus_flow = table: 6C6BE3A0 enabled = true bganim = UIAnim shown = true container = 100113 - compostpile (valid:true) doer = 100182 - wickerbottom (valid:true) widget = nil scripts/screens/playerhud.lua:262 in (upvalue) OpenContainerWidget (Lua) <259-264> self = fireover = FireOver sandover = SandOver beefbloodover = BeefBloodOver parent = screenroot overlayroot = overlays sailing_alpha = 0 handlers = table: 80C97630 mindcontrolover = UIAnim enabled = true under_root = under_root eventannouncer = EventAnnouncer name = HUD flareover = FlareOver focus_flow = table: 80C97338 bloodover = BloodOver storm_root = storm_root over_root = over_root callbacks = table: 80C96DC0 popupstats_root = popupstats_root sanddustover = UIAnim inst = 100184 - (valid:true) focus = true children = table: 80C97018 heatover = HeatOver focus_flow_args = table: 80C97360 focus_target = false vig = UIAnim controls = Controls owner = 100182 - wickerbottom (valid:true) clouds = UIAnim can_fade_alpha = true iceover = IceOver fumeover = FumeOver is_screen = true storm_overlays = storm_overlays shown = true gogglesover = GogglesOver sailing_vig = UIAnim root = root container = 100113 - compostpile (valid:true) side = false containerwidget = Container scripts/screens/playerhud.lua:272 in (method) OpenContainer (Lua) <266-274> self = fireover = FireOver sandover = SandOver beefbloodover = BeefBloodOver parent = screenroot overlayroot = overlays sailing_alpha = 0 handlers = table: 80C97630 mindcontrolover = UIAnim enabled = true under_root = under_root eventannouncer = EventAnnouncer name = HUD flareover = FlareOver focus_flow = table: 80C97338 bloodover = BloodOver storm_root = storm_root over_root = over_root callbacks = table: 80C96DC0 popupstats_root = popupstats_root sanddustover = UIAnim inst = 100184 - (valid:true) focus = true children = table: 80C97018 heatover = HeatOver focus_flow_args = table: 80C97360 focus_target = false vig = UIAnim controls = Controls owner = 100182 - wickerbottom (valid:true) clouds = UIAnim can_fade_alpha = true iceover = IceOver fumeover = FumeOver is_screen = true storm_overlays = storm_overlays shown = true gogglesover = GogglesOver sailing_vig = UIAnim root = root container = 100113 - compostpile (valid:true) side = false scripts/components/container_replica.lua:290 in (method) Open (Lua) <276-297> self = ondetachclassified = function - scripts/components/container_replica.lua:106 acceptsstacks = true _numslots = 0 _isopen = false issidewidget = false _cannotbeopened = net_bool (3D9C6D08) classified = 101080 - container_classified (valid:true) inst = 100113 - compostpile (valid:true) doer = 100182 - wickerbottom (valid:true) scripts/components/container_replica.lua:95 in (field) fn (Lua) <87-101> inst = 100113 - compostpile (valid:true) self = ondetachclassified = function - scripts/components/container_replica.lu [00:11:35]: [string "scripts/widgets/containerwidget.lua"]:29: attempt to index local 'widget' (a nil value) LUA ERROR stack traceback: scripts/widgets/containerwidget.lua:29 in (method) Open (Lua) <24-143> scripts/screens/playerhud.lua:262 in (upvalue) OpenContainerWidget (Lua) <259-264> scripts/screens/playerhud.lua:272 in (method) OpenContainer (Lua) <266-274> scripts/components/container_replica.lua:290 in (method) Open (Lua) <276-297> scripts/components/container_replica.lua:95 in (field) fn (Lua) <87-101> scripts/scheduler.lua:177 in (method) OnTick (Lua) <155-207> scripts/scheduler.lua:371 in (global) RunScheduler (Lua) <369-377> scripts/update.lua:178 in () ? (Lua) <157-236> I tried to understand the container:WidgetSetup routines (same with container_replica) but I cannot see how this may be a problem with Caves... Maybe it's because of the multi-server setup... Can someone help me? Thanks in advance compsting-together.zip Edited June 1, 2019 by s1m13 add mod zip Link to comment https://forums.kleientertainment.com/forums/topic/106960-containerwidgetlua29-attempt-to-index-local-widget-a-nil-value/ Share on other sites More sharing options...
s1m13 Posted June 11, 2019 Author Share Posted June 11, 2019 Still experiencing this problem. Any ideas anyone? #bump Link to comment https://forums.kleientertainment.com/forums/topic/106960-containerwidgetlua29-attempt-to-index-local-widget-a-nil-value/#findComment-1208588 Share on other sites More sharing options...
Ultroman Posted June 25, 2019 Share Posted June 25, 2019 Do you have all_players_require_mod set to true in your modinfo.lua? Link to comment https://forums.kleientertainment.com/forums/topic/106960-containerwidgetlua29-attempt-to-index-local-widget-a-nil-value/#findComment-1213761 Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now