> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dkscripts.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Primeiros Passos

> Instale o dk_skinshop e crie a sua primeira loja de roupas em poucos minutos

# 🚀 Primeiros Passos com o Skinshop

Este guia leva o **dk\_skinshop** do download até a primeira loja funcionando no mapa.

<Warning>
  Estas instruções são apenas para quem **adquiriu o script**. Caso ainda não tenha adquirido, acesse nossa [loja](https://shop.dkscripts.com.br).
</Warning>

<Warning>
  **Instale e teste em um servidor de desenvolvimento antes de subir para produção.**

  A recomendação vale para qualquer script, mas aqui ela pesa mais: o dk\_skinshop grava a roupa do jogador **no mesmo lugar que o seu framework já usa**, detectado automaticamente pelo schema do banco. Vale confirmar em um ambiente de testes que o adapter escolhido é o certo antes de expor a base de produção.

  A configuração, o uso e o ambiente onde o script roda são de responsabilidade do servidor. A DK Development **não se responsabiliza** por problemas decorrentes de instalação feita direto em produção — confira os [termos de serviço](/terms-of-service).
</Warning>

***

## 1. Baixando os arquivos

<Steps>
  <Step title="Acesse o painel do cliente" icon="user">
    Entre no [painel do cliente](https://panel.dkscripts.com.br) com a conta usada na compra.
  </Step>

  <Step title="Vá até a aba Downloads" icon="download">
    Acesse a aba **Downloads** e localize a **Loja de Roupas**.
  </Step>

  <Step title="Baixe os arquivos" icon="folder-open">
    Faça o download do script.
  </Step>
</Steps>

<Note>
  Este script requer a instalação do **dk\_snippets**: [Baixar no GitHub](https://github.com/potter7k/dk_snippets/releases/latest)
</Note>

***

## 2. Instalação no servidor

### 2.1 Organize os arquivos

<Steps>
  <Step title="Pause o skinshop antigo">
    Se o servidor já usa outro script de roupas, pare o recurso antigo antes de continuar — dois scripts vestindo o mesmo ped brigam entre si.

    ```
    stop nome-do-script-antigo
    ```
  </Step>

  <Step title="Crie a pasta de organização">
    Crie uma pasta chamada **\[dk]** dentro de `resources` para manter os scripts da DK organizados.
  </Step>

  <Step title="Extraia os arquivos">
    Extraia `dk_skinshop` e `dk_snippets` dentro da pasta **\[dk]**.

    <Warning>
      Mantenha o `license.lua` que veio junto do produto. Ele é carregado antes do servidor e sem ele o script não autentica.
    </Warning>
  </Step>
</Steps>

```
resources/
└── [dk]/
    ├── dk_skinshop/
    └── dk_snippets/
```

### 2.2 Configure o server.cfg

O driver de banco precisa iniciar **antes** da pasta `[dk]`:

```cfg theme={null}
ensure oxmysql
ensure [dk]
```

<Warning>
  Se o driver de banco também estiver dentro de `[dk]`, coloque-o antes do `dk_snippets` na ordem de start da pasta — ou inicie-o separadamente antes dela.
</Warning>

<Tip>
  **Não é preciso importar nenhum arquivo SQL.** O recurso cria as tabelas que estiverem faltando assim que o banco responde.
</Tip>

Reinicie o servidor.

***

## 3. Verificando a instalação

### 3.1 Autenticação

Ao iniciar o servidor, o console deve exibir a confirmação de autenticação:

```
[dk_skinshop] ✓ Script autenticado com sucesso!
```

<Note>
  Enquanto a licença não valida, o script abre apenas uma **loja reduzida** (modo dev) — sem fotos, compra ou outfits. Assim que a autenticação passa, a loja completa assume sozinha. Detalhes em [Configurações do Client](/scripts/skinshop/configs/cl-config).
</Note>

### 3.2 Armazenamento das roupas

No mesmo boot, o console informa **onde a roupa do jogador será salva**:

```
[dk_skinshop] Storage de roupas: vrp.playerdata
```

O script detecta o schema do banco sozinho e, sempre que possível, grava no mesmo lugar que o seu framework já usa — assim a roupa continua valendo no spawn e nos demais recursos.

<Card title="Armazenamento das Roupas" icon="database" href="/scripts/skinshop/configs/clothes-storage" horizontal>
  Confira se o adapter detectado é o correto e como forçar outro.
</Card>

***

## 4. Criando o primeiro ponto

O recurso **começa sem nenhuma loja no mapa**. Tudo é criado dentro do jogo.

<Steps>
  <Step title="Entre com uma conta de admin" icon="user-shield">
    O painel só responde a quem o framework reconhece como administrador.
  </Step>

  <Step title="Vá até o local do ponto" icon="location-dot">
    O ponto é criado na sua posição atual, com a direção que você estiver olhando.
  </Step>

  <Step title="Abra o painel" icon="terminal">
    Digite no chat:

    ```
    /ssadmin
    ```
  </Step>

  <Step title="Clique em Criar ponto aqui" icon="plus">
    Escolha entre **Loja de Roupas** e **Guarda-Roupa**.
  </Step>

  <Step title="Preencha a aba Geral" icon="gear">
    Defina o nome do ponto, se ele aparece no mapa, quem pode usar e o raio de interação.
  </Step>

  <Step title="Escolha o que fica disponível" icon="list-check">
    Em uma **loja**, marque as categorias vendidas. Em um **guarda-roupa**, os recursos liberados.
  </Step>

  <Step title="Confirme" icon="check">
    O ponto é salvo no banco e enviado na hora para quem está online.
  </Step>
</Steps>

<Card title="Painel Administrativo" icon="screwdriver-wrench" href="/scripts/skinshop/usage/admin" horizontal>
  Todas as opções do painel, incluindo pontos de organização, edição e remoção.
</Card>

### Testando

Aproxime-se do ponto e pressione <kbd>E</kbd>. A loja deve abrir com o personagem enquadrado pela câmera.

<Tip>
  Para testar sem sair andando até um ponto, admins podem usar `/skinshop` (abre a loja onde você estiver) e qualquer jogador pode usar `/guardaroupa`.
</Tip>

***

## 5. Ativando as fotos das roupas

As fotos reais são o diferencial do script, e elas **não vêm dentro do recurso** — precisam ser servidas por HTTP.

<Steps>
  <Step title="Gere as fotos">
    Use o **dk\_autophoto**, publicado gratuitamente pela DK. Ele fotografa cada peça e já salva no formato esperado.
  </Step>

  <Step title="Hospede as imagens">
    Aponte um Apache, nginx ou CDN para a pasta gerada.
  </Step>

  <Step title="Aponte o config">
    Ajuste `itemImages.baseUrl` em `config/shared/config.lua` para o endereço onde as fotos estão.
  </Step>
</Steps>

<Note>
  Sem fotos configuradas, a interface continua funcionando normalmente e usa o **ícone da categoria** no lugar da imagem. Para desligar de vez, use `itemImages.enabled = false`.
</Note>

<Card title="Fotos das Roupas" icon="image" href="/scripts/skinshop/configs/item-images" horizontal>
  Caminho das imagens, extensão, peds addon e resolução de problemas.
</Card>

***

## 6. Ajustes recomendados

Antes de abrir para os jogadores, vale revisar:

<CardGroup cols={2}>
  <Card title="Preços e categorias" icon="tag" href="/scripts/skinshop/configs/sh-config">
    Preço de cada categoria, categorias em destaque e conjuntos prontos.
  </Card>

  <Card title="Slots de outfit" icon="layer-group" href="/scripts/skinshop/configs/sh-config#slots-de-outfit">
    Quantos outfits cada jogador salva, e quantos a mais o VIP ganha.
  </Card>

  <Card title="Permissão de VIP" icon="crown" href="/scripts/skinshop/configs/sv-config">
    Qual permissão do seu framework identifica um jogador VIP.
  </Card>

  <Card title="Logs no Discord" icon="discord" href="/scripts/skinshop/configs/sv-config#logs-e-webhook">
    Webhook para acompanhar compras, outfits e ações administrativas.
  </Card>
</CardGroup>

<Warning>
  Mudanças nos arquivos de `config/` só valem **depois de reiniciar o recurso**.
</Warning>

***

## ❓ Problemas comuns

<AccordionGroup>
  <Accordion title="O recurso não inicia e acusa falta de dk_snippets">
    O `dk_snippets` é dependência do manifesto. Confirme que ele está instalado com **exatamente esse nome** e iniciando antes do `dk_skinshop`.
  </Accordion>

  <Accordion title="A loja abriu em modo reduzido">
    A licença ainda não foi validada. Verifique se o IP do servidor está cadastrado e se o `license.lua` está no lugar. Assim que a autenticação passa, a loja completa assume sozinha.
  </Accordion>

  <Accordion title="O comando /ssadmin não abre nada">
    O comando só responde a quem o framework reconhece como administrador. Confira também se `adminCommand` continua preenchido em `config/server/config.lua` — vazio desativa o registro.
  </Accordion>

  <Accordion title="A roupa não volta quando o jogador entra">
    Veja no console a linha **Storage de roupas** e confirme se o adapter detectado é o correto. Mais detalhes em [Armazenamento das Roupas](/scripts/skinshop/configs/clothes-storage).
  </Accordion>
</AccordionGroup>

<Card title="Precisa de ajuda?" icon="life-ring" href="https://dkscripts.com.br/discord">
  Abra um ticket no nosso Discord para suporte técnico.
</Card>
