Sistema de Músicas
Configure o painel de música, a loja de som, os objetos instaláveis nos veículos, os planos de playlists e o uso de JBL portátil.
Antes de instalar
Se você está começando agora, siga esta ordem. Ela evita a maior parte dos erros de ativação, permissão e dependência.
1. Proteção pronta
Instale o módulo MTAX:SA, cadastre o IP e coloque sua KEY no
Config.lua.
2. Pasta correta
Mantenha o resource com o nome esperado:
[TS]Spotify.
3. Dependências ligadas
Inicie inventário, notificação, blur, banco ou utilitários citados nesta página antes do produto.
4. Debug limpo
Reinicie o resource e confira o console. Se aparecer erro, corrija antes de liberar aos jogadores.
Permissão do resource
Se o mod precisar de permissão no ACL, adicione o resource ao grupo correto usando o nome exato da pasta. Para este produto, a referência é
resource.[TS]Spotify.
Objeto ACL do resource
resource.[TS]Spotify
Este produto usa comunicação externa
Libere também
function.fetchRemote no ACL do servidor. Sem essa permissão, a validação pode falhar mesmo com a KEY correta.
Como ler os códigos nesta página
Config.lua
Arquivo principal onde você altera KEY, permissões, comandos, valores, cores, posições e integrações.
Blocos grandes
Servem para localizar a parte correta no arquivo. Não cole o bloco inteiro por cima do seu arquivo sem revisar.
Trechos curtos
Podem ser comandos, exports ou exemplos de ACL. Copie apenas quando a legenda disser que é para usar.
Primeiros passos
Abra o arquivo [TS]Spotify/Config.lua. Comece pela licença, pelas permissões e pelo idioma. Reinicie o resource depois de salvar.
Proteja sua licençaInforme sua chave em
ConfigLicense.license, mas nunca publique o valor em prints, tickets ou documentação.Licença e idioma
ConfigLicense = {
license = "SUA KEY"
}
config.traducoes.idiomaSelecionado = "pt-BR"Use
pt-BR, en-US ou es-ES.Acesso e interface
Opções principais
- aclMusicPanel
- ACLS autorizadas a abrir o painel de música.
- aclSoundStore
- ACLS autorizadas a comprar caixas, cornetas e acessórios.
- markerColor
- Cor RGBA dos markers da loja.
- showBlip / blipIcon
- Exibe ou oculta o ícone da loja no radar.
- interfaceColor
- Cor RGB principal do painel.
- keyOpenMusic
- Tecla de abertura do painel.
Permissões e aparência
config = {
aclMusicPanel = {'Everyone', 'Console'},
aclSoundStore = {'Everyone', 'Console'},
markerColor = {0, 114, 255, 0},
showBlip = true,
blipIcon = 63,
interfaceColor = {239, 72, 5},
keyOpenMusic = 'F6',
}CompatibilidadeO bloco
config.interface existe para compatibilidade com versões anteriores. Mantenha color e bindOpen coerentes com as opções principais.Loja e estacionamento
A loja pode ser aberta por markers físicos. Cada estacionamento usa quatro vértices, que formam a área onde o veículo será posicionado para a compra.
Opções da loja
- enableStoreMarkers
- Cria ou remove as entradas físicas da loja.
- markers
- Lista de coordenadas X, Y e Z das entradas.
- parking
- Áreas retangulares de estacionamento, com tamanho e cores.
- position
- Posição da sala de testes.
- dimensionPool
- Dimensões disponíveis para separar jogadores simultâneos.
- useFadeEffect
- Ativa a transição de tela ao entrar e sair.
Entrada física e sala de testes
enableStoreMarkers = true,
markers = {
{2110.148, 2671.131, 9.838},
{1638.571, -1525.947, 12.608},
},
position = {1149.235, -1399.834, 1605.5},
dimensionPool = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},Objetos, áudio e LEDs
Limites configuráveis
- defaultObjectOffset
- Posição inicial de um objeto ao ser instalado no veículo.
- minScale / maxScale
- Escala mínima e máxima permitida.
- maxDistance / minDistance
- Distâncias de propagação do áudio.
- vibrationSpeed / vibrationDelay / powerFactor
- Resposta visual dos objetos que vibram com a música.
- MDPM
- IDs dos objetos que acompanham a batida.
- leds
- Modelos, textura RGB e efeito opcional de pisca-pisca.
LEDs rítmicos
leds = {
enabled = true,
models = {1131, 1658},
textureName = "rgb",
blinking = {
enabled = true,
interval = 500,
intensity = 0.3,
targets = {3000},
},
},Texturas dos shadersAo cadastrar shaders por modelo, os nomes informados em
shaderTextures precisam existir dentro do TXD do objeto.Produtos, planos e JBL
A tabela products agrupa a loja por categorias. Cada item pode declarar nome, preço, modelo, imagens e descrição. Vibração e shaders são opcionais.
Formato de produto
products = {
['Caixas'] = {
{
name = 'Nome do produto',
price = 2500,
model = 3000,
image = 'files/images/item.png',
image2 = 'files/images/item_grande.png',
description = 'Descrição curta',
vibrate = true,
},
},
}Planos e JBL
- basic.benefits
- Limites gratuitos de playlists e músicas por playlist.
- premium.value
- Preço do plano premium.
- premium.duration
- Duração do premium em dias.
- premium.benefits
- Limites ampliados do plano premium.
- jbl.freeAccessACLs
- ACLS que usam JBL sem premium.
Exports disponíveis
Declaradas no meta.xmlO
meta.xml deste resource disponibiliza duas exports server-side para salvar e restaurar objetos de som vinculados ao veículo.Ler a configuração instalada
local sounds = exports['[TS]Spotify']:getVehicleSounds(vehicle)Restaurar uma configuração
local sounds = {
{
model = 3000,
itemName = 'Caixa de som',
offsetElement = {0, -1.5, 0.5, 0, 0, 0},
scaleElement = 1.0,
},
}
exports['[TS]Spotify']:setVehicleSounds(vehicle, sounds)Formato esperado
setVehicleSounds recebe o veículo e uma lista. Cada item precisa de model, offsetElement com posição e rotação, e scaleElement. O campo itemName é recomendado.