Проблема в том, что настройки кривые, там просто сами настройки вылезают за менюшку настроек и текст залезает на кнопки и короче пипец

-- CoinDisplayManager с исправленными настройками и иконками

-- Получаем сервисы
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local SoundService = game:GetService("SoundService")
local ContentProvider = game:GetService("ContentProvider")
local RunService = game:GetService("RunService")

-- Получаем локального игрока и его GUI
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

-- Константы для интерфейса
local HUD_CONTAINER_TOP_MARGIN = 20
local HUD_CONTAINER_PADDING_BETWEEN_ITEMS = 15
local FRAME_HEIGHT = 50
local FRAME_BACKGROUND_COLOR = Color3.fromRGB(40, 40, 50)
local FRAME_CORNER_RADIUS = 25
local FRAME_HORIZONTAL_PADDING = 20
local FRAME_VERTICAL_PADDING = 10
local PADDING_BETWEEN_ELEMENTS = 15
local ICON_SIZE = FRAME_HEIGHT - (2 * FRAME_VERTICAL_PADDING)
local ICON_HOVER_SCALE = 1.2
local TEXT_FONT = Enum.Font.SourceSansBold
local TEXT_COLOR = Color3.fromRGB(255, 255, 255)
local MIN_TEXT_WIDTH = 50

-- Константы для Gear Icon
local GEAR_ICON_TOP_MARGIN = HUD_CONTAINER_TOP_MARGIN
local GEAR_ICON_RIGHT_MARGIN = 20
local GEAR_ICON_SIZE_ABSOLUTE = 45
local GEAR_ICON_CORNER_RADIUS = 12
local GEAR_ICON_HOVER_SCALE = 1.15
local GEAR_ICON_BACKGROUND_COLOR = Color3.fromRGB(40, 40, 50)
local GEAR_ICON_IMAGE_COLOR = Color3.fromRGB(255, 255, 255)
local GEAR_ICON_STROKE_COLOR = Color3.fromRGB(60, 60, 70)
local GEAR_ICON_STROKE_THICKNESS = 2

-- Функция для получения текстуры из модели
local function getTextureFromModel(modelName)
	local iconsPack = Workspace:WaitForChild("ICON PACK GOOD")
	local model = iconsPack:WaitForChild(modelName)

	-- Ищем Decal или Texture в модели
	for _, child in pairs(model:GetDescendants()) do
		if child:IsA("Decal") or child:IsA("Texture") then
			return child.Texture
		elseif child:IsA("SurfaceGui") then
			for _, guiChild in pairs(child:GetDescendants()) do
				if guiChild:IsA("ImageLabel") or guiChild:IsA("ImageButton") then
					return guiChild.Image
				end
			end
		end
	end

	-- Если не нашли текстуру, возвращаем стандартную
	return "rbxasset://textures/ui/GuiImagePlaceholder.png"
end

-- Получаем иконки из моделей
local COIN_ICON = getTextureFromModel("Coin")
local ZVEZDA_ICON = getTextureFromModel("Zvezda") 
local GEAR_ICON = getTextureFromModel("Gear")

-- Настройки (сохраняемые)
local Settings = {
	MusicEnabled = true,
	SoundEffectsEnabled = true,
	ViewOwnPets = true,
	ViewOtherPets = true
}

-- Создаём ScreenGui
local coinDisplayGui = Instance.new("ScreenGui")
coinDisplayGui.Name = "CoinDisplayGui"
coinDisplayGui.ResetOnSpawn = false
coinDisplayGui.Parent = PlayerGui

-- Создаём основной контейнер HUD
local mainHUDContainer = Instance.new("Frame")
mainHUDContainer.Name = "MainHUDContainer"
mainHUDContainer.AnchorPoint = Vector2.new(0.5, 0)
mainHUDContainer.Position = UDim2.new(0.5, 0, 0, HUD_CONTAINER_TOP_MARGIN)
mainHUDContainer.Size = UDim2.new(0, 0, 0, FRAME_HEIGHT)
mainHUDContainer.AutomaticSize = Enum.AutomaticSize.X
mainHUDContainer.BackgroundTransparency = 1
mainHUDContainer.Parent = coinDisplayGui

