Skip to content

EullerAron/game-backlog

Repository files navigation

Game Backlog — status de jogos para a biblioteca da Steam

Plugin para o cliente Steam (via Millennium) que deixa você marcar cada jogo com um status — completed (zerado), dropped (dropado) ou to play (quero jogar) — direto na página do jogo. As capas marcadas ganham uma faixa colorida no topo e, de quebra, o jogo entra automaticamente numa coleção nativa da Steam com o nome do status.

Cada status é uma coleção nativa da Steam (de mesmo nome). Isso é a fonte da verdade: o plugin lê as coleções para desenhar as faixas, e qualquer forma de mexer nessas coleções — inclusive a multi-seleção nativa da Steam — reflete automaticamente nas capas.

Status Botão / Faixa Cor
Pretendo jogar PLAN TO PLAY Roxo
Jogando PLAYING Azul
Zerado COMPLETED Verde
Dropado DROPPED Vermelho

Screenshots

Faixas de status nas capas da biblioteca

Painel de status na página do jogo


Instalação rápida (para quem só quer usar)

Você não precisa compilar nada — basta ter o Millennium e o arquivo .zip do plugin já pronto.

  1. Instale o Millennium em https://steambrew.app/ e abra o Steam uma vez (isso cria a pasta ...\Steam\plugins).
  2. Extraia o game-backlog.zip dentro de:
    C:\Program Files (x86)\Steam\plugins\
    
    Deve ficar ...\Steam\plugins\game-backlog\plugin.json.
  3. Reinicie o Steam.
  4. Vá em Steam → Millennium → Plugins, ligue o "Game Backlog" e clique em Save Changes. O Steam reinicia para aplicar.

Como usar

Há duas formas de marcar, e ambas refletem nas capas:

  1. Em massa (mais rápido): na biblioteca, selecione vários jogos com Ctrl/Shift + clique, clique com o botão direito → Adicionar à coleção → escolha PLAN TO PLAY, PLAYING, COMPLETED ou DROPPED. As faixas aparecem em segundos.
  2. Pelo painel: abra a página de um jogo — no canto inferior direito aparece um painel com os quatro botões. Clique para definir; clique no mesmo de novo para remover.

A capa marcada ganha a faixa colorida no topo, na grade e na página. Se um jogo estiver em mais de uma coleção de status, prevalece a de maior prioridade (COMPLETED > DROPPED > PLAYING > PLAN TO PLAY).

No painel do plugin (Steam → Millennium → Plugins → configurar o Game Backlog) há o botão "Esvaziar as coleções de status", que remove todos os jogos das quatro coleções de uma vez.


Compilar a partir do código (para desenvolver / gerar o .zip)

Pré-requisitos: Millennium e Bun (powershell -c "irm bun.sh/install.ps1 | iex").

# dentro da pasta do projeto
bun install
bun run build

Isso gera o frontend compilado em .millennium/. O backend em Lua (backend/main.lua) roda direto, sem build.

Para testar localmente, copie a pasta para ...\Steam\plugins\ sem o node_modules (caminhos longos demais para o Windows):

robocopy "<pasta-do-projeto>" "C:\Program Files (x86)\Steam\plugins\game-backlog" /E /XD node_modules .git

Gerar o .zip para distribuir

Depois de bun run build, monte um pacote limpo (sem node_modules) e zipe:

$src   = "C:\Users\Euller\Documents\Claude\Projects\Jogos zerados steam\game-backlog"
$stage = "$env:TEMP\game-backlog-pkg\game-backlog"
Remove-Item -Recurse -Force "$env:TEMP\game-backlog-pkg" -ErrorAction SilentlyContinue
robocopy $src $stage /E /XD node_modules .git | Out-Null
Compress-Archive -Path $stage -DestinationPath "$HOME\Desktop\game-backlog.zip" -Force

O game-backlog.zip (na sua Área de Trabalho) já contém o frontend compilado e o backend — é só isso que o usuário final precisa. Ele segue a Instalação rápida acima.

Personalizar status, textos e cores

No topo de frontend/index.tsx existe o objeto STATUS:

const STATUS = {
    completed: { btn: 'COMPLETED',    ribbon: 'COMPLETED',    bg: '#1d9e75', fg: '#04342c' },
    playing:   { btn: 'PLAYING',      ribbon: 'PLAYING',      bg: '#2f6db5', fg: '#ffffff' },
    dropped:   { btn: 'DROPPED',      ribbon: 'DROPPED',      bg: '#b03636', fg: '#ffffff' },
    planned:   { btn: 'PLAN TO PLAY', ribbon: 'PLAN TO PLAY', bg: '#8250c4', fg: '#ffffff' },
};
  • btn = texto do botão · ribbon = texto da faixa e nome da coleção · bg/fg = cor de fundo / cor do texto.
  • Depois de editar, rode bun run build de novo.

Solução de problemas

Ative o diagnóstico mudando const DEBUG = false; para true em frontend/index.tsx, recompile e recopie. Abra a biblioteca e veja as linhas [Game Backlog] em Steam → Millennium → Logs — elas mostram o status lido das coleções e o appid da página aberta, úteis para entender qualquer capa que não receba a faixa.

Arquitetura

game-backlog/
├─ plugin.json          # metadados + ativa backend Lua (só diagnóstico)
├─ package.json         # deps e scripts de build (millennium-ttc)
├─ tsconfig.json
├─ frontend/
│  └─ index.tsx         # lê/escreve coleções, faixas, painel e menu (UI)
└─ backend/
   └─ main.lua          # recebe linhas de log do frontend quando DEBUG=true
  • Fonte da verdade: as 4 coleções nativas da Steam. O frontend lê seus membros (collection.allApps) e escreve com collectionStore.AddOrRemoveApp.

  • Identificação dos jogos: lê o appid das props internas do React de cada capa (robusto até com arte personalizada); URL da imagem é só fallback.

  • Coleções: usa o collectionStore do cliente (NewUnsavedCollection, AddOrRemoveApp).


Aviso: usar o Millennium para customizar o cliente é cosmético e não é detectado pelo VAC. Ainda assim, é um mod de terceiros — uma atualização grande do cliente Steam pode exigir recompilar/ajustar o plugin.

Licença: MIT.

About

Millennium plugin to track your Steam backlog — tag games as Completed, Playing, Plan to Play, or Dropped, with colored cover ribbons and native Steam collections.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors