Definições de jogo: preços, limites, teclas, comportamento das apps. Partilhado com os clientes
config/bridge.lua
Que sistema externo usar em cada categoria
config/server.lua
Segredos apenas do servidor (chave de upload). Nunca é enviado aos clientes
config/apps.lua
Catálogo de apps do ecrã inicial e propriedade dos domínios da API
config/widgets.lua
Catálogo de widgets do ecrã inicial
config/pescabichos*.lua
Dados do jogo Pescabichos: espécies, zonas de aparecimento, ataques, ginásios, progressão
locales/*.json
Traduções
A maioria das definições do dia a dia (papéis de parede, cores de destaque, bateria, acesso às apps, preços, pontos de carregamento, lojas, valet) está no painel de administração (/telefonoadmin) e fica guardada na base de dados, por isso mudam sem reiniciar. Os valores de config/config.lua para essas definições são apenas os valores por omissão de uma instalação nova.
config/config.lua é enviado a todos os clientes. Nunca coloques segredos aí: usa config/server.lua ou um convar.
Chave de API do Fivemanage usada pelo bridge de Uploader por omissão. É preferível usar o convar a colar a chave no ficheiro
Geral
Opção
Por omissão
Descrição
Config.Debug
convar ogphone_debug
Regista na consola cada RPC. Mantém desativado em produção
Config.EsxIdentifier
nil
Apenas ESX. Campo do xPlayer que contém o identificador da personagem em servidores multipersonagem. Deixa em nil em ESX de uma só personagem
Config.Carrier
'OGN MOVIL'
Nome do operador mostrado na barra de estado
Config.Currency
'$'
Símbolo da moeda usado por faturas, multas e notificações
Item
Opção
Por omissão
Descrição
Config.Item.Require
true
O item é obrigatório para abrir o telemóvel
Config.Item.Unique
true
Cada telemóvel é um item distinto com os seus próprios metadados
Config.Item.Name
'ognphone'
Nome do item no inventário
Config.Item.MetaNumber
'ognPhoneNumber'
Chave de metadados do número de telemóvel
Config.Item.MetaFormatted
'ognFormattedNumber'
Chave de metadados do número formatado
Config.Item.MetaName
'ognPhoneName'
Chave de metadados do nome do dispositivo
Config.Item.MetaId
'ognPhoneId'
Chave de metadados do id do registo do telemóvel. Indica qual dos dispositivos que mostram um número é o verdadeiro. É escrita automaticamente nos itens antigos na primeira vez que são abertos
Config.Item.Owner
'person'
A quem pertencem os dados: 'person' (a personagem) ou 'item' (o dispositivo). Controla-se em direto a partir do painel de administração; isto é apenas o valor por omissão
Números de telemóvel
Opção
Por omissão
Descrição
Config.PhoneNumber.Format
'{2}-{4}'
Formato de apresentação. Os números são guardados apenas como dígitos
Config.PhoneNumber.Length
4
Dígitos depois do prefixo
Config.PhoneNumber.Prefixes
{ '55', '60', '62', '68', '70' }
Prefixos atribuídos aos números novos
Números personalizados
Um serviço VIP: o jogador pede um número nas Definições e um administrador aprova-o ou recusa-o a partir do painel. O dinheiro é cobrado na aprovação, não no pedido.
Opção
Por omissão
Descrição
Config.Numbers.Enabled
true
Ativa os pedidos de número personalizado
Config.Numbers.Price
25000
Preço. Com 0 é grátis
Config.Numbers.KeepPrefix
true
O número pedido tem de começar por um dos prefixos configurados
Comando para abrir ou fechar o telemóvel. false desativa-o
Config.Keybind
'F1'
Tecla por omissão. Os jogadores podem reatribuí-la nas teclas de atalho do FiveM
Config.CloseOnDeath
true
Fecha o telemóvel quando o jogador morre
Config.CloseWhenSwimming
true
Fecha o telemóvel enquanto se nada
Config.AllowInVehicle
true
Permite usar o telemóvel dentro de veículos
Animação e prop
Opção
Por omissão
Descrição
Config.Animation.Enabled
true
Reproduz a animação do telemóvel
Config.Animation.Prop
prop_amb_phone
Modelo do prop
Config.Animation.PropBone
28422
Osso ao qual o prop é preso
Config.Animation.PropOffset
vector3(0.0, 0.0, 0.0)
Deslocamento do prop
Config.Animation.PropRotation
vector3(0.0, 0.0, 0.0)
Rotação do prop
Notificações
O que os jogadores veem quando chega algo com o telemóvel fechado. O telemóvel espreita pela borda inferior com a sua moldura, o papel de parede e o relógio. O conteúdo fica oculto quando o jogador desativou as pré-visualizações ou está em modo streamer.
Opção
Por omissão
Descrição
Config.Notifications.Outside
true
Mostra o telemóvel a espreitar. Com false só toca um som
Config.Notifications.Side
'right'
'right', 'center' ou 'left'
Config.Notifications.Seconds
6
Tempo no ecrã
Config.Notifications.Max
3
Notificações empilhadas ao mesmo tempo
Config.Notifications.AutoWake
true
Liga o telemóvel de forma invisível quando o jogador aparece a transportar um, para que as chamadas e as mensagens lhe cheguem antes de o abrir
Config.Notifications.WakeEvery
20
Segundos entre verificações de se transporta um telemóvel
Notificações do servidor
As notificações do origen_notify também podem aparecer no telemóvel. Não ficam guardadas no centro de notificações.
Opção
Por omissão
Descrição
Config.ServerNotifications.Enabled
false
Mostra as notificações do servidor no telemóvel. As opções abaixo só se aplicam quando está ativado
Config.ServerNotifications.Replace
true
Com true a notificação passa para o telemóvel; com false é mostrada nos dois sítios
Config.ServerNotifications.Sound
false
Reproduz o toque de alerta do telemóvel
Config.ServerNotifications.Types
nil
Tipos a mostrar. nil ou vazio mostra todos. Exemplo: { error = true, primary = true }
Config.ServerNotifications.Cooldown
1500
Um texto idêntico dentro destes milissegundos não volta a ser mostrado
Logs
Envia a atividade do telemóvel para um webhook do Discord. Nunca se enviam o conteúdo das mensagens, as fotografias nem os dados privados.
Opção
Por omissão
Descrição
Config.Logs.Webhook
''
URL do webhook do Discord. Vazio desativa os logs
Config.Logs.Name
'ORIGEN'
Nome do remetente do webhook
lua
Config.Logs.What = {
admin = true, -- changes made from the admin panel
numbers = true, -- custom number requests and their outcome
recovery = true, -- recovered lines
transfers = true, -- money transfers
blackmarket = true, -- black market purchases
}
Armazenamento
Opção
Por omissão
Descrição
Config.Storage.Capacity
0
Capacidade em MB. 0 calcula-a a partir de Config.Uploader.MaxPhotos (recomendado)
Config.Storage.Slack
120
MB extra para conteúdo que não são fotografias quando a capacidade é calculada automaticamente
Números curtos que encaminham uma chamada para um trabalho de serviço.
Vídeo (alternativa por fotogramas)
Usado apenas quando a ligação direta WebRTC não está disponível.
Opção
Por omissão
Descrição
Config.Calls.Video.Fps
12
Limite máximo de fotogramas por segundo
Config.Calls.Video.Width
240
Largura da imagem, em píxeis
Config.Calls.Video.Quality
0.5
Qualidade JPEG inicial (0 a 1)
Config.Calls.Video.KBPorSegundo
96
Upload máximo por lado através da ligação do jogo, em KB/s
Config.Calls.Video.MaxConcurrent
8
Videochamadas a enviar imagens ao mesmo tempo. Acima disto, as chamadas ficam só com áudio
Aumentar KBPorSegundo é a única definição arriscada deste bloco. Os fotogramas viajam pela mesma ligação que o jogo; demasiado upload faz com que os jogadores sejam expulsos por timeout.
Caixa de voz
Opção
Por omissão
Descrição
Config.Voicemail.Window
120
Segundos após uma chamada sem resposta durante os quais se pode deixar uma mensagem
Config.Voicemail.MaxSeconds
30
Duração máxima da gravação
WebRTC
Opção
Por omissão
Descrição
Config.WebRTC.Enabled
true
Envia o vídeo ponto a ponto. Quando está desativado ou a ligação falha, recorre a fotogramas retransmitidos pelo servidor
Config.WebRTC.Turn
'cloudflare'
'cloudflare' pede credenciais TURN ao Cloudflare Realtime (requer os convars ogphone_turn_token_id e ogphone_turn_api_token). false usa apenas STUN
Config.WebRTC.TurnTtl
86400
Tempo de vida das credenciais pedidas, em segundos
Config.WebRTC.Timeout
6
Segundos de espera pela ligação direta antes de recorrer à alternativa
Config.WebRTC.MaxKbit
1000
Bitrate máximo de upload para vídeo direto, em kbit/s
Número remetente das mensagens do servidor sem remetente
Config.Messages.EditWindow
900
Segundos durante os quais uma mensagem pode ser editada
Config.Messages.PageSize
30
Mensagens por página ao fazer scroll
Config.Messages.MaxGroupMembers
32
Membros por conversa de grupo
Config.Messages.AllowDelete
true
Permite apagar mensagens para todos
Config.Messages.DeleteWindow
3600
Segundos durante os quais uma mensagem pode ser apagada para todos
Stickers
Packs incluídos no servidor, carregados na base de dados no arranque segundo o slug. Os URLs podem ser externos ou do próprio recurso (nui://origen_phone/ui/...). Os packs dos jogadores criam-se a partir da galeria.
Quem pode conduzir. jobs são trabalhos do framework, businesses são nomes ou tipos de negócio do bridge Business. Basta cumprir um dos dois. false deixa conduzir qualquer pessoa. É verificado sempre, não só no registo
base
Tarifa base
perKm
Tarifa por quilómetro
Corridas de táxi com NPC
Quando há taxistas livres e poucos pedidos, são geradas corridas de passageiros NPC. O servidor valida a posição do condutor na recolha e no destino e rejeita tempos de chegada impossíveis.
Campo
Por omissão
Descrição
enabled
true
Ativa as corridas com NPC
every
45
Segundos entre verificações de geração
chance
0.6
Probabilidade de haver uma corrida em cada verificação (0 a 1)
perDriver
1
Máximo de corridas NPC pendentes por condutor livre
maxPending
4
Máximo de corridas NPC pendentes no total
nearDriver
2500
A recolha fica a esta distância de um condutor livre, em metros
minTrip / maxTrip
600 / 4500
Intervalo de comprimento do trajeto, em metros
radius
80.0
Raio em torno do ponto onde o táxi tem de estar
maxSpeed
30
Velocidade média máxima plausível, em m/s
fareFactor
1.0
Tarifa NPC relativamente à tarifa normal
models
lista
Modelos de ped usados como passageiros
names
lista
Nomes apresentados dos passageiros
notes
lista
Notas que o passageiro envia. Cadeias vazias significam sem nota
places
lista
Pontos de recolha e de destino { x, y, z, label }. O passageiro aparece no passeio mais próximo
Mandao (entregas)
Opção
Por omissão
Descrição
Config.Delivery.Base
200
Tarifa base de entrega
Config.Delivery.PerKm
60
Tarifa por quilómetro
Config.Delivery.CourierCut
0.85
Parte que fica com o estafeta
Config.Delivery.Timeout
20
Minutos que um pedido não aceite fica à espera
Config.Delivery.Deadline
10
Minutos para entregar um pedido aceite. Quando expira, a mercadoria é entregue na mesma e o estafeta recebe uma falta
Config.Delivery.StrikeBans
{ 10, 30, 60 }
Minutos de bloqueio por falta. A última entrada repete-se
Config.Delivery.StrikeReset
120
Minutos sem falhas antes de as faltas serem esquecidas
Config.Delivery.MinDistance
150
Distância mínima de entrega, em metros
Config.Delivery.Reach
8.0
Distância necessária para recolher ou entregar, em metros
Config.Delivery.MaxItems
8
Itens distintos por entrega entre jogadores
Config.Delivery.Employer
false
Quem pode entregar. Mesmo formato que Config.Rides.Taxi.employer
Config.Delivery.HandleBusinessOrders
true
Os pedidos de negócios esperam por um estafeta em vez de chegarem automaticamente
Config.Delivery.BusinessFee
450
O que o negócio paga ao estafeta por entregar o seu pedido
lua
Config.Delivery.Depots = {
{ label = 'Almacen de mercancia · Muelle 1', x = 95.67, y = -1746.8, z = 28.7, h = 140.88 },
{ label = 'Almacen de mercancia · Muelle 2', x = 99.68, y = -1749.3, z = 28.71, h = 139.86 },
{ label = 'Almacen de mercancia · Muelle 3', x = 103.73, y = -1751.94, z = 28.72, h = 139.62 },
}
Onde se recolhe a mercadoria dos pedidos de negócios. Vazio significa recolha no próprio negócio.
A chave é guardada e comparada; o valor é a chave de locale que se mostra.
Banco, faturas e multas
Opção
Por omissão
Descrição
Config.Bank.MaxTransfer
500000
Limite por transferência a partir do telemóvel
Config.Bank.MaxDaily
2000000
Total que se pode movimentar por dia. 0 remove o limite
Config.Bank.MaxWeekly
8000000
Total que se pode movimentar por semana. 0 remove o limite
Config.FineAccount
''
Conta que recebe os pagamentos de multas. Vazio cobra ao jogador sem depositar em lado nenhum
Cripto
Desativado por omissão porque obtém preços em direto da internet. Para o ativar, define Config.Crypto.Enabled = true, adiciona { id = 'crypto', label = 'Monedas', slot = 27, default = true } a Apps e crypto = 'crypto' a AppDomains em config/apps.lua.
Opção
Por omissão
Descrição
Config.Crypto.Enabled
false
Ativa a negociação de criptomoedas
Config.Crypto.Api
endpoint público do CoinGecko
Fonte de preços. Não precisa de chave de API
Config.Crypto.Currency
'usd'
Moeda dos preços
Config.Crypto.Refresh
300
Segundos entre consultas de preços (partilhado por todo o servidor)
Quem pode escrever artigos a partir do telemóvel. Basta cumprir um de businesses ou jobs. Define Publishers como false para publicar apenas através do export PublishNews. MaxPerDay é o limite por telemóvel; 0 remove-o.
Serviços de emergência
Os alertas são enviados ao bridge de Dispatch com a posição de quem liga.
Retira uma app desta lista para a desativar para todos. Para a restringir a alguns jogadores (civis, uma gangue, um trabalho), usa antes o painel de administração.
AppDomains associa cada domínio da API do servidor à app a que pertence. Quando um jogador perde o acesso a uma app, os métodos do servidor dessa app deixam de lhe responder, pelo que o acesso é aplicado do lado do servidor.
Preenchido por outro recurso com o export SetWidgetData
As permissões dos widgets são geridas no painel de administração.
Pescabichos
Dados de jogo da app de captura de criaturas. Os nomes e textos são chaves de locale (pb_sp_12, pb_sp_12_desc, pb_atk_12_1); para mudar o nome de uma criatura, edita essa chave em cada locales/*.json. Um valor que não seja uma chave é mostrado tal como está.
Ficheiro
O que contém
config/pescabichos.lua
Tipos, raridades, zonas de aparecimento e espécies de 1 a 50
Combates, tabela de tipos, movimentos por tipo, ginásios, raides, evolução
config/pescabichos_ataques.lua
Ataques de cada criatura
config/pescabichos_progreso.lua
Nível do jogador, desbloqueios e loja
Campos de espécie
Campo
Descrição
id
Número de coleção (1 a 200). É também o nome da imagem: ui/images/pescabichos/<id>.webp
nombre
Chave de locale do nome
tipos
Um ou dois de asfalto, neon, marea, polvo, pino, chatarra, brasa, niebla
rareza
comun, poco, rara, epica ou legendaria
zonas
Onde aparece. Vazio é em qualquer sítio em terra. 'mar' é água a sério
peso
Peso de aparecimento opcional. Por omissão, o da sua raridade
stock
Máximo opcional em todo o servidor
red
Rede especial opcional necessária para a capturar
dificultad
Dificuldade de captura opcional (1 a 5)
hora
nil sempre, 'noche' (21-6) ou 'dia' (7-20)
familia / fase
Linha evolutiva e etapa (1, 2 ou 3)
pc
Poder mínimo e máximo com que aparece
texto
Chave de locale da sua entrada na dex
Raridades
lua
Pescabichos.Rarezas = {
comun = { nombre = 'pb_rarity_comun', peso = 100, captura = 0.55, huye = 0.08, xp = 100 },
poco = { nombre = 'pb_rarity_poco', peso = 38, captura = 0.35, huye = 0.12, xp = 200 },
rara = { nombre = 'pb_rarity_rara', peso = 12, captura = 0.20, huye = 0.18, xp = 500 },
epica = { nombre = 'pb_rarity_epica', peso = 3, captura = 0.09, huye = 0.25, xp = 1500 },
legendaria = { nombre = 'pb_rarity_legendaria', peso = 1, captura = 0.04, huye = 0.35, xp = 4000 },
}
Campo
Descrição
peso
Peso de aparecimento face às outras raridades
captura
Probabilidade base de captura
huye
Probabilidade de fugir após uma tentativa falhada
xp
XP concedido ao capturá-la
Zonas
As zonas de terra são retângulos do mapa { min x, min y, max x, max y }, verificados por ordem (primeiro as zonas pequenas). Fora de todas elas, a zona é campo.
lua
Pescabichos.Zonas = {
{ id = 'alamo', nombre = 'pb_area_1', caja = { 300, 3850, 2050, 4600 } },
{ id = 'industrial', nombre = 'pb_area_2', caja = { -350, -3450, 1500, -2350 } },
-- ...
}