BUPA Sync Status
BUPA Sync Status
BUPA Sync Status é um sistema de anotação corporal para roleplay médico. Um jogador digita /status e um painel se abre sobre o seu personagem real — uma câmera scriptada enquadra o ped ao vivo com suas roupas, cabelo, tatuagens e adereços, e marcadores de região clicáveis são projetados a partir dos ossos do ped a varje quadro, para que fiquem colados ao corpo conforme ele gira.
Clicar em uma região permite que você escreva uma nota curta. Essa nota é então exibida no mundo, flutuando exatamente nessa parte do seu corpo, para cada jogador próximo de você. Paramédicos fazem o mesmo em um paciente com /status <id>: eles documentam a lesão, escolhem quanto tempo a documentação dura, e a nota é travada para que o paciente não possa removê-la antes que expire.
Abra o painel em você mesmo com /status. Médicos examinam um paciente com /status 12. /statusclear limpa tudo o que você tem permissão para remover.
Key features
- Live character preview — sem manequim e sem desenho de boneca. A câmera enquadra o próprio ped do jogador,
AutoFrameo mede da cabeça aos pés para que cada modelo seja enquadrado corretamente, e os marcadores ficam em coordenadas ósseas reais. - 16 body regions — cabeça, pescoço, peito, estômago, braços, antebraços, mãos, coxas, joelhos e pés, cada um vinculado a um osso de ped do GTA e cada um removível na config.
- Floating in-world text — outros jogadores leem a anotação no próprio corpo, colorida por gravidade, sem rede por quadro: as anotações viajam através de um statebag de jogador.
- Medic documentation — empregos configuráveis (ou um ACE) podem anotar outro jogador dentro de uma distância definida, escolher uma duração de uma lista predefinida e ter essa nota travada contra remoção.
- Automatic expiry — o servidor varre anotações expiradas em um temporizador e elas desaparecem em todos os lugares sem limpeza da sua parte.
- Types and severities — lesão / bandagem / nota, menor / moderada / grave, ambos definidos como listas de configuração simples.
- Anti-abuse limits — um limite por personagem, uma anotação por região, um limite de comprimento de texto, um cooldown de escrita e uma verificação de distância em cada ação.
- Discord logging — embeds com código de cores para anotações adicionadas, removidas e limpas, com quem escreveu o quê, em quem, por quanto tempo.
- 10 languages através do sistema de localidade do
ox_lib, com o inglês como fallback.
Frameworks
O framework é detectado automaticamente por shared/bridge.lua — não há nada para configurar:
| Framework | Detected resource |
|---|---|
| QBox | qbx_core |
| QB-Core | qb-core |
| ESX | es_extended |
| Standalone | nenhum — usa o identificador license: como fallback |
O framework fornece apenas duas coisas: um ID estável por personagem usado como chave do banco de dados, e o nome e grau do cargo do jogador para a verificação de permissão médica.
How the data flows
- Uma gravação vai para o servidor através de um callback do
ox_lib. O cliente nunca é confiável — identidade, permissões, limites, duração e sanitização de texto são decididos no lado do servidor. - A anotação é armazenada no MySQL vinculada ao citizen ID do personagem.
- A lista completa do personagem é enviada para o statebag de jogador
bupaStatuses. - Cada cliente próximo lê esse statebag e desenha o texto no osso correspondente.
Dependencies
| Resource | Required | Purpose |
|---|---|---|
ox_lib |
Yes | Callbacks, notificações e o sistema de localidade |
oxmysql |
Yes | Armazenamento de anotações por personagem |
A tabela do banco de dados é criada automaticamente na primeira inicialização — não há SQL para importar.