local hudContainerListLayout = Instance.new("UIListLayout")
hudContainerListLayout.FillDirection = Enum.FillDirection.Horizontal
hudContainerListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
hudContainerListLayout.Padding = UDim.new(0, HUD_CONTAINER_PADDING_BETWEEN_ITEMS)
hudContainerListLayout.Parent = mainHUDContainer

-- Функция создания фрейма для валюты
local function createCurrencyFrame(name, iconImage, iconColor, layoutOrder)
	local frame = Instance.new("Frame")
	frame.Name = name .. "DisplayFrame"
	frame.LayoutOrder = layoutOrder
	frame.Size = UDim2.new(0, 0, 0, FRAME_HEIGHT)
	frame.AutomaticSize = Enum.AutomaticSize.X
	frame.BackgroundColor3 = FRAME_BACKGROUND_COLOR
	frame.Parent = mainHUDContainer

	local frameCorner = Instance.new("UICorner")
	frameCorner.CornerRadius = UDim.new(0, FRAME_CORNER_RADIUS)
	frameCorner.Parent = frame

	-- Добавляем обводку
	local frameStroke = Instance.new("UIStroke")
	frameStroke.Color = Color3.fromRGB(60, 60, 70)
	frameStroke.Thickness = 2
	frameStroke.Parent = frame

	local frameListLayout = Instance.new("UIListLayout")
	frameListLayout.FillDirection = Enum.FillDirection.Horizontal
	frameListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
	frameListLayout.Padding = UDim.new(0, PADDING_BETWEEN_ELEMENTS)
	frameListLayout.Parent = frame

	local framePadding = Instance.new("UIPadding")
	framePadding.PaddingLeft = UDim.new(0, FRAME_HORIZONTAL_PADDING)
	framePadding.PaddingRight = UDim.new(0, FRAME_HORIZONTAL_PADDING)
	framePadding.PaddingTop = UDim.new(0, FRAME_VERTICAL_PADDING)
	framePadding.PaddingBottom = UDim.new(0, FRAME_VERTICAL_PADDING)
	framePadding.Parent = frame

	-- Создаём иконку
	local icon = Instance.new("ImageLabel")
	icon.Name = name .. "Icon"
	icon.Size = UDim2.new(0, ICON_SIZE, 0, ICON_SIZE)
	icon.BackgroundTransparency = 1
	icon.Image = iconImage
	icon.ImageColor3 = iconColor
	icon.ScaleType = Enum.ScaleType.Fit
	icon.Parent = frame

	-- Эффект наведения для иконки
	local originalIconSize = icon.Size
	local hoverIconSize = UDim2.new(0, ICON_SIZE * ICON_HOVER_SCALE, 0, ICON_SIZE * ICON_HOVER_SCALE)
	local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)

	icon.MouseEnter:Connect(function()
		TweenService:Create(icon, tweenInfo, {Size = hoverIconSize}):Play()
	end)

	icon.MouseLeave:Connect(function()
		TweenService:Create(icon, tweenInfo, {Size = originalIconSize}):Play()
	end)

	-- Создаём текст
	local countLabel = Instance.new("TextLabel")
	countLabel.Name = name .. "CountLabel"
	countLabel.Size = UDim2.new(0, MIN_TEXT_WIDTH, 0, ICON_SIZE)
	countLabel.BackgroundTransparency = 1
	countLabel.Font = TEXT_FONT
	countLabel.TextSize = 24
	countLabel.TextColor3 = TEXT_COLOR
	countLabel.TextXAlignment = Enum.TextXAlignment.Left
	countLabel.Text = "0"
	countLabel.AutomaticSize = Enum.AutomaticSize.X
	countLabel.Parent = frame

	return frame, icon, countLabel
end

-- Создаём фреймы для валют (порядок: монеты, звезды)
local coinFrame, coinIcon, coinCountLabel = createCurrencyFrame("Coin", COIN_ICON, Color3.fromRGB(255, 215, 0), 1)
local starFrame, starIcon, starCountLabel = createCurrencyFrame("Star", ZVEZDA_ICON, Color3.fromRGB(255, 215, 0), 2) -- Изменен цвет на желтый

-- Создаём иконку шестерёнки (кнопку настроек)
local gearIcon = Instance.new("ImageButton")
gearIcon.Name = "GearIcon"
gearIcon.AnchorPoint = Vector2.new(1, 0)
gearIcon.Position = UDim2.new(1, -GEAR_ICON_RIGHT_MARGIN, 0, GEAR_ICON_TOP_MARGIN)
gearIcon.Size = UDim2.new(0, GEAR_ICON_SIZE_ABSOLUTE, 0, GEAR_ICON_SIZE_ABSOLUTE)
gearIcon.BackgroundTransparency = 0
gearIcon.BackgroundColor3 = GEAR_ICON_BACKGROUND_COLOR
gearIcon.Image = GEAR_ICON
gearIcon.ImageColor3 = GEAR_ICON_IMAGE_COLOR
gearIcon.ScaleType = Enum.ScaleType.Fit
gearIcon.Parent = coinDisplayGui

local gearCorner = Instance.new("UICorner")
gearCorner.CornerRadius = UDim.new(0, GEAR_ICON_CORNER_RADIUS)
gearCorner.Parent = gearIcon

local gearStroke = Instance.new("UIStroke")
gearStroke.Color = GEAR_ICON_STROKE_COLOR
gearStroke.Thickness = GEAR_ICON_STROKE_THICKNESS
gearStroke.Parent = gearIcon

-- Создаём меню настроек
local settingsMenu = Instance.new("Frame")
settingsMenu.Name = "SettingsMenu"
settingsMenu.AnchorPoint = Vector2.new(0.5, 0.5)
settingsMenu.Position = UDim2.new(0.5, 0, 0.5, 0)
settingsMenu.Size = UDim2.new(0, 350, 0, 240) -- Настраиваем размер
settingsMenu.BackgroundColor3 = Color3.fromRGB(50, 100, 200) -- Синий фон
settingsMenu.Visible = false
settingsMenu.Parent = coinDisplayGui

local settingsCorner = Instance.new("UICorner")
settingsCorner.CornerRadius = UDim.new(0, 15)
settingsCorner.Parent = settingsMenu

local settingsStroke = Instance.new("UIStroke")
settingsStroke.Color = Color3.fromRGB(255, 255, 255)
settingsStroke.Thickness = 3
settingsStroke.Parent = settingsMenu

-- Заголовок настроек
local settingsTitle = Instance.new("TextLabel")
settingsTitle.Name = "Title"
settingsTitle.Size = UDim2.new(1, 0, 0, 40)
settingsTitle.BackgroundColor3 = Color3.fromRGB(40, 80, 180)
settingsTitle.BackgroundTransparency = 0
settingsTitle.Font = Enum.Font.GothamBold
settingsTitle.Text = "Настройки!"
settingsTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
settingsTitle.TextSize = 24
settingsTitle.Parent = settingsMenu

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 15)
titleCorner.Parent = settingsTitle

-- Иконка шестерёнки слева от заголовка
local headerGearIcon = Instance.new("ImageLabel")
headerGearIcon.Name = "GearIcon"
headerGearIcon.Position = UDim2.new(0, 15, 0.5, 0)
headerGearIcon.AnchorPoint = Vector2.new(0, 0.5)
headerGearIcon.Size = UDim2.new(0, 24, 0, 24)
headerGearIcon.BackgroundTransparency = 1
headerGearIcon.Image = GEAR_ICON
headerGearIcon.Parent = settingsTitle

