FAQ
Geral
O script e compativel com meu framework?
HZ-Weather suporta QBCore, ESX, QBX e o modo Standalone. O framework e detectado automaticamente na inicializacao — nenhuma configuracao manual necessaria.
O script funciona com OneSync?
Sim. HZ-Weather e totalmente compativel com OneSync e OneSync Infinity. A sincronizacao de clima utiliza GlobalState e state bags para desempenho otimo.
Posso usa-lo com outro script de clima?
Nao. Voce deve desativar todos os outros scripts de clima antes de usar o HZ-Weather. Ter dois scripts de clima ativos causara conflitos visuais e de sincronizacao.
Scripts a serem parados: vSync, qb-weathersync, cd_easytime, esx_weather, etc.
HZ-Weather substitui automaticamente qb-weathersync e cd_easytime via diretiva provide e expoe seus exports para retrocompatibilidade.
O script consome muitos recursos?
Nao. HZ-Weather e otimizado para impacto minimo: 0.00 ms em repouso no lado do cliente, ~0.08 ms durante eventos ativos (tornado, tsunami). O impacto no lado do servidor e desprezivel.
Quais sao as dependencias?
Obrigatorias: Opcional: xsound para as sirenes do tsunami.Nenhum framework e necessario — o script funciona em standalone.
Instalacao
Erro "Asset not found" na inicializacao
Verifique que:
- A pasta se chama exatamente
hz_weather - O script esta no seu diretorio
resources/(ex:resources/[standalone]/hz_weather/) - Sua licenca esta ativa em keymaster.fivem.net
- Voce esta usando a mesma conta FiveM vinculada a sua compra Tebex
Erro "Framework not detected"
Isso e normal se voce esta em standalone (sem framework). O script usara o modo standalone.
Se voce tem um framework, certifique-se de que es_extended ou qb-core esta com ensure antes do hz_weather no seu server.cfg.
As tabelas do banco de dados nao sao criadas
Hz-Weather não cria suas tabelas sozinho: importe o sql/install.sql no seu banco de dados antes da primeira inicialização. Sem elas, o console mostra Please import sql/install.sql into your database. Se a importação falhar:
- Verifique se o
oxmysqlestá rodando e configurado corretamente - Verifique se seu usuário de banco de dados tem permissões CREATE TABLE
- Importe o arquivo novamente: ele pode ser importado várias vezes sem erro
Como atualizar o script?
- Baixe a versao mais recente no Keymaster
- Faca backup da sua pasta
config/ - Substitua todos os arquivos exceto
config/ - Consulte o Changelog para novos parametros de configuracao
- Reinicie o recurso:
ensure hz_weather
Painel de administracao
O painel admin nao abre
- Abra com
/weather, ou com/hzpanele depois o módulo Clima - Verifique se você tem acesso de admin: o ACE
admin(Config.AdminPermission), o grupo admin do seu framework, o ACEweather.adminou um papel do hz_lib com o direito manage sobrehz_weather
add_ace group.admin weather.admin allow
- Quando o acesso é recusado, o console do servidor indica a permissão que falta
- Tente reiniciar o recurso:
ensure hz_weather
O painel abre mas nao exibe nenhum dado
- Certifique-se de que o banco de dados esta acessivel (verifique o status do
oxmysql) - Verifique o console F8 para erros JavaScript
- Reinicie o recurso para forcar uma sincronizacao dos dados
Clima
O clima nao muda automaticamente
Verifique estes pontos:
Config.FreezeWeather = false, e o clima não está congelado no painel- Com as estações ativadas (padrão), o clima segue a
weatherSequenceda estação emconfig/seasons.lua(durações em minutos reais, de 35 a 100 min por entrada por padrão) - Com as estações desativadas,
Config.DynamicWeather = trueroda a lista deconfig/weather.lua(weatherCycletimer, 90 minutos por padrão) - Uma zona definida por um admin fica bloqueada até ser desbloqueada (ícone de cadeado no mapa do painel, ou
/weatherunlock <zone|all>) - Zonas com
ignoreSeason = true(Cayo Perico) mantêm o próprio clima
Verifique também se nenhum outro script de clima está rodando.
Como forcar neve permanente / Natal?
Opcao 1 — Painel de administracao: Abra o painel, selecione o clima XMAS e aplique a todas as zonas. Um clima definido por um admin fica bloqueado e sobrevive às reinicializações até você desbloqueá-lo (ícone de cadeado no mapa, ou/weatherunlock all).
Opcao 2 — Exports do servidor:
exports['hz_weather']:setZoneWeather('mont_josiah', 'XMAS')
Os nomes de zona são os de config/zones.lua. Uma zona definida assim não fica bloqueada: congele o clima no painel (ou Config.FreezeWeather = true) para que as estações não o mudem.
Opcao 3 — Sistema de estacoes:
Em config/seasons.lua, coloque XMAS na weatherSequence dos presets (por exemplo o do inverno, com startingSeason = 'winter').
Como desativar a neve completamente?
Com as estações ativadas (padrão), remova SNOW, SNOWLIGHT e BLIZZARD da weatherSequence do inverno em config/seasons.lua (as outras estações não têm neve).
Com as estações desativadas, defina decemberSnow = false em config/weather.lua e dê probability = 0 às sequências de nevasca e tempestade de neve (elas só rodam em dezembro).
As transicoes de zona estao muito abruptas
Aumente Config.ZoneTransitionDistance em config/config.lua. O valor padrao e 800.0 metros. Um valor mais alto cria uma zona de mesclagem mais ampla entre as zonas.
Voce tambem pode ativar Config.WeatherInfluence.enabled = true para que zonas vizinhas se misturem naturalmente.
Zonas
As zonas nao carregam ou nao sao detectadas
- Certifique-se de que o PolyZone esta iniciado antes do
hz_weathernoserver.cfg - Verifique o console do servidor para erros de banco de dados
- As zonas vêm de
config/zones.lua. A tabelahz_weather_zonessó contém as zonas salvas pelo editor do painel, e essas linhas têm prioridade sobre o arquivo (o console as lista na inicialização) - Tente criar uma zona pelo painel admin para testar
Como criar zonas personalizadas?
Opcao 1 — Arquivo de configuracao: Adicione zonas emconfig/zones.lua: um círculo (centro e raio) ou um polígono (pontos, minZ e maxZ), com uma prioridade.
Opcao 2 — Painel de administracao:
Abra o painel, vá na aba Zonas, desenhe um polígono ou um círculo e preencha os detalhes.
Opcao 3 — Export do servidor:
exports['hz_weather']:createZone({
name = 'ma_zone',
label = 'Minha Zona Personalizada',
center = vector3(x, y, z),
radius = 1500.0,
shape = 'circle',
priority = 1,
weather = 'CLEAR',
})
Estacoes & Temperatura
Como funcionam as estacoes?
Cada estacao define uma sequencia de clima (ex: Verao = EXTRASUNNY → CLEAR → CLOUDS → CLEAR) que cicla automaticamente, e sua própria curva de temperatura.
Tres modos de ciclo estao disponiveis (cycleMode em config/seasons.lua):
disabled— Controle manual apenas (via painel admin ou comandos)auto— Rotacao pelas 4 estacoes em um timer (cycleDuration, padrão: 120 minutos reais por estação)realtime— Faz corresponder os meses reais do calendario as estacoes
Como a temperatura e exibida?
A temperatura é exibida no HUD do script (Config.HUD), com o comando /temp e nos aplicativos de clima no celular (LB Phone / QS Smartphone). A unidade e configuravel em Config.TemperatureUnit — 'C' para Celsius ou 'F' para Fahrenheit.
A sincronizacao em tempo real segue meu fuso horario?
O modo realtime utiliza o horario do servidor (o relogio da sua maquina). Se seu servidor esta em UTC, as estacoes seguem o calendario UTC. Para ajustar, configure o fuso horario da maquina do seu servidor.
Desastres naturais
Os comandos tornado/tsunami nao funcionam
- Verifique se
Config.Tornado.Enabled = trueeConfig.Tsunami.Enabled = truena config - Você precisa de acesso de admin (veja Instalação)
- Comandos:
/tornado start,/tornado stop,/tsunami start,/tsunami stop
A fisica do tornado parece fraca
Ajuste as forcas em config/config.lua:
Config.Tornado.HorizontalPullForce— forca de atracao para o centroConfig.Tornado.VerticalForce— forca de elevacao verticalConfig.Tornado.TangentialForce— forca de rotacaoConfig.Tornado.ForceScale— multiplicador global
Valores mais altos = tornado mais destrutivo.
O nivel da agua do tsunami nao sobe
O tsunami utiliza LoadWaterFromPath — essa funcao nativa requer um caminho de agua valido. Verifique se o arquivo de dados de agua esta presente no recurso e se o servidor suporta essa funcionalidade nativa. A fase de alerta dura 120 segundos antes de a água subir (Config.Tsunami.WarningDuration).
Efeitos de gameplay
A tracao dos veiculos nao muda na chuva
A tração está desativada por padrão: defina Config.Effects.vehicleTraction.enabled = true na config. Os modificadores padrao sao: chuva 70%, neve 50%, nevasca 30% da aderencia normal.
As notificações de efeitos no jogador (frio/calor)
Essas notificações estão desativadas por padrão desde a v1.4.2. Para recebê-las, defina Config.Notifications.Temperature = true (e mantenha notifications = true em Config.Effects.playerEffects).
Os limites são coldThreshold (10 °C) e heatThreshold (30 °C) em Config.Effects.playerEffects. Uma margem fixa de 2 °C e uma espera de 2 minutos entre duas notificações evitam repetições quando a temperatura oscila em torno de um limite.
Como desativar um efeito especifico?
Cada efeito de gameplay tem seu proprio toggle em config/config.lua:
Config.Effects = {
vehicleTraction = { enabled = false },
reducedVisibility = { enabled = true },
playerEffects = { enabled = true },
speedReduction = { enabled = false },
}
Config.BlackoutEnabled = true
Defina enabled = false (ou Config.BlackoutEnabled = false) para desativar cada um.
Integracao com celular
Quais aplicativos estao disponiveis?
- LB Phone — Aplicativo de clima dedicado (gratuito, recurso separado)
- QS Smartphone V3 — Aplicativo de clima dedicado (gratuito, recurso separado)
- QS Smartphone V2 (Pro) — Versao legada (use a v1.x do app)
Por que o QS V3 requer uma modificacao manual?
O QS Smartphone V3 utiliza um sistema de aplicativo de clima nativo integrado. O app HZ-Weather precisa substituir essa entrada nativa, o que requer uma modificacao de uma linha no arquivo de configuracao do QS Smartphone. Isso e uma limitacao da arquitetura do QS V3, nao do HZ-Weather.
Posso integrar o mapa de clima no meu proprio celular?
Sim. Use a pagina map.html autonoma via iframe:
<iframe src="https://cfx-nui-hz_weather/web/dist/map.html"
style="width:100%;height:100%;border:none" />
Ela exibe as zonas, clima, temperatura, vento e informacoes da estacao com atualizacao automatica.
