Manual › FH VIRTUAL PAINEL › Planos VIP e itens exclusivos

Planos VIP e itens exclusivos

Como montar um plano: categorias, packs, itens fixos, herança e exclusividade — com o comportamento exato de cada campo.

Um arquivo por plano

Pasta PainelVip/Vips/. Todo .json da pasta vira um plano. De fábrica: VIPBasic.json, VIPMythical.json, VIPEpic.json (eles só são recriados se a pasta ficar sem nenhum JSON).

Cuidado ao renomear ou quebrar um plano: se um VipID que tem assinantes no db_vips.json sumir (arquivo apagado, JSON inválido ou ID trocado), o servidor remove esses assinantes do banco no start (guarda uma cópia em db_vips.json.N.backup). Valide o JSON antes de subir.

Campos do plano

CampoO que faz
VipIDIdentificador (vira minúsculas). É o Type da loja e a chave do db_vips.json. Único.
VipNomeNome exibido (retorno da compra, webhook).
VipHerdarIDHerda as categorias (VipItens) de outro plano. Packs, itens fixos e exclusivos não são herdados. Vazio = não herda. O plano herdado tem que existir.
VipPesoDesempate quando o jogador tem 2+ planos: só o de menor peso entrega os itens fixos (VipInventarioHidden). Fábrica: Basic 12, Mythical 11, Epic 10.
VipItensExclusivesType0 = sem exclusivos. 1 (ou 2) = os classnames de VipItensExclusivesHidden ficam exclusivos deste plano.
VipItensAs categorias para o jogador escolher (abaixo).
VipInventarioPacks — o jogador escolhe um.
VipInventarioHiddenItens sempre entregues, sem escolha.
VipItensExclusivesHiddenClassnames que só quem tem este plano pode carregar.
Jogador com vários planos ativos vê as opções de todos somadas (sem repetição).

Categorias (VipItens)

Só estas 13 chaves aparecem no painel — escreva exatamente assim:

ArmaPrimaria · ArmaSecundaria · ArmaBonus · Capacete · Olhos · Rosto · Blusas · Coletes · Luvas · Cinto · Calcas · Botas · Mochilas

"ArmaPrimaria": [
  {
    "Item": "SKS",
    "Attach": ["ImprovisedSuppressor", "HuntingOptic", "Ammo_762x39Tracer"],
    "ExtraNoInventario": ["AmmoBox_762x39Tracer_20Rnd", "AmmoBox_762x39Tracer_20Rnd"]
  }
]
CampoO que faz
ItemClassname da opção.
AttachAcoplados. Com ArmasPreCarregadasDoAttach, o primeiro pente/munição é carregado na arma. Bateria de mira pode ir aqui (o servidor encaixa dentro da mira). O que não encaixar vai para o inventário.
ExtraNoInventarioItens soltos no inventário. Sem espaço, são perdidos — dê mochila/roupas com espaço.

Não existe campo de quantidade: para 2 caixas de munição, repita o classname.

Packs (VipInventario)

"VipInventario": [
  { "NomePack": "Pack de Medicina", "Itens": [ { "Item": "BandageDressing", "Attach": [] }, { "Item": "Morphine", "Attach": [] } ] }
]

Itens fixos (VipInventarioHidden)

"VipInventarioHidden": [ { "Item": "TunaCan", "Attach": [] }, { "Item": "WaterBottle", "Attach": [] } ]

Sempre entregues. Se o jogador tiver mais de um plano, valem só os do plano de menor VipPeso.

Itens exclusivos

Por plano

Com VipItensExclusivesType: 1, os classnames de VipItensExclusivesHidden só podem ser carregados por quem tem aquele plano. Quem não pode:

Globais: Exclusive_Itens.json

{
  "AtivarExclusiveItens": 1,
  "IncludeInTodosVips": ["Ammo_408trundra", "M_Asiimov_Supressor_01", "AmmoBox_408Tundra_15Rnd"],
  "ExcludeInTodosVips": ["AKM", "BaseballBat"]
}
CampoO que faz
AtivarExclusiveItens0 = ignora as duas listas abaixo. A exclusividade definida nos planos continua valendo.
IncludeInTodosVipsExclusivos de qualquer VIP (qualquer plano).
ExcludeInTodosVipsLiberados para todos, mesmo que algum plano marque como exclusivo.

Isso não coloca itens no painel — só controla quem pode carregar.

Tutorial: criar o plano VIPGold

  1. Pare o servidor. Copie VIPBasic.json para VIPGold.json.
  2. Mude o topo:
    "VipID": "VIPGold",
    "VipNome": "VIP Gold",
    "VipHerdarID": "VIPBasic",
    "VipPeso": 5,
    "VipItensExclusivesType": 1,
  3. Em VipItens, deixe só as opções extras do Gold (as categorias do Basic vêm pela herança).
  4. Defina os packs e itens fixos do próprio Gold (eles não são herdados).
  5. Em VipItensExclusivesHidden, liste o que só o Gold pode carregar.
  6. Na loja (StorePanelVIP.json), crie o produto com "Type": "VIPGold".
  7. Valide os dois JSON, suba e compre com seu ID em Admins para testar.