Denver Studio - Docs

Criação de Casas

Guia completo para adicionar e configurar casas no sistema DS-Homes

Criação de Casas

Este guia explica como adicionar e configurar casas no sistema DS-Homes. O sistema suporta dois tipos de interiores: MOD (Shells) e Nativos do GTA.

Tipos de Interiores

Interiores customizados que você adiciona ao servidor (shells, YMAPs, etc). São objetos que são spawados em uma dimensão separada.

Vantagens:

  • Totalmente customizável
  • Pode usar o mesmo interior em várias casas
  • Fácil reutilização de configurações

Desvantagens:

  • Requer recursos adicionais no servidor
  • Precisa configurar offsets no config/interiors.lua

Interiores que já existem no mapa do GTA (geralmente debaixo do chão).

Vantagens:

  • Melhor performance (não cria objetos)
  • Não precisa adicionar recursos extras
  • Configuração mais simples

Desvantagens:

  • Limitado aos interiores disponíveis no GTA
  • Coordenadas absolutas (menos flexível)

Estrutura de Configuração

As casas são configuradas no arquivo config/homes.lua:

CFG['homes'] = {
  {
  },
}

Configuração de Casa MOD

Exemplo Completo

{
  name = 'Mansão Moderna',
  slogan = "Luxo e Conforto",
  coords = vector3(-232.6, 588.2, 190.54),
  price = 500000,
  isModInterior = true,
  interior = 'shell_michael',
  image = "https://example.com/mansion.png",
  needsIptu = true,
  type = 'house',
  maxResidents = 10,
  garagePrice = 50000
}

Parâmetros Obrigatórios

Parâmetros Opcionais

Configuração de Apartamento

Apartamentos permitem múltiplas unidades no mesmo edifício.

Exemplo Completo

{
  name = 'Edifício Downtown',
  slogan = "Moderno e Central",
  coords = vector3(-773.34, 313.1, 85.7),
  price = 300000,
  isModInterior = true,
  interior = 'shell_apartment1',
  image = "https://example.com/apartment.png",
  needsIptu = true,
  type = 'apartment',
  maxResidents = 5,
  maxApartments = 20,
  garagePrice = 30000
}

Parâmetro Adicional

Configuração de Casa Nativa

Exemplo Completo

{
  name = 'Casa Underground',
  slogan = "Interior Nativo",
  coords = vector3(1381.98, -1544.94, 57.1),
  price = 250000,
  isModInterior = false,
  interiorCoords = vector3(-141.19, -620.91, 168.82),
  exitCoords = vector3(-142.0, -621.01, 168.94),
  chestCoords = vector3(-129.07, -636.27, 168.82),
  spawnHeading = 180.0,
  image = "https://example.com/underground.png",
  needsIptu = true,
  type = 'house',
  maxResidents = 8,
  garagePrice = 40000
}

Parâmetros Específicos

Como Pegar as Coordenadas

Para Interiores Nativos

Encontre o interior nativo

Procure listas de interiores do GTA V online (Franklin's House, Trevor's Trailer, etc.)

Teleporte-se para o interior

Use comandos de admin para teleportar ou procure a entrada natural no mapa

Use comandos in-game

Posicione-se na porta de saída: /getcoords

Posicione-se onde será o baú: /getcoords

Copie as coordenadas no formato vector3(x, y, z)

Para Interiores MOD

Teste o interior

/testinterior nome_do_shell

Pegue os offsets

Posicione-se em pontos importantes (porta, baú, etc)

Use o comando:

/getoffset

O sistema mostra o offset relativo para configurar no config/interiors.lua

Dicas e Boas Práticas

Nomes Únicos: Certifique-se de que cada propriedade tenha um nome único. O sistema usa o nome como identificador.

Imagens: Use URLs de CDN para melhor performance. Evite hospedar imagens localmente.

Preços: Considere o balanceamento econômico do servidor ao definir preços. IPTU é calculado como porcentagem do preço da casa (padrão: 15%).

Apartamentos: Ao usar type = 'apartment', o sistema gerencia automaticamente os números dos apartamentos. Não use o mesmo nome de edifício em múltiplas configurações.

Checklist de Configuração

Antes de adicionar uma nova casa, verifique:

  • Nome único e descritivo
  • Coordenadas da entrada testadas
  • Preço balanceado com economia do servidor
  • Tipo correto (house ou apartment)
  • Se for MOD: interior configurado em interiors.lua
  • Se for nativo: todas as coordenadas absolutas definidas
  • Imagem(ns) acessível(is) via URL
  • Testado in-game antes de liberar para jogadores

Exemplos Completos

{
  name = 'Villa Del Sol',
  slogan = "Luxo à beira-mar",
  coords = vector3(-1290.0, 455.0, 97.0),
  price = 1500000,
  isModInterior = true,
  interior = 'shell_trevor',
  images = {
    "https://example.com/villa1.png",
    "https://example.com/villa2.png",
    "https://example.com/villa3.png"
  },
  description = "Vila de luxo com vista panorâmica do oceano, piscina infinita e acabamento premium.",
  needsIptu = true,
  type = 'house',
  maxResidents = 15,
  garagePrice = 100000
}
{
  name = 'Bunker Secreto',
  slogan = "Privacidade total",
  coords = vector3(2050.0, 2950.0, 47.0),
  price = 800000,
  isModInterior = false,
  interiorCoords = vector3(1259.0, -2564.0, 42.0),
  exitCoords = vector3(1260.5, -2566.0, 42.8),
  chestCoords = vector3(1255.0, -2560.0, 42.8),
  spawnHeading = 90.0,
  image = "https://example.com/bunker.png",
  needsIptu = false,
  type = 'house',
  maxResidents = 5,
  garagePrice = 60000
}