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 = falseQuando true, jogadores comuns não conseguem:
- Usar
/casase/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"
-- ...
}| Valor | Comportamento |
|---|---|
"money" | Aceita apenas dinheiro |
"coins" | Aceita apenas coins |
"both" | Mostra toggle para o jogador escolher |
| sem o campo | Usa 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
- No Discord, vá em Configurações do Canal > Integrações > Webhooks
- Crie um webhook e copie a URL
- 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
}
},