Conectar meu ETS2

Vincule o conector local do seu computador à sua conta da plataforma, em oito passos.

Conector Windows v1.3 disponível para download

Baixe os quatro arquivos e salve-os juntos na pasta do conector. Mantenha ets2_connector_config.json para preservar o pareamento. A versão 1.5 envia a telemetria completa do plugin ao painel (temperaturas, pressões, desgastes, luzes, trabalho, navegação, reboque e eventos), inclui o leitor, elimina a instalação pelo pip e mostra a falha específica de leitura, sem confundi-la com jogo fechado. Requer Windows, Python 3.8+ e o plugin RenCloud x64 carregado no jogo.

O que precisa estar no computador do jogo

Não há servidor para manter aberto: o conector lê o jogo direto da memória dele.

  1. Plugin x64: feche completamente o jogo e extraia o arquivo release_v_1_12_1.zip. Copie scs-telemetry.dll da pasta Win64 para bin/win_x64/plugins da instalação que o atalho abre. É normal essa pasta não existir: crie uma pasta chamada plugins, no plural, dentro de win_x64, e coloque a DLL diretamente nela, não o ZIP nem outra subpasta.
  2. Reinicie o jogo por completo depois de copiar o plugin. Confirme a mensagem "SDK activated" com OK e entre no perfil/cabine; só estar na tela inicial não confirma que o plugin foi carregado.
  3. Leitor incluído: salve os quatro arquivos do conector juntos e abra o iniciador Windows. A versão 1.3 não usa pip nem instala truck-telemetry; o jogo e o conector devem usar o mesmo nível de permissão, preferencialmente ambos sem administrador.

A mensagem "SDK activated" nunca apareceu? Diagnóstico em 3 passos

  1. Confira o atalho: clique com o botão direito no atalho que você usa, abra "Propriedades" e veja o campo "Destino". Se ele aponta para bin/win_x64/eurotrucks2.exe, abra essa pasta win_x64 e crie plugins ao lado do executável. Não acrescente outra sequência bin/win_x64 dentro dela; um atalho também pode abrir outra instalação ou um iniciador.
  2. Registro do jogo: o arquivo game.log.txt, normalmente em Documentos/Euro Truck Simulator 2, pode mostrar a causa de uma falha ao carregar o plugin. Erros de carregamento não significam necessariamente DLL corrompida ou versão incompatível; quando indicarem dependência ausente, pode ser necessário instalar ou reparar o Microsoft Visual C++ Redistributable x64.
  3. Compatibilidade: a documentação do autor lista testes até a versão 1.46, mas isso não estabelece um limite de funcionamento. A compatibilidade com 1.61.1.9a ainda não está confirmada; a ausência da pasta plugins não demonstra incompatibilidade e não é motivo, por si só, para trocar a versão do jogo.

Depois de criar a pasta e copiar a DLL, reabra o ETS2 pelo mesmo atalho e depois abra o conector; não é necessário refazer o pareamento. Se a memória continuar ausente, ainda será preciso identificar por que o plugin não carregou.

Download oficial do plugin (DLL)

Conta da plataforma

Você já está autenticado nesta conta — o pareamento ficará vinculado exclusivamente a ela.

2

Gerar código de pareamento

Clique no botão abaixo. O código expira em 10 minutos e pode ser usado uma única vez.

3

Conferir o plugin x64

Use scs-telemetry.dll x64 do RenCloud V.1.12.1 em bin/win_x64/plugins da instalação do ETS2 que você abre. Feche e reabra o jogo após copiar o plugin. O leitor já vem com o conector: não precisa de pip, truck-telemetry ou servidor local.

Download oficial do plugin

Obter o conector local

Baixe os quatro arquivos da versão 1.5 no topo da página e salve-os juntos no computador de jogo. Mantenha o arquivo de configuração para preservar o pareamento. Requer Windows e Python 3.8+.

5

Executar o ETS2

Inicie o jogo e pressione OK na mensagem 'SDK activated' que aparece no início.

6

Conectar o conector

Informe o código de pareamento e a URL da plataforma no conector local. Ele receberá um token de dispositivo.

7

Validar os primeiros dados

Assim que a primeira telemetria chegar, o painel passa a exibir os valores reais.

Código de pareamento

Especificação técnica da API (conector local)

POST/functions/ets2PairingCreateUsuário autenticado solicita código de pareamento (10 min, uso único)
POST/functions/ets2PairingCompleteConector consome o código e recebe o token do dispositivo
POST/functions/ets2TelemetryConector envia telemetria (headers x-ets2-device + x-ets2-token)
POST/functions/ets2HeartbeatConector mantém a conexão viva
POST/functions/ets2StatusUsuário autenticado consulta estado consolidado
POST/functions/ets2DeviceActionUsuário autenticado desconecta/revoga dispositivos e sessões

Base: https://elite-venture-flow-pro.base44.app · autenticação do conector por headers x-ets2-device e x-ets2-token (token emitido no pareamento, armazenado no servidor apenas como hash SHA-256, revogável a qualquer momento).

Conector de referência (código de exemplo)+

Exemplo que demonstra o protocolo completo. Para uso no dia a dia, baixe o conector completo no topo da página.

# Conector de referência (Python 3.10+) — ETS2 Connect
# Lê a telemetria local do plugin scs-sdk-plugin (RenCloud) e envia à plataforma.
# Este é um EXEMPLO DE REFERÊNCIA: o instalador Windows oficial ainda está em desenvolvimento.
import time, hashlib, json, uuid, requests

BASE_URL = "https://elite-venture-flow-pro.base44.app"  # endpoint HTTPS da plataforma
DEVICE_ID = "pc-" + uuid.uuid4().hex[:8]   # persista este id em um arquivo local

def pair(code: str) -> str:
    r = requests.post(f"{BASE_URL}/functions/ets2PairingComplete", json={
        "code": code.upper(),
        "device_id": DEVICE_ID,
        "device_name": "Meu PC de jogo",
        "game_version": "1.46",
        "plugin_version": "1.12",
    }, timeout=15)
    r.raise_for_status()
    return r.json()["device_token"]  # armazene localmente (ex.: keyring); nunca em texto aberto junto da senha

def send_telemetry(token: str, t: dict, session_id=None, end=False):
    headers = {"x-ets2-device": DEVICE_ID, "x-ets2-token": token}
    body = {**t, "raw_data_version": "1"}
    if session_id: body["session_id"] = session_id
    if end: body["end_session"] = True
    r = requests.post(f"{BASE_URL}/functions/ets2Telemetry", json=body, headers=headers, timeout=10)
    r.raise_for_status()
    return r.json()

def heartbeat(token: str, game_running: bool):
    headers = {"x-ets2-device": DEVICE_ID, "x-ets2-token": token}
    requests.post(f"{BASE_URL}/functions/ets2Heartbeat", json={"game_running": game_running}, headers=headers, timeout=10)

# Loop principal: obter telemetria do plugin (leitura de shared memory / REST local,
# conforme o cliente escolhido do scs-sdk-plugin) e enviar a cada ~1 segundo,
# com reconexão automática em falhas de rede.

Limitações documentadas: a plataforma não se conecta ao processo do jogo; o plugin RenCloud fornece dados localmente (shared memory e servidores REST/WebSocket locais) e é o conector local que os envia por HTTPS. A exibição sobre o jogo em tela cheia (overlay nativo) requer um cliente Windows próprio — consulte a página do Overlay.