-- Иконка предупреждения (треугольник) справа
local warningIcon = Instance.new("ImageButton")
warningIcon.Name = "WarningIcon"
warningIcon.AnchorPoint = Vector2.new(1, 0.5)
warningIcon.Position = UDim2.new(1, -15, 0.5, 0)
warningIcon.Size = UDim2.new(0, 24, 0, 24)
warningIcon.BackgroundTransparency = 1
warningIcon.Image = "rbxassetid://6031071053" -- Иконка предупреждения
warningIcon.Parent = settingsTitle

-- Контейнер для настроек
local settingsContainer = Instance.new("Frame")
settingsContainer.Name = "SettingsContainer"
settingsContainer.Position = UDim2.new(0, 15, 0, 50)
settingsContainer.Size = UDim2.new(1, -30, 1, -60)
settingsContainer.BackgroundTransparency = 1
settingsContainer.Parent = settingsMenu

local containerLayout = Instance.new("UIListLayout")
containerLayout.Padding = UDim.new(0, 10)
containerLayout.Parent = settingsContainer

-- Создаём опции настроек строго по образцу из скриншота
local function createOption(order, text)
	local option = Instance.new("Frame")
	option.Name = "Option" .. order
	option.Size = UDim2.new(1, 0, 0, 45)
	option.BackgroundColor3 = Color3.fromRGB(65, 115, 195)
	option.Parent = settingsContainer

	local optionCorner = Instance.new("UICorner")
	optionCorner.CornerRadius = UDim.new(0, 10)
	optionCorner.Parent = option

	local textLabel = Instance.new("TextLabel")
	textLabel.BackgroundTransparency = 1
	textLabel.Position = UDim2.new(0, 15, 0, 0)
	textLabel.Size = UDim2.new(0.6, 0, 1, 0)
	textLabel.Font = Enum.Font.GothamSemibold
	textLabel.Text = text
	textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
	textLabel.TextSize = 16
	textLabel.TextXAlignment = Enum.TextXAlignment.Left
	textLabel.TextYAlignment = Enum.TextYAlignment.Center
	textLabel.Parent = option

	local button = Instance.new("TextButton")
	button.AnchorPoint = Vector2.new(1, 0.5)
	button.Position = UDim2.new(1, -15, 0.5, 0)
	button.Size = UDim2.new(0, 60, 0, 30)
	button.BackgroundColor3 = Color3.fromRGB(80, 200, 80)
	button.Text = "Да"
	button.TextColor3 = Color3.fromRGB(255, 255, 255)
	button.Font = Enum.Font.GothamBold
	button.TextSize = 18
	button.Parent = option

	local buttonCorner = Instance.new("UICorner")
	buttonCorner.CornerRadius = UDim.new(0, 8)
	buttonCorner.Parent = button

	local isOn = true

	button.MouseButton1Click:Connect(function()
		isOn = not isOn

		if isOn then
			button.BackgroundColor3 = Color3.fromRGB(80, 200, 80)
			button.Text = "Да"
		else
			button.BackgroundColor3 = Color3.fromRGB(200, 80, 80)
			button.Text = "Нет"
		end

		-- Применяем настройки
		if order == 1 then -- Музыка
			Settings.MusicEnabled = isOn
			for _, sound in pairs(SoundService:GetDescendants()) do
				if sound:IsA("Sound") and sound.Name:lower():find("music") then
					sound.Playing = isOn
				end
			end
		elseif order == 2 then -- Звуковые эффекты
			Settings.SoundEffectsEnabled = isOn
			for _, sound in pairs(SoundService:GetDescendants()) do
				if sound:IsA("Sound") and not sound.Name:lower():find("music") then
					sound.Playing = isOn
				end
			end
		elseif order == 3 then -- Питомцы других игроков
			Settings.ViewOtherPets = isOn
		elseif order == 4 then -- Свои питомцы
			Settings.ViewOwnPets = isOn
		end
	end)

	return option
end

