▸case-01 Review this GDScript snippet for a inventory screen layout in Godot 4:
func _ready():
var container = $VBoxContainer
var item_slot = $VBoxContainer/ItemSlot
item_slot.scale = Vector2(1.5, 1.5)
Provide your code review analysis for UI issues. | pass→pass | 10,247 | 6,309 | -38% | 1 | 1 | 0% | 1,786 | 1,261 | -29% | 0 | 0 | — |
▸case-02 Here is GDScript for a HUD element overlay:
func setup_hud():
$HealthBar.z_index = 10
$ManaBar.z_index = 5
Give me feedback on this UI implementation. | pass→pass | 11,116 | 6,562 | -41% | 1 | 1 | 0% | 1,971 | 1,187 | -40% | 0 | 0 | — |
▸case-03 Analyze this main menu script for controller/keyboard menu support:
func _ready():
$StartButton.focus_mode = Control.FOCUS_ALL
$OptionsButton.focus_mode = Control.FOCUS_ALL
Is there anything missing or wrong with focus setup? | pass→pass | 8,438 | 6,381 | -24% | 1 | 1 | 0% | 1,639 | 1,344 | -18% | 0 | 0 | — |
▸case-04 We have an interactive dialogue overlay using a Panel node spanning the full screen. Players report they cannot click game elements behind transparent parts of the UI panel. GDScript:
func _ready():
$DialoguePanel.mouse_filter = Control.MOUSE_FILTER_STOP
What is the defect and fix? | pass→pass | 7,316 | 6,238 | -15% | 1 | 1 | 0% | 1,354 | 1,343 | -1% | 0 | 0 | — |
▸case-05 Review this pause menu CanvasLayer setup:
func show_pause():
var layer = CanvasLayer.new()
layer.add_child(preload('res://PauseMenu.tscn').instantiate())
add_child(layer)
Provide feedback on this overlay instantiation pattern. | pass→pass | 12,743 | 10,289 | -19% | 1 | 1 | 0% | 2,125 | 1,983 | -7% | 0 | 0 | — |
▸case-06 Review the following button styling implementation:
func _ready():
$SubmitButton.add_theme_color_override('font_color', Color(0.9, 0.1, 0.1))
$SubmitButton.add_theme_font_size_override('font_size', 24)
Assess this implementation against Godot UI best practices. | pass→pass | 12,945 | 8,314 | -36% | 1 | 1 | 0% | 2,051 | 1,587 | -23% | 0 | 0 | — |
▸case-07 Review this shop layout grid in Godot:
func setup_grid():
var grid = $GridContainer
grid.columns = 3
for item in items:
var card = ItemCardScene.instantiate()
card.position = Vector2(100 * item.id, 0)
grid.add_child(card)
What logic flaw exists here? | pass→pass | 7,504 | 6,475 | -14% | 1 | 1 | 0% | 1,282 | 1,259 | -2% | 0 | 0 | — |
▸case-08 Our inventory list inside a ScrollContainer fails to scroll when many items are added. GDScript:
func populate():
for i in 50:
var lbl = Label.new()
lbl.text = 'Item ' + str(i)
$ScrollContainer/VBoxContainer.add_child(lbl)
Why does the ScrollContainer fail to activate scrolling? | pass→pass | 11,135 | 10,122 | -9% | 1 | 1 | 0% | 1,891 | 1,699 | -10% | 0 | 0 | — |
▸case-09 Review this Godot UI script:
func _ready():
$StartButton.grab_focus()
func _on_start_button_pressed():
get_tree().change_scene_to_file('res://Game.tscn')
Evaluate this script for UI issues. | fail→fail | 13,126 | 7,437 | -43% | 1 | 1 | 0% | 2,147 | 1,506 | -30% | 0 | 0 | — |
▸case-10 Review this settings panel script:
func _on_tab_changed(tab_idx):
$TabContainer.get_child(0).visible = (tab_idx == 0)
$TabContainer.get_child(1).visible = (tab_idx == 1)
What is wrong with manually managing child visibility in a TabContainer? | pass→pass | 10,942 | 6,628 | -39% | 1 | 1 | 0% | 1,718 | 1,225 | -29% | 0 | 0 | — |
▸case-11 Review this split screen editor layout script:
func _ready():
$HSplitContainer/LeftPanel.custom_minimum_size = Vector2(200, 0)
$HSplitContainer/RightPanel.custom_minimum_size = Vector2(400, 0)
$HSplitContainer.split_offset = 50
Evaluate this layout code. | fail→fail | 12,585 | 9,386 | -25% | 1 | 1 | 0% | 2,066 | 1,783 | -14% | 0 | 0 | — |
▸case-12 Review this GDScript adjusting UI spacing:
func adjust_padding():
$MarginContainer.add_theme_constant_override('margin_left', -20)
$MarginContainer.add_theme_constant_override('margin_top', -10)
What problem does negative margin override introduce? | pass→pass | 9,988 | 8,354 | -16% | 1 | 1 | 0% | 1,424 | 1,444 | +1% | 0 | 0 | — |
▸case-13 Review this pop-up modal setup:
func _ready():
$CenterContainer/Panel.size_flags_horizontal = Control.SIZE_EXPAND_FILL
$CenterContainer/Panel.size_flags_vertical = Control.SIZE_EXPAND_FILL
Why is the modal expanding to fill the entire CenterContainer instead of remaining centered? | pass→pass | 10,690 | 7,082 | -34% | 1 | 1 | 0% | 1,797 | 1,375 | -23% | 0 | 0 | — |
▸case-14 Review this UI snippet and format your response with gotcha identification, offending line, and fix:
func _ready():
$VBoxContainer/Button.scale = Vector2(2, 2)
$HeaderLabel.z_index = 3
Perform the review step by step. | pass→pass | 9,460 | 8,768 | -7% | 1 | 1 | 0% | 1,595 | 1,552 | -3% | 0 | 0 | — |
▸case-15 Review this button focus script and specify exact method signatures for Godot 4 Control focus neighbor configuration:
func setup_nav():
$Btn1.focus_neighbor_bottom = $Btn2.get_path()
Check for UI review issues and detail the exact Control API specification for focus neighbors. | pass→pass | 13,086 | 9,740 | -26% | 1 | 1 | 0% | 2,329 | 1,834 | -21% | 0 | 0 | — |
▸case-16 Review this avatar icon rendering code:
func set_avatar(tex: Texture2D):
$AvatarRect.texture = tex
$AvatarRect.custom_minimum_size = Vector2(64, 64)
$AvatarRect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE
$AvatarRect.stretch_mode = TextureRect.STRETCH_SCALE
Assess potential visual distortion risks. | pass→fail | 11,709 | 10,711 | -9% | 1 | 1 | 0% | 2,137 | 1,922 | -10% | 0 | 0 | — |
▸case-17 Review this minimap SubViewportContainer setup:
func setup_minimap():
$SubViewportContainer.stretch = true
$SubViewportContainer/SubViewport.gui_disable_input = true
We want players to click mini-map icons. Why is input failing? | pass→pass | 7,999 | 7,758 | -3% | 1 | 1 | 0% | 1,280 | 1,495 | +17% | 0 | 0 | — |
▸case-18 Review this card UI frame code:
func set_card_highlight(active: bool):
if active:
$PanelContainer.add_theme_stylebox_override('panel', load('res://highlight.tres'))
else:
$PanelContainer.remove_theme_stylebox_override('panel')
Evaluate this UI modification approach. | pass→pass | 11,827 | 13,075 | +11% | 1 | 1 | 0% | 1,896 | 2,181 | +15% | 0 | 0 | — |
▸case-19 Review this context menu GDScript in Godot 4:
func show_context_menu(at_pos: Vector2):
var menu = $PopupMenu
menu.rect_position = at_pos
menu.popup()
Identify deprecated API usages and functional bugs. | pass→pass | 12,264 | 7,930 | -35% | 1 | 1 | 0% | 1,922 | 1,511 | -21% | 0 | 0 | — |
▸case-20 Optimize this CharacterBody3D movement script for smooth slopes and stair stepping in Godot 4:
func _physics_process(delta):
var input_dir = Input.get_vector('ui_left', 'ui_right', 'ui_up', 'ui_down')
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
move_and_slide()
Provide improved GDScript code for 3D physics movement. | pass→pass | 18,753 | 19,559 | +4% | 1 | 1 | 0% | 3,308 | 3,788 | +15% | 0 | 0 | — |
▸case-21 Write a GDScript custom spatial shader for Godot 4 that creates a water distortion effect on a 3D MeshInstance3D plane. | pass→pass | 17,807 | 20,806 | +17% | 1 | 1 | 0% | 3,279 | 4,225 | +29% | 0 | 0 | — |
▸case-22 Create a C++ header class extending AudioStreamEffect for a GDExtension module targeting Godot 4. | pass→pass | 12,596 | 10,350 | -18% | 1 | 1 | 0% | 2,267 | 2,101 | -7% | 0 | 0 | — |