Denver Studio - Docs

Guarda-Roupas

Sistema de outfits salvos dentro das casas

Guarda-Roupas

O sistema de guarda-roupas permite que jogadores salvem, apliquem, editem, renomeiem e deletem outfits dentro de suas casas.

Como Funciona

O jogador entra na casa e se aproxima do ponto do guarda-roupas

Aparece o DrawText — pressiona E para abrir

Na interface, pode salvar o outfit atual, aplicar um salvo, renomear, editar ou deletar

Configuração

Adicione wardrobeOffsets no interior desejado em config/interiors.lua:

["shell_trevor"] = {
  title = "Apartamento Simples",
  exitOffsets = { 3.24, -1.81, -0.40 },
  chestOffsets = { -0.67, 5.18, -0.40 },
  wardrobeOffsets = { 1.50, 3.00, -0.41 },
  -- ...
}

Como pegar o offset

Use /testinterior [nome] para entrar no interior

Ande até onde quer o guarda-roupas

Use /getoffset — copie o offset do console F8

O guarda-roupas só aparece em interiores que possuem wardrobeOffsets configurado. Interiores sem o campo não mostram o DrawText.

Funcionalidades

AçãoDescrição
SalvarCaptura a aparência atual do jogador (roupas, acessórios, props) e salva com um nome
AplicarAplica um outfit salvo no jogador instantaneamente
RenomearAltera o nome do outfit
EditarAtualiza o outfit com a aparência atual do jogador (sobrescreve)
DeletarRemove o outfit permanentemente (com confirmação)

Limites

  • Máximo de 20 outfits por jogador
  • Nome do outfit: até 100 caracteres
  • Outfits são salvos por jogador, não por casa — acessíveis em qualquer casa com guarda-roupas

Dados Salvos

O sistema captura e salva:

  • 12 componentes do ped (cabeça, máscara, cabelo, torso, pernas, mãos, pés, acessórios, etc.)
  • 9 props do ped (chapéus, óculos, brincos, relógios, pulseiras, etc.)
  • Cada componente salva: drawable (modelo) e texture (variação)

Banco de Dados

A tabela ds_homes_outfits é criada automaticamente na primeira inicialização:

CREATE TABLE ds_homes_outfits (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT NOT NULL,
  name VARCHAR(100) DEFAULT 'Outfit',
  ped_data TEXT NOT NULL,
  created_at INT NOT NULL
)

Não é necessário rodar migrations manuais — a tabela é criada automaticamente.

Para Interiores Nativos

Para casas com isModInterior = false, use wardrobeCoords em vez de wardrobeOffsets:

{
  isModInterior = false,
  wardrobeCoords = vector3(x, y, z),
  -- use /getcoords para pegar a posição
}