Denver Studio - Docs

Configurações Gerais

Guia completo das preferências e configurações do sistema DS-Homes

Configurações Gerais (Preferences)

Este guia explica todas as configurações disponíveis no arquivo config/preferences.lua.

IPTU

Sistema

Modo Admin Only

Bloqueia todo o sistema de casas para jogadores comuns. Útil para testes ou manutenção.

adminOnly = false

Quando true, jogadores comuns não conseguem:

  • Usar /casas e /casas2
  • Entrar em casas (tecla E)
  • Usar interfone (tecla H)
  • Ver os textos 3D nas portas das casas

Admins com a permissão admin.casas continuam usando tudo normalmente.

Admin

admin = {
  permission = "admin.casas",
}

A permissão do vRP necessária para acessar comandos de admin (/adminhome, /testinterior, /getoffset, /getcoords, /delhome).

Coins (Moeda Alternativa)

Permite que jogadores comprem casas, móveis e upgrades usando um item do inventário como moeda alternativa.

coins = {
  enabled = false,        -- ativa/desativa o sistema de coins
  itemName = "coin",      -- nome do item no inventário
  label = "Coins",        -- nome exibido na interface
},

Configuração por casa

Cada casa em homes.lua pode definir quais métodos de pagamento aceita:

{
  name = "Casa Luxo",
  price = 500000,
  paymentMethod = "both",   -- "money", "coins" ou "both"
  -- ...
}
ValorComportamento
"money"Aceita apenas dinheiro
"coins"Aceita apenas coins
"both"Mostra toggle para o jogador escolher
sem o campoUsa config global (se coins enabled = "both", senão "money")

Preço de coins separado

Cada casa pode ter um coinsPrice diferente do price em dinheiro:

{
  name = "Casa VIP",
  price = 500000,        -- preço em dinheiro
  coinsPrice = 300000,   -- preço em coins (se não definido, usa price)
  paymentMethod = "both",
}

Financiamento sempre usa dinheiro, independente da configuração de coins.

Upgrade de Baú

chestUpgrade = {
  pricePerKg = 1500,    -- preço por cada kg de espaço extra
  maxUpgradeKg = 500,   -- máximo de kg que pode expandir
  minUpgradeKg = 10,    -- mínimo de kg por upgrade
},

Aluguel

rental = {
  enabled = true,               -- ativa/desativa aluguel
  minRentPrice = 5000,          -- preço mínimo
  maxRentPrice = 500000,        -- preço máximo
  minDurationDays = 1,          -- duração mínima (dias)
  maxDurationDays = 30,         -- duração máxima (dias)
  gracePeriodHours = 24,        -- tolerância após vencer pagamento
  maxMissedPayments = 2,        -- pagamentos atrasados antes de cancelar
  ownerTaxPercentage = 0.05,    -- taxa cobrada do dono (5%)
},

Financiamento

financing = {
  enabled = true,
  downPaymentPercentage = 0.30,   -- entrada obrigatória (30%)
  interestRate = 0.05,            -- juros (5%)
  maxInstallments = 12,           -- máximo de parcelas
  minInstallments = 3,            -- mínimo de parcelas
  installmentIntervalDays = 15,   -- intervalo entre parcelas (dias)
  gracePeriodHours = 48,          -- tolerância (horas)
  maxMissedPayments = 3,          -- parcelas atrasadas antes de perder a casa
  earlyPayoffDiscount = 0.02,     -- desconto ao quitar antecipado (2%)
},

Financiamento sempre usa dinheiro, mesmo com coins habilitado.

Notificações

notifications = {
  enabled = true,              -- ativa/desativa
  entryAlert = true,           -- avisa o dono quando alguém entra
  iptuWarningDays = 3,         -- dias antes do vencimento para avisar
  robberyAlert = true,         -- avisa quando tentam roubar
  maxStoredNotifications = 50, -- máximo de notificações guardadas
},

Garagem

Webhooks Discord (Logs)

Envia logs de todas as ações importantes para canais do Discord via webhook.

webhooks = {
  enabled = true,        -- ativa/desativa todos os logs
  default = "",          -- webhook padrão (fallback)
  properties = "",       -- compra, venda, transferência, roubo, remoção por IPTU
  chest = "",            -- guardar/retirar itens, upgrade de baú
  residents = "",        -- adicionar/remover moradores, permissões
  furniture = "",        -- compra, posicionamento, remoção de móveis
  marketplace = "",      -- anúncios, compras, saques
  financial = "",        -- IPTU, aluguel, financiamento
  admin = "",            -- ações administrativas
  interior = "",         -- troca de interior
  garage = "",           -- compra de garagem
},

Categorias sem webhook configurado usam o default. Se default também estiver vazio, o log é ignorado.

Como configurar

  1. No Discord, vá em Configurações do Canal > Integrações > Webhooks
  2. Crie um webhook e copie a URL
  3. Cole no campo correspondente

Exemplo com tudo no mesmo canal:

webhooks = {
  enabled = true,
  default = "https://discord.com/api/webhooks/SEU_WEBHOOK",
},

Exemplo separando por canal:

webhooks = {
  enabled = true,
  properties = "https://discord.com/api/webhooks/WEBHOOK_CASAS",
  admin = "https://discord.com/api/webhooks/WEBHOOK_ADMIN",
  chest = "https://discord.com/api/webhooks/WEBHOOK_BAUS",
},

Roubo

Veja a documentação completa do sistema de roubo na página Sistema de Roubo.

robbery = {
  enabled = true,
  robberyTime = 30000,             -- tempo do roubo (ms)
  cooldownTime = 3600000,          -- cooldown por local (ms)
  requiredItem = "lockpick",       -- item necessário
  policeAlertChance = 70,          -- chance de alertar polícia (%)
  policeAlertDuration = 300000,    -- duração do alerta no mapa (ms)
  minPoliceOnline = 2,             -- mínimo de policiais online
  policePermission = "policia.permissao",
  maxItemsPerRobbery = 3,

  robbableItems = {
    { item = "dinheirosujo", min = 1000, max = 5000, chance = 80 },
    { item = "dolares",      min = 500,  max = 2000, chance = 60 },
    -- adicione mais itens
  },

  blipConfig = {
    sprite = 161, color = 1, scale = 1.2, duration = 300000
  }
},