Glossary
Централизованный глоссарий терминов GOLOOT.
B
Bot Status
Синонимы: BotRegistrationState, статус бота
Состояние взаимодействия пользователя с Telegram ботом. Enum значения:
NEW_USER— создан в TMA, никогда не писал ботуACTIVE— написал /start ботуREACTIVATED— разблокировал бота после блокировкиBLOCKED— заблокировал бота
Используется в онбординге для проверки подписки на бота.
См. также: Onboarding
Buff
Синонимы: Бафф, бустер
Временный бонус, активируемый из инвентаря. Типы: XP Catalyst (множитель опыта), Scrap Catalyst (множитель валюты), Streak Shield (защита стрика). Баффы одного типа и тира стакаются (продлевают время), разных тиров — нет.
См. также: Streak Shield, Buffs
Buff Event
Синонимы: Событие баффа
Запись в истории использования баффа. Типы: ACTIVATION (активация), EXTENSION (продление), APPLICATION (применение множителя), SHIELD_USE (использование щита).
Ban Appeal
Синонимы: Апелляция бана
Заявка забаненного пользователя на пересмотр бана. Использует telegramAuthLight для аутентификации.
Лимиты: 1 апелляция/день, автоблокировка после 3 отклонений.
BannedSteamId
Синонимы: Забаненный Steam ID
Запись о заблокированном Steam-аккаунте в таблице banned_steam_ids. Используется для предотвращения обхода банов через создание новых аккаунтов.
Поля:
steamId— SteamID64 забаненного аккаунта (unique)originalUserId— ID изначально забаненного пользователяreason— причина бана (копия User.banReason)
Механика: При попытке привязать забаненный Steam ID — пользователь автоматически банится как связанный с нарушителем.
См. также: Steam Verification, Steam Verification
Boost
Синонимы: Буст, множитель удачи
Увеличение вероятности выпадения материалов (FRAGMENT, BLUEPRINT) для игроков в Luck Pool. Базовый буст × 3.0, максимальный × 12.9 при максимальном Seniority.
См. также: Luck Pool, Seniority
Broadcast
Синонимы: Массовая рассылка, mass push
Отправка push-уведомления всем подходящим пользователям. Обрабатывается батчами (25 user/batch, 1s delay) для соблюдения лимитов Telegram API (30 msg/sec).
Retry: 3 попытки с exponential backoff (5 → 15 → 45 мин)
См. также: Push Notification, Telegram Bot
Budget Period
Синонимы: Период бюджета
Временной интервал (10 дней) для контроля расходов на крафт. Бюджет периода: 3333₽ (333₽/день). Остаток переносится внутри месяца, сгорает в конце.
См. также: Budget Control
C
Coupon
Синонимы: Купон, Free Case Open
Право на бесплатное открытие платного кейса. Хранится в UserFreeCaseOpens.
Источник: награда за квесты.
См. также: Cases
Craft
Синонимы: Крафт, создание предмета
Процесс создания скина из материалов (FRAGMENT, BLUEPRINT, RESOURCE). Требует Scrap и активный сезон. Материалы выпадают из кейсов, активные игроки получают буст в Luck Pool.
Ключевые модели:
CraftHistory— история крафтов пользователяCraftBudgetLog— лог для Budget Control System
См. также: Craft System, Item, Luck Pool
Craft Recipe
Синонимы: Рецепт крафта
JSON-объект в Item.craftRecipe, описывающий материалы для создания скина.
Структура:
{
"materials": [
{ "itemId": "blueprint-xxx", "quantity": 1 },
{ "itemId": "fragment-xxx", "quantity": 5 }
]
}
Дополнительно требуется Item.craftScrapCost Scrap.
См. также: Craft
D
Denormalized Fields
Синонимы: Денормализованные поля, cached counters
Предрассчитанная статистика, хранящаяся напрямую на User модели для быстрого чтения (O(1) вместо O(n) агрегации).
Примеры полей:
scrapFromQuizzes,scrapFromCases,scrapFromSpins— источники ScrapxpFromQuests,xpFromAchievements— источники XPquizzesCompleted,correctAnswers,casesOpened— счётчики активности
Trade-off: Быстрые чтения, но каждая операция должна атомарно обновлять счётчики.
См. также: Profile
F
Feed Event
Синонимы: Событие ленты, Live Feed Event
Событие активности пользователя, отображаемое в публичной ленте. Типы: CASE_OPENED, SPIN_WON, ITEM_CRAFTED, ITEM_WITHDRAWN, ACHIEVEMENT_UNLOCKED, REFERRAL_BONUS, RAFFLE_WIN.
Фильтруется по значимости: только TIER_1+ предметы, Scrap >= 500, XP >= 1000. Username анонимизируется (@ale***).
См. также: Live Feed
I
InviteSession
Синонимы: Сессия приглашения
Промежуточная сущность для отслеживания перехода по реферальной/UTM ссылке до регистрации пользователя.
Lifecycle: PENDING → ACTIVATED (при регистрации) или EXPIRED (через 72ч)
Данные: telegramId, metadata (JSON с referralCode или UTM параметрами), expiresAt
См. также: Referral, Referral Code, Referrals
Item
Синонимы: Предмет
Объект в инвентаре пользователя. Типы: SKIN (финальный скин), BLUEPRINT (рецепт), FRAGMENT (осколок), RESOURCE (ресурс), BUFF (временный бафф).
L
Lazy Reset
Синонимы: Ленивый сброс
Паттерн сброса прогресса DAILY/WEEKLY квестов при первом запросе пользователя после истечения периода, а не по cron.
Преимущества: Равномерная нагрузка (нет пика в полночь), reward не сгорает (если квест COMPLETED но не CLAIMED — сброс не происходит).
См. также: Quest, Quest Rotation
Leaderboard
Синонимы: Рейтинг, таблица лидеров
Ранжированный список игроков по XP в текущем сезоне.
Обновляется каждые 10 минут через RankUpdateJob.
Показывает топ-10 + позицию текущего пользователя с distanceToTop10.
Luck Pool
Синонимы: Пул удачи
Механика поощрения активных игроков через увеличение вероятностей. Игрок попадает в пул при достижении 50% прогресса крафта любого скина. Участники пула получают Boost к вероятности материалов.
См. также: Boost, Seniority, Budget Control
O
Onboarding
Синонимы: Активация, регистрация, activation workflow
Процесс верификации подписок (бот + канал) перед предоставлением доступа к приложению. Гейтинг для контролируемой воронки входа пользователей.
Шаги онбординга:
bot_subscription— пользователь написал /start ботуchannel_subscription— пользователь подписан на Telegram канал
Ключевая особенность: OnboardingService только проверяет подписки, активация InviteSession происходит отдельно в auth flow.
См. также: Bot Status, InviteSession, Onboarding
P
Passive Income
Синонимы: Пассивный доход
Процент от заработка Scrap приглашённого пользователя, автоматически начисляемый рефереру.
Формула: passiveAmount = floor(scrapAmount × PASSIVE_INCOME_PERCENT / 100)
Конфигурация: 10% по умолчанию (REFERRAL_PASSIVE_INCOME_PERCENT)
Минимум: 1 Scrap если исходный заработок > 0
См. также: Referral, Referrals
Promo Code
Синонимы: Промокод, promotional code
Код для получения бонусов (SCRAP, XP, предметы, купоны на кейсы) в рамках маркетинговых кампаний.
Особенности:
- Одноразовый per
telegramId(защита от мультиаккаунтов) - Может быть ограничен по времени (
startsAt,expiresAt) и количеству активаций (maxRedemptions) - Может быть только для новых пользователей (
onlyNewUsers: < 24h + без prior redemptions) - Атрибутируется к UTM-кампании при активации
См. также: Reward Snapshot, Coupon, Promo Codes
Push Notification
Синонимы: Пуш, уведомление
Сообщение, отправляемое пользователю через Telegram бота. Поддерживает текст, изображения, кнопки с click tracking.
Статусы: PENDING → SENDING → SENT/FAILED/CANCELLED
Особенности:
- Bot-blocked detection → автообновление User.botStatus
- Scheduled sending через PushSchedulerService
- Массовая рассылка через BroadcastService
См. также: Broadcast, Telegram Bot
Q
Quest
Синонимы: Квест, задание
Задача для пользователя с наградой за выполнение.
Типы (по периоду): PERMANENT, DAILY, WEEKLY, EVENT.
Категории (по действию): QUIZ, CASES, SOCIAL, SPECIAL, COLLECTION, RECYCLE, RUST.
Поддерживает Shared Progress (одно действие засчитывается во все подходящие квесты) и Lazy Reset (сброс при запросе, не по cron).
См. также: Quest Rotation, Quests
Quest Rotation
Синонимы: Ротация квестов
Механика выбора фиксированных наборов DAILY/WEEKLY квестов из пула.
Seeded shuffle на основе даты — все пользователи видят одинаковые квесты в один день.
- DAILY: 3 квеста
- WEEKLY: 1 квест
См. также: Quest
Quiz
Синонимы: Квиз, викторина
Вопрос с вариантами ответов для TG канала. Автоматически публикуется после поста, живёт ~3 часа, затем удаляется. Типы: SINGLE (один правильный ответ), MULTIPLE (несколько правильных). Награда: Scrap за правильный ответ (по умолчанию 100). XP/SP планируются.
См. также: Quiz Category, Quizzes
Quiz Category
Синонимы: Категория квизов
Группировка квизов по тематике (например "Rust", "Крафт"). Иерархия: Category → Subcategory → Quiz. При деактивации категории каскадно деактивируются все её подкатегории и квизы.
См. также: Quiz
Quiz Publication
Синонимы: Публикация квиза
Автоматическая публикация квиза в discussion group Telegram канала после поста. Реализована в TelegramQuizService.
Механика:
- Fisher-Yates shuffle вариантов ответов
- Сохранение
shuffledOrderдля корректной валидации - Real-time статистика в сообщении ("X ответов • Y% правильных")
- Expiration: 24ч (production), 30сек (test)
См. также: Quiz, Telegram Bot
R
Raffle
Синонимы: Розыгрыш, лотерея
Еженедельный розыгрыш скинов за Streak Points. Пользователи покупают билеты, победитель определяется случайным образом. Розыгрыш каждое воскресенье в 20:00 UTC. Параметры зависят от tier приза (50-250 билетов).
См. также: Streak Points, Streaks
Raffle Ticket
Синонимы: Билет розыгрыша
Право на участие в розыгрыше. Покупается за Streak Points. Цена прогрессивная: 100 SP (билеты 1-5), 150 SP (6-15), 200 SP (16-30), 300 SP (31-50).
См. также: Raffle, Streak Points
Referral
Синонимы: Реферал, приглашённый друг
Связь между пользователем-реферером и приглашённым пользователем. Создаётся при активации InviteSession.
Данные: referrerId, referredId (unique), bonusXpClaimed, bonusScrapClaimed, passiveScrapEarned
Награды:
- Рефереру: +100 XP при активации
- Приглашённому: +500 Scrap при активации
- Пассивный доход: 10% от заработка реферала (до конца сезона)
См. также: Referral Code, Passive Income, Referrals
Referral Code
Синонимы: Реферальный код, инвайт-код
Уникальный код пользователя для генерации реферальных ссылок.
Формат ссылки: https://t.me/bot/app?startapp=ref_CODE
Ограничения: Один код на пользователя (userId unique), код автоматически создаётся при первом запросе.
Аналитика: clicksCount, связь с ReferralClickAnalytics для детального трекинга.
См. также: Referral, InviteSession, Referrals
Reward Snapshot
Синонимы: Снапшот награды
JSON-копия награды на момент активации промокода. Хранит immutable историю того, что именно получил пользователь, независимо от последующих изменений конфигурации промокода.
Структура:
{
"type": "SCRAP",
"amount": 500,
"itemId": null,
"itemName": null,
"caseId": null,
"caseName": null
}
Зачем нужен: Если админ изменит награду промокода после активации, история останется корректной — пользователь увидит то, что реально получил.
См. также: Promo Code, Promo Codes
Rust Quest
Синонимы: Раст-квест, игровой квест
Квест категории RUST, прогресс которого отслеживается через Rust плагин на игровом сервере.
Типы событий:
- TIME — наиграть N минут
- COMMAND — выполнить команду
- GATHER — собрать ресурсы
- LOOT_CONTAINER — открыть контейнеры
- LOOT_ITEM — получить предметы
- KILL_ANIMAL — убить животных
Требования: Привязанный Steam аккаунт, запуск квеста через /start.
См. также: Rust Webhook, Quest, Rust Integration
Rust Webhook
Синонимы: Вебхук Rust плагина
HTTP-событие, отправляемое Rust плагином при игровых действиях игрока.
Содержит: eventType, steamId, serverId, timestamp, data (детали события).
Аутентификация: Bearer API Key уникальный для каждого сервера.
См. также: Rust Quest, Rust Integration
S
Salvage
Синонимы: Разбор, утилизация
Конвертация предмета (BLUEPRINT, FRAGMENT, RESOURCE) в опыт (XP).
Формула: XP = item.salvageXP × quantity.
Недоступен между сезонами (COUNTDOWN).
Scrap
Синонимы: Скрап
Основная внутриигровая валюта. Получается за активность (кейсы, спины, квесты). Тратится на открытие платных кейсов и спинов.
Shared Progress
Синонимы: Общий прогресс
Паттерн в системе квестов: одно действие пользователя засчитывается во ВСЕ подходящие квесты одновременно.
Пример: Пройденный квиз про оружие увеличивает прогресс: "Пройди 5 квизов про оружие" + "Пройди 10 любых квизов" + ежедневный "Пройди 3 квиза".
Реализация: QuestProgressService.incrementCategoryProgress() в одной транзакции.
Season
Синонимы: Сезон
Временной соревновательный период (3 месяца) с рейтингом по XP. Статусы: COUNTDOWN → ACTIVE → COMPLETED. При завершении сбрасывается прогресс всех пользователей, топ-10 получают скины.
Длительность 3 месяца выбрана для контроля накопления предметов и объёма выводов.
См. также: Season Reward, Season Reset, Seasons
Season Reset
Синонимы: Сброс сезона, межсезонье
Полный сброс прогресса пользователей при завершении сезона:
- Scrap, XP, level, streaks → 0
- UserInventory (кроме SEASON_REWARD и SKIN items) → удаляется
- QuizResult, UserQuest, UserAchievement → сбрасывается
Сохраняется: friendsInvited, SEASON_REWARD items, SKIN items.
Season Reward
Синонимы: Награда сезона
Скин Steam, выдаваемый топ-10 игрокам при завершении сезона.
| Позиция | Tier |
|---|---|
| #1 | legendary |
| #2-3 | mythical |
| #4-10 | epic |
Хранится в инвентаре с sourceType: SEASON_REWARD (не сбрасывается между сезонами).
См. также: Season, Reward Tier
Reward Tier
Синонимы: Уровень награды
Категория сезонной награды по ценности: legendary, mythical, epic.
Определяется по позиции в рейтинге при завершении сезона.
См. также: Season Reward
Seniority
Синонимы: Стаж, activePeriods
Количество периодов (10 дней), в течение которых игрок был активен в Luck Pool. Влияет на множитель Boost: × 1.2 за каждый период, максимум × 4.3 при 9 периодах.
При крафте скина Seniority сбрасывается до 1 (anti-abuse механика).
Steam Verification
Синонимы: Верификация Steam, Steam linking
Процесс валидации Steam Trade URL для получения SteamID и верификации аккаунта перед выводом скинов.
Два типа верификации:
- Автоматическая: API проверка библиотеки, возраста аккаунта, количества игр
- Ручная: Одобрение администратором для edge cases (низкая стоимость библиотеки, новый аккаунт)
Проверяемые поля:
steamAccountCreatedAt— возраст аккаунтаsteamLibraryValueUsd— стоимость библиотекиsteamGamesCount— количество игр
См. также: Steam Verification, Steam Trade URL, Withdraw Readiness
Steam Trade URL
Синонимы: Trade URL, Trade Link
Уникальная ссылка Steam для получения трейд-офферов. Формат: https://steamcommunity.com/tradeoffer/new/?partner={ID}&token={TOKEN}.
Содержит:
partner— Partner ID (steamId - 76561197960265728)token— Уникальный токен для авторизации трейда
Использование:
- Извлечение SteamID64 при верификации
- Отправка трейд-офферов при выводе скинов
См. также: Steam Verification, Trade Offer
Streak
Синонимы: Стрик, серия
Количество дней подряд, когда пользователь заходил в приложение и забирал награду. Влияет на множитель Streak Points: от ×1.0 (1-6 дней) до ×2.5 (56+ дней).
См. также: Streak Points, Streak Shield, Streaks
Streak Decay
Синонимы: Сгорание очков, decay
Механика списания Streak Points при неактивности. После 7 дней без входа: -10% баланса ежедневно.
Формула: newBalance = currentBalance × (0.9 ^ daysInactive)
См. также: Streak Points
Streak Multiplier
Синонимы: Множитель стрика
Коэффициент увеличения ежедневной награды в зависимости от длины стрика.
| Дни | Множитель |
|---|---|
| 1-6 | ×1.0 |
| 7-13 | ×1.2 |
| 14-27 | ×1.5 |
| 28-55 | ×2.0 |
| 56+ | ×2.5 |
См. также: Streak, Streak Points
Streak Points
Синонимы: SP, очки серии, очки лояльности
Валюта лояльности. Начисляется за ежедневные входы (daily claim). Формула: BASE (50) × multiplier + topBonus. Используется для покупки билетов в розыгрышах и открытия Streak Cases.
См. также: Streak, Raffle Ticket, Streak Decay
Streak Shield
Синонимы: Щит стрика, защита серии
Бафф-предмет, защищающий стрик от сброса при пропуске дня. Выпадает из кейсов. Автоматически используется при пропуске (1 shield = 1 день защиты). Лимит: 3 активных shield одновременно.
См. также: Streak, Buff, Buffs
T
Tier
Синонимы: Редкость, Rarity
Уровень редкости предмета (TIER_0–TIER_5). Определяет визуальные стили: цвет рамки и градиент.
| Tier | Название | Цвет |
|---|---|---|
| TIER_0 | Обычный | Серый |
| TIER_1 | Необычный | Зелёный |
| TIER_2 | Редкий | Синий |
| TIER_3 | Эпический | Фиолетовый |
| TIER_4 | Мифический | Красный |
| TIER_5 | Легендарный | Золотой |
SCRAP/XP не имеют tier (null → TIER_0). FRAGMENT/BLUEPRINT наследуют от targetSkin.
См. также: Tier System
Ticket
Синонимы: Тикет, обращение
Запрос пользователя в службу поддержки. Типы: PROBLEM, SUGGESTION, VERIFICATION_REQUEST, BAN_APPEAL, WITHDRAWAL_ISSUE. Статусы: NEW → IN_PROGRESS → RESOLVED. Auto-close после 10 дней неактивности.
См. также: Ban Appeal, Feedback
Trade Hold
Синонимы: Блокировка трейда, trade lock
Период (обычно 7 дней), в течение которого предмет нельзя обменять после получения. Устанавливается Steam для защиты от мошенничества.
В контексте GOLOOT:
- Предметы на Steam боте могут быть в trade hold после пополнения инвентаря
WithdrawReadinessServiceпроверяет tradable статус и возвращает дату разблокировки- UI показывает "Доступен через N дней" если предмет заблокирован
См. также: Trade Offer, Steam Trade Bot
Trade Job
Синонимы: Job вывода
Задача в in-memory очереди TradeQueueService на обработку вывода предмета.
Lifecycle: PENDING → PROCESSING → SENT/FAILED
Данные: withdrawalId, userId, itemId, tradeUrl, status, createdAt
Особенности:
- Обрабатывается последовательно (1 job/sec)
- Хранится в памяти — теряется при рестарте сервера
- Не путать с
Withdrawal(запись в БД) — job это задача в очереди
См. также: Withdrawal, Steam Trade Bot
Trade Offer
Синонимы: Трейд-оффер, Steam trade
Предложение обмена предметами в Steam. В контексте GOLOOT бот отправляет трейд пользователю для передачи скина.
States в Steam:
| State | Название | Результат |
|---|---|---|
| 2 | Active | Ожидает ответа |
| 3 | Accepted | ✅ → COMPLETED |
| 5 | Expired | ❌ → FAILED |
| 7 | Declined | ❌ → FAILED |
Поля: tradeOfferId сохраняется в Withdrawal для отслеживания.
См. также: Withdrawal, Steam Trade Bot
S
ShortLink
Синонимы: Короткая ссылка
Сокращённый URL для маркетинговой кампании. Формат: goloot.online/{influencer}/{code}.
Функции:
- Редирект на Telegram Mini App
- Open Graph превью для соцсетей
- Поддержка expiration date
См. также: UTM, UTM Tracking
U
User
Синонимы: Пользователь, игрок
Человек, взаимодействующий с платформой GOLOOT.
User Reset
Синонимы: Account wipe, сброс аккаунта, /stop command
Полная очистка данных аккаунта, инициируемая командой /stop в Telegram боте. Выполняется в транзакции с 12 шагами.
Что удаляется:
- Инвентарь, история кейсов/спинов/крафтов
- Результаты квизов, достижения
- Сезонная статистика, feed events
- Все балансы (Scrap, XP, SP)
Что сохраняется:
referral_codes— пользователь может снова приглашать друзей после /startuser_feedback— ценно для бизнеса- Analytics данные
Состояние после сброса: botStatus=BLOCKED, все InviteSession маркируются как USER_RESET.
См. также: Profile, InviteSession
UTM
Синонимы: Urchin Tracking Module, UTM-метки
Стандарт маркетинговой разметки ссылок для отслеживания источников трафика.
Параметры:
source— источник (telegram, youtube, vk)medium— способ (cpc, social, influencer)campaign— название кампанииterm— ключевое слово (опционально)content— вариант объявления (опционально)
См. также: UTM Tracking, ShortLink, Conversion
UTM Conversion
Синонимы: Конверсия, UTM-конверсия
Регистрация пользователя, пришедшего по маркетинговой ссылке.
Tracking:
utm_campaigns.conversions— агрегированный счётчикutm_tracking.converted— флаг конверсии визитаconversionRate = conversions / clicksCount × 100%
См. также: UTM, UTM Tracking
W
Withdrawal
Синонимы: Вывод, запрос на вывод
Запись в БД о процессе вывода виртуального предмета в Steam.
Lifecycle: PENDING → PROCESSING → SENT → COMPLETED/FAILED
Ключевые поля:
tradeUrl— snapshot Trade URL на момент запроса (защита от изменения mid-flow)tradeOfferId— ID трейд-оффера Steam после отправкиfailureReason— причина ошибки (показывается пользователю)
Особенности:
- Виртуальный предмет удаляется ТОЛЬКО при статусе COMPLETED
- При FAILED предмет остаётся в инвентаре — можно повторить вывод
См. также: Trade Job, Trade Offer, Steam Trade Bot
Withdraw Readiness
Синонимы: Готовность к выводу
7-точечная проверка перед выводом скина в Steam:
| # | Проверка | Описание |
|---|---|---|
| 1 | hasTradeUrl | Trade URL установлен |
| 2 | isSteamVerified | Steam верифицирован |
| 3 | isInventoryPublic | Инвентарь Steam публичный |
| 4 | noActiveWithdrawal | Нет активного вывода |
| 5 | itemExists | Предмет есть в инвентаре |
| 6 | itemWithdrawable | Тип предмета — SKIN |
| 7 | botAvailable | Бот с предметом доступен |
Результат: canWithdraw: boolean + детальный breakdown всех проверок.
См. также: Steam Verification, Profile
Weight
Синонимы: Вес
Числовое значение, определяющее вероятность выпадения награды.
Формула: P(item) = weight / sum(all_weights).
В Cases: CaseReward.weight. В Spins: SpinItem.weight.
См. также: Boost
X
XP
Синонимы: Experience, опыт
Основная метрика прогресса в сезоне, определяющая позицию в рейтинге. Только растёт (не тратится). Сбрасывается при завершении сезона.
Источники: Cases, Spins, Quests, Achievements, Referrals, Salvage.
См. также: Season, Leaderboard