Como configurar o equipalar loja 01 no seu projeto
A maioria das pessoas acha que equipalar loja 01 é só copiar um script e colar no lugar certo. Na prática, funciona diferente. O sistema depende de como o servidor lida com replications e de onde você coloca os scripts na árvore de objetos. Se você errar o lugar, a loja simplesmente não responde quando o jogador clica nos itens.
Equipalar loja 01 passo a passo
Primeiro, verifique se o seu projeto tem um Folder chamado "Equipment" dentro do Player. Se não tiver, crie. Depois, coloque o script de equipamento dentro de ServerScriptService, não em StarterPlayerScripts. Eu já perdi duas horas debugando isso porque assumi que estava no lugar certo. A diferença é que scripts em ServerScriptService rodam uma vez só, enquanto os de StarterPlayer rodam toda vez que o personagem reseta, e aí você acaba duplicando itens na inventário. O próximo passo é criar uma tabela de configuração na própria loja. Essa tabela deve mapear cada item do catálogo ao ID do equipamento correspondente no seu sistema de loadout. Algo simples como uma dictionary funciona bem. Exemplo: {["Espada_Ltd"] = 101, ["Escudo_Básico"] = 203}. Você vai usar esses IDs para fazer a conexão entre o que o jogador compra e o que realmente aparece no personagem dele.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Depois disso, o evento de clique precisa chamar uma função que verifica se o jogador já tem o slot ocupado. Se tiver, desequipa o item atual antes de equipar o novo. Ignorar esse cheque é o erro mais comum que eu vejo. O jogador clica em três itens diferentes em menos de cinco segundos e o resultado é um personagem com quatro armas e dois escudos ao mesmo tempo, o que quebra qualquer lógica de balanceamento que você tenha criado. Para testar se está funcionando, abra o Output e monitore qualquer nil retornado pela função de equipamento. Se aparecer um nil, significa que o ID do item não está na sua tabela de configuração. Ajuste a tabela e recarregue o jogo. Leva cerca de dois minutos, não mais.
Um detalhe que poucos mencionam: se você estiver usando um sistema de economia com moeda virtual, verifique o saldo antes de qualquer operação de equipamento, não depois. Já vi gente fazer o equippamento, dar o item, e só então verificar se o jogador tinha dinheiro suficiente. O estorno não é automático em muitas implementações e você acaba precisando reconstruir o inventário manualmente. Se o equipalar loja 01 não estiver respondendo após seguir todos esses passos, o problema provavelmente está na ordem de inicialização dos módulos. Coloque o módulo de equipamentos antes do módulo da loja na lista de require, ou a loja vai tentar acessar o sistema de loadout antes dele existir. Isso causa um erro silencioso que às vezes só aparece no log do servidor, nunca no Output do cliente.
Não existe solução única que resolva todos os casos. Se o seu jogo tem alta rotatividade de jogadores, considere usar um pool de objetos em vez de criar e destruir instâncias a cada troca de item. Isso reduz o garbage collection e evita aquelas pausas de meio segundo que aparecem em dispositivos móveis quando o jogador troca de equipamento rapidamente. Em testes práticos, essa otimização reduziu os travamentos em cerca de 70% em um projeto que rodava com cinquenta jogadores simultâneos.