-- Создаём настройки в нужном порядке
createOption(1, "Музыка:")
createOption(2, "Звуковые эффекты:")
createOption(3, "Посмотреть других питомцев:")
createOption(4, "Посмотрите на своих питомцев:")

-- Обработчики событий
gearIcon.MouseButton1Click:Connect(function()
	settingsMenu.Visible = not settingsMenu.Visible
	if settingsMenu.Visible then
		-- Анимация появления
		settingsMenu.Size = UDim2.new(0, 0, 0, 0)
		TweenService:Create(settingsMenu, TweenInfo.new(0.3, Enum.EasingStyle.Back), {Size = UDim2.new(0, 350, 0, 240)}):Play()
	end
end)

warningIcon.MouseButton1Click:Connect(function()
	-- Анимация закрытия
	TweenService:Create(settingsMenu, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0)}):Play()
	task.wait(0.2)
	settingsMenu.Visible = false
end)

-- Функция безопасного получения лидерстатов
local function safeGetLeaderstat(statName, defaultValue)
	local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
	if not leaderstats then
		return {
			Value = defaultValue or 0,
			Changed = Instance.new("BindableEvent").Event
		}
	end

	local stat = leaderstats:FindFirstChild(statName)
	if not stat then
		return {
			Value = defaultValue or 0,
			Changed = Instance.new("BindableEvent").Event
		}
	end

	return stat
end

-- Обновление отображения валют
local function updateCurrency(statName, label)
	local stat = safeGetLeaderstat(statName)
	if stat.Changed then
		stat.Changed:Connect(function(value)
			label.Text = tostring(value)
		end)
		label.Text = tostring(stat.Value)
	end
end

updateCurrency("Coins", coinCountLabel)
updateCurrency("Stars", starCountLabel)

-- Обработчик для обнаружения новых leaderstats
LocalPlayer.ChildAdded:Connect(function(child)
	if child.Name == "leaderstats" then
		print("Leaderstats обнаружены, обновляем интерфейс...")

		-- Монеты
		local newCoinsStat = child:FindFirstChild("Coins")
		if newCoinsStat then
			newCoinsStat.Changed:Connect(function(value)
				coinCountLabel.Text = tostring(value)
			end)
			coinCountLabel.Text = tostring(newCoinsStat.Value)
		end

		-- Звезды
		local newStarsStat = child:FindFirstChild("Stars")
		if newStarsStat then
			starFrame.Visible = true
			newStarsStat.Changed:Connect(function(value)
				starCountLabel.Text = tostring(value)
			end)
			starCountLabel.Text = tostring(newStarsStat.Value)
		else
			starFrame.Visible = false
		end
	end
end)

-- Эффекты наведения для кнопки настроек
local originalGearSize = gearIcon.Size
local hoverGearSize = UDim2.new(0, GEAR_ICON_SIZE_ABSOLUTE * GEAR_ICON_HOVER_SCALE, 0, GEAR_ICON_SIZE_ABSOLUTE * GEAR_ICON_HOVER_SCALE)
local gearTweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)

gearIcon.MouseEnter:Connect(function()
	TweenService:Create(gearIcon, gearTweenInfo, {
		Size = hoverGearSize,
		Rotation = 180
	}):Play()
end)

gearIcon.MouseLeave:Connect(function()
	TweenService:Create(gearIcon, gearTweenInfo, {
		Size = originalGearSize,
		Rotation = 0
	}):Play()
end)

-- Отладочная информация
print([[
=== CoinDisplayManager загружен успешно! ===
✅ Исправлены иконки (используются из ICON PACK GOOD)
✅ Настройки точно соответствуют показанному макету
✅ Звезда теперь отображается желтым цветом
✅ Настройки выглядят аккуратно, без обрезания текста

Иконки берутся из моделей:
- Монета: Workspace/ICON PACK GOOD/Coin
- Звезда: Workspace/ICON PACK GOOD/Zvezda (желтая)
- Настройки: Workspace/ICON PACK GOOD/Gear
]])