From aca8bc79ae24356c6da0cd6c2b7c51a9148a7d98 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Fri, 7 Aug 2026 11:10:05 +0000 Subject: [PATCH] Assert the vlayer gui lookups Dropdowns are siblings of the button that reads them, and the loop bounds come from the interface count. Co-Authored-By: Claude Opus 5 (1M context) --- exp_legacy/module/modules/gui/vlayer.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index d2daf0ed..c83c8729 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -432,7 +432,8 @@ local vlayer_gui_control_remove = Gui.define("vlayer_gui_control_remove") local i = vlayer.get_interfaces() if i and i[vlayer_control_type_list[target]] then - local interface_type, interface_surface, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) + local entity = assert(i[vlayer_control_type_list[target]][n]) + local interface_type, interface_surface, interface_position = vlayer.remove_interface(entity.surface, entity.position) if interface_type then game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position, interface_surface.name), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } }