[gd_scene load_steps=2 format=3 uid="uid://biio8efqysivs"] [ext_resource type="Script" uid="uid://ic8fg0o0p0i4" path="res://scripts/ui/admin_panel.gd" id="1"] [ext_resource type="PackedScene" uid="uid://dp12345678" path="res://scenes/ui/date_picker.tscn" id="2_dp"] [node name="AdminPanel" type="Panel"] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1") [node name="BG" type="ColorRect" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 color = Color(0.1, 0.1, 0.12, 1) [node name="Margin" type="MarginContainer" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 theme_override_constants/margin_left = 24 theme_override_constants/margin_top = 16 theme_override_constants/margin_right = 24 theme_override_constants/margin_bottom = 16 [node name="VBox" type="VBoxContainer" parent="Margin"] layout_mode = 2 theme_override_constants/separation = 8 [node name="Header" type="HBoxContainer" parent="Margin/VBox"] layout_mode = 2 theme_override_constants/separation = 12 [node name="Title" type="Label" parent="Margin/VBox/Header"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 text = "SERVER ADMIN PANEL" [node name="CountLabel" type="Label" parent="Margin/VBox/Header"] unique_name_in_owner = true layout_mode = 2 text = "0 items" [node name="RefreshBtn" type="Button" parent="Margin/VBox/Header"] unique_name_in_owner = true custom_minimum_size = Vector2(90, 32) layout_mode = 2 text = "Refresh" [node name="CloseBtn" type="Button" parent="Margin/VBox/Header"] unique_name_in_owner = true custom_minimum_size = Vector2(32, 32) layout_mode = 2 text = "X" [node name="Sep" type="HSeparator" parent="Margin/VBox"] layout_mode = 2 [node name="Tabs" type="TabContainer" parent="Margin/VBox"] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 current_tab = 0 [node name="Users" type="VBoxContainer" parent="Margin/VBox/Tabs"] layout_mode = 2 theme_override_constants/separation = 8 metadata/_tab_index = 0 [node name="UserTree" type="Tree" parent="Margin/VBox/Tabs/Users"] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 columns = 6 column_titles_visible = true allow_reselect = true hide_root = true select_mode = 1 [node name="UserActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Users"] layout_mode = 2 theme_override_constants/separation = 8 [node name="SelectAllBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 36) layout_mode = 2 text = "Select All" [node name="DeselectBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 36) layout_mode = 2 text = "Deselect All" [node name="Spacer" type="Control" parent="Margin/VBox/Tabs/Users/UserActionBar"] layout_mode = 2 size_flags_horizontal = 3 [node name="SelectedLabel" type="Label" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true layout_mode = 2 text = "0 selected" [node name="HistoryBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 36) layout_mode = 2 text = "HISTORY" [node name="BanBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 36) layout_mode = 2 text = "BAN" [node name="UnbanBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 36) layout_mode = 2 text = "UNBAN" [node name="DeleteBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 36) layout_mode = 2 text = "DELETE" [node name="Leaderboards" type="VBoxContainer" parent="Margin/VBox/Tabs"] visible = false layout_mode = 2 theme_override_constants/separation = 8 metadata/_tab_index = 1 [node name="LeaderboardTree" type="Tree" parent="Margin/VBox/Tabs/Leaderboards"] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 columns = 6 column_titles_visible = true allow_reselect = true hide_root = true [node name="LBActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Leaderboards"] layout_mode = 2 theme_override_constants/separation = 8 alignment = 2 [node name="SyncLeaderboardBtn" type="Button" parent="Margin/VBox/Tabs/Leaderboards/LBActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(160, 36) layout_mode = 2 text = "Sync with Storage" [node name="ResetLBBtn" type="Button" parent="Margin/VBox/Tabs/Leaderboards/LBActionBar"] unique_name_in_owner = true visible = false custom_minimum_size = Vector2(120, 36) layout_mode = 2 text = "Reset All Scores" [node name="Daily Rewards" type="VBoxContainer" parent="Margin/VBox/Tabs"] visible = false layout_mode = 2 theme_override_constants/separation = 8 metadata/_tab_index = 2 [node name="MonthHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards"] layout_mode = 2 theme_override_constants/separation = 12 [node name="Label" type="Label" parent="Margin/VBox/Tabs/Daily Rewards/MonthHBox"] layout_mode = 2 text = "Target Month:" [node name="MonthOptionBtn" type="OptionButton" parent="Margin/VBox/Tabs/Daily Rewards/MonthHBox"] unique_name_in_owner = true custom_minimum_size = Vector2(150, 0) layout_mode = 2 [node name="DaysScroll" type="ScrollContainer" parent="Margin/VBox/Tabs/Daily Rewards"] layout_mode = 2 size_flags_vertical = 3 [node name="DaysGrid" type="GridContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/h_separation = 10 theme_override_constants/v_separation = 10 columns = 6 [node name="DayConfigTemplate" type="PanelContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid"] unique_name_in_owner = true visible = false layout_mode = 2 size_flags_horizontal = 3 [node name="ColorRect" type="ColorRect" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"] layout_mode = 2 color = Color(0.12, 0.12, 0.12, 1) [node name="Border" type="ReferenceRect" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"] layout_mode = 2 border_color = Color(0.25, 0.25, 0.25, 1) border_width = 1.0 editor_only = false [node name="Margin" type="MarginContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"] layout_mode = 2 theme_override_constants/margin_left = 4 theme_override_constants/margin_top = 4 theme_override_constants/margin_right = 4 theme_override_constants/margin_bottom = 4 [node name="VBox" type="VBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin"] layout_mode = 2 [node name="DayLabel" type="Label" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"] layout_mode = 2 text = "Day 1" horizontal_alignment = 1 [node name="TypeOptionBtn" type="OptionButton" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"] layout_mode = 2 alignment = 1 item_count = 5 popup/item_0/text = "star" popup/item_0/id = 0 popup/item_1/text = "gold" popup/item_1/id = 1 popup/item_2/text = "frag_common" popup/item_2/id = 2 popup/item_3/text = "frag_uncommon" popup/item_3/id = 3 popup/item_4/text = "frag_rare" popup/item_4/id = 4 [node name="AmountSpinBox" type="SpinBox" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"] layout_mode = 2 max_value = 10000.0 alignment = 1 [node name="DRActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards"] layout_mode = 2 theme_override_constants/separation = 8 alignment = 2 [node name="LoadDRConfigBtn" type="Button" parent="Margin/VBox/Tabs/Daily Rewards/DRActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(160, 36) layout_mode = 2 text = "Reload Config" [node name="SaveDRConfigBtn" type="Button" parent="Margin/VBox/Tabs/Daily Rewards/DRActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(160, 36) layout_mode = 2 text = "Save Config" [node name="Announcements" type="VBoxContainer" parent="Margin/VBox/Tabs"] visible = false layout_mode = 2 theme_override_constants/separation = 12 metadata/_tab_index = 3 [node name="TargetHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"] layout_mode = 2 theme_override_constants/separation = 8 [node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/TargetHBox"] layout_mode = 2 text = "Target:" [node name="TargetUserEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/TargetHBox"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 placeholder_text = "Username or User ID (empty = ALL)" [node name="FindUserBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/TargetHBox"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 0) layout_mode = 2 text = "Find" [node name="ResolvedIdLabel" type="Label" parent="Margin/VBox/Tabs/Announcements/TargetHBox"] unique_name_in_owner = true layout_mode = 2 theme_override_colors/font_color = Color(0.4, 0.9, 0.4, 1) text = "" [node name="TitleEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements"] unique_name_in_owner = true layout_mode = 2 placeholder_text = "Message Title" [node name="ContentEdit" type="TextEdit" parent="Margin/VBox/Tabs/Announcements"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 150) layout_mode = 2 placeholder_text = "Message Content" [node name="ScheduleHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"] layout_mode = 2 theme_override_constants/separation = 12 [node name="LabelStart" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"] layout_mode = 2 text = "Start:" [node name="StartDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 [node name="LabelEnd" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"] layout_mode = 2 text = "End:" [node name="EndDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 [node name="RewardsHeader" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"] layout_mode = 2 [node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"] layout_mode = 2 size_flags_horizontal = 3 text = "Attached Rewards" [node name="AddRewardBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 30) layout_mode = 2 text = "+ ADD" [node name="RewardsList" type="VBoxContainer" parent="Margin/VBox/Tabs/Announcements"] unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 8 [node name="RewardRowTemplate" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"] unique_name_in_owner = true visible = false layout_mode = 2 theme_override_constants/separation = 8 [node name="TypeOption" type="OptionButton" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"] custom_minimum_size = Vector2(100, 0) layout_mode = 2 item_count = 4 selected = 0 popup/item_0/text = "star" popup/item_0/id = 0 popup/item_1/text = "gold" popup/item_1/id = 1 popup/item_2/text = "item" popup/item_2/id = 2 popup/item_3/text = "skin" popup/item_3/id = 3 [node name="IdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"] layout_mode = 2 size_flags_horizontal = 3 placeholder_text = "Item/Skin ID (Leave empty for Star/Gold)" [node name="AmountSpin" type="SpinBox" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"] layout_mode = 2 max_value = 100000.0 value = 1.0 [node name="RemoveBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"] layout_mode = 2 text = "X" theme_override_colors/font_color = Color(1, 0.3, 0.3, 1) [node name="SendMailBtn" type="Button" parent="Margin/VBox/Tabs/Announcements"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 40) layout_mode = 2 text = "SEND ANNOUNCEMENT" [node name="Mail Manager" type="VBoxContainer" parent="Margin/VBox/Tabs"] visible = false layout_mode = 2 theme_override_constants/separation = 8 metadata/_tab_index = 4 [node name="MailTree" type="Tree" parent="Margin/VBox/Tabs/Mail Manager"] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 columns = 6 column_titles_visible = true allow_reselect = true hide_root = true select_mode = 1 [node name="MailActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Mail Manager"] layout_mode = 2 theme_override_constants/separation = 8 [node name="RefreshMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 36) layout_mode = 2 text = "Refresh" [node name="Spacer" type="Control" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"] layout_mode = 2 size_flags_horizontal = 3 [node name="EditMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 36) layout_mode = 2 text = "Edit" [node name="EndMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(120, 36) layout_mode = 2 text = "End Now" [node name="DeleteMailServerBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(120, 36) layout_mode = 2 text = "Delete" [node name="StatusLabel" type="Label" parent="Margin/VBox"] unique_name_in_owner = true layout_mode = 2 horizontal_alignment = 1 [node name="Shop" type="VBoxContainer" parent="Margin/VBox/Tabs"] visible = false layout_mode = 2 theme_override_constants/separation = 16 metadata/_tab_index = 5 [node name="HeaderLbl" type="Label" parent="Margin/VBox/Tabs/Shop"] layout_mode = 2 text = "Featured Banner Slots (Event / Special)" theme_override_font_sizes/font_size = 15 [node name="InfoLbl" type="Label" parent="Margin/VBox/Tabs/Shop"] layout_mode = 2 autowrap_mode = 3 text = "Each slot shows a cosmetic item as a special event banner in the Shop sidebar. Leave Item ID blank to hide the slot." [node name="SlotsVBox" type="VBoxContainer" parent="Margin/VBox/Tabs/Shop"] unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 12 [node name="Slot1" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"] layout_mode = 2 theme_override_constants/separation = 10 [node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"] custom_minimum_size = Vector2(60, 0) layout_mode = 2 text = "Slot 1:" vertical_alignment = 1 [node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"] layout_mode = 2 size_flags_horizontal = 3 placeholder_text = "Item ID (e.g. oldpop-blue-hat)" [node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"] custom_minimum_size = Vector2(160, 0) layout_mode = 2 placeholder_text = "Event label (e.g. LIMITED!)" [node name="Slot2" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"] layout_mode = 2 theme_override_constants/separation = 10 [node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"] custom_minimum_size = Vector2(60, 0) layout_mode = 2 text = "Slot 2:" vertical_alignment = 1 [node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"] layout_mode = 2 size_flags_horizontal = 3 placeholder_text = "Item ID (e.g. oldpop-red-hat)" [node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"] custom_minimum_size = Vector2(160, 0) layout_mode = 2 placeholder_text = "Event label" [node name="Slot3" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"] layout_mode = 2 theme_override_constants/separation = 10 [node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"] custom_minimum_size = Vector2(60, 0) layout_mode = 2 text = "Slot 3:" vertical_alignment = 1 [node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"] layout_mode = 2 size_flags_horizontal = 3 placeholder_text = "Item ID (e.g. oldpop-yellow-hat)" [node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"] custom_minimum_size = Vector2(160, 0) layout_mode = 2 placeholder_text = "Event label" [node name="ShopActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop"] layout_mode = 2 theme_override_constants/separation = 8 alignment = 2 [node name="LoadBannersBtn" type="Button" parent="Margin/VBox/Tabs/Shop/ShopActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(140, 36) layout_mode = 2 text = "Load Current" [node name="SaveBannersBtn" type="Button" parent="Margin/VBox/Tabs/Shop/ShopActionBar"] unique_name_in_owner = true custom_minimum_size = Vector2(160, 36) layout_mode = 2 [node name="HistoryDialog" type="AcceptDialog" parent="."] unique_name_in_owner = true title = "User History" size = Vector2i(700, 500) [node name="ScrollContainer" type="ScrollContainer" parent="HistoryDialog"] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 8.0 offset_top = 8.0 offset_right = -8.0 offset_bottom = -49.0 grow_horizontal = 2 grow_vertical = 2 [node name="HistoryText" type="RichTextLabel" parent="HistoryDialog/ScrollContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 focus_mode = 2 selection_enabled = true