Resolva problemas comuns
Resource não inicia
Está com problemas para iniciar o seu produto? Clique aqui
Configurar o resource
Está com dúvidas de como configurar algo no sistema? Clique aqui

Sobre o sistema
A proposta do Craft System é unir flexibilidade, persistência e controle total sobre as bancadas de crafting do seu servidor. O dono do servidor tem poder absoluto para criar bancadas fixas no mapa, conceder bancadas para jogadores, gerenciar upgrades e integrar com qualquer sistema de inventário. Com as funções exportadas, você pode:- Criar e deletar bancadas de crafting diretamente por script;
- Forçar o spawn de uma bancada em posição fixa ou deixar o player posicioná-la com preview;
- Gerenciar upgrades como combustível, slots de fabricação e fabricação paralela;
- Consultar todas as mesas ativas, buscar uma mesa por objeto ou por marker;
- Integrar o sistema de craft com empregos, missões, sistemas VIP e muito mais.
Funções Exportadas
Server-side
- createCraftTable ->
Cria uma nova bancada de crafting - deleteCraftTable ->
Deleta uma bancada de crafting - addCraftTableUpgrade ->
Adiciona ou atualiza um upgrade em uma bancada - forceCraftTableSpawn ->
Força o spawn de uma bancada sem preview - spawnCraftTableWithPreview ->
Inicia o posicionamento de uma bancada com preview para o player - spawnWithPreview ->
Alias de spawnCraftTableWithPreview - spawnWithPreviewByOwner ->
Inicia preview buscando a mesa do owner automaticamente - getSpawnedCraftTables ->
Retorna todas as bancadas atualmente spawnadas - getCraftTableByObject ->
Busca os dados de uma bancada pelo elemento objeto - getCraftTableByMarker ->
Busca os dados de uma bancada pelo elemento marker
createCraftTable
Side:server
Syntax
position(table): posição e rotação da bancada.x(number): coordenada Xy(number): coordenada Yz(number): coordenada ZrotX(number): rotação X (padrão0)rotY(number): rotação Y (padrão0)rotZ(number): rotação Z (padrão0)interior(number): interior do jogo (padrão0)dimension(number): dimensão do jogo (padrão0)
permissions(table): lista de grupos ACL que podem usar a bancada. Exemplo:{'Admin', 'Vip'}. Se vazio ounil, todos os players podem usar.upgrades(table): upgrades iniciais da bancada.fuel(number): combustível inicial (padrão0)consumable_boost(number): ácido clorídrico inicial (padrão0)slot_upgrade(number): slots de fabricação iniciais (padrão1)parallel_upgrade(number): fabricações paralelas iniciais (padrão1)primary_part_1aprimary_part_4(number): nível inicial das peças primárias (padrão1)
configId(string): ID fixo para identificar a bancada entre restarts. Recomendado para bancadas default.
numbercom o ID da bancada criada em sucesso.falseem falha.
deleteCraftTable
Side:server
Syntax
id(number): ID da bancada a deletar.
trueem sucesso.false, stringem falha (bancada não encontrada ou tipo inválido).
- Apenas bancadas do tipo
'default'podem ser deletadas por este export. Bancadas de player são gerenciadas pelo próprio sistema.
addCraftTableUpgrade
Side:server
Syntax
craftTableId(number): ID da bancada.upgrade(string): nome do upgrade. Valores aceitos:'fuel'— combustível'consumable_boost'— ácido clorídrico (boost consumível)'slot_upgrade'— slots de fabricação'parallel_upgrade'— fabricações simultâneas'primary_part_1'a'primary_part_4'— nível das peças primárias
value(number): novo valor do upgrade. Será limitado automaticamente aomin/maxconfigurado emConfig.upgradeSettings.
trueem sucesso.false, stringem falha.
forceCraftTableSpawn
Side:server
Syntax
id(number): ID da bancada a spawnar.
trueem sucesso.false, stringem falha (bancada não encontrada ou já spawnada).
- Força o spawn na posição salva no banco de dados, sem exigir confirmação do player. Ideal para bancadas do tipo
'default'.
spawnCraftTableWithPreview
Side:server
Syntax
id(number): ID da bancada.player(player): player que receberá o modo preview para posicionar a bancada.
truese o modo preview foi iniciado com sucesso.falsese falhou (bancada não encontrada, player não é o dono, ou bancada já está spawnada).
- Se a bancada já estiver spawnada, o sistema marca a posição dela no mapa do player e retorna
false. - Se o preview for cancelado pelo player, a bancada é automaticamente deletada.
- Ao confirmar, a bancada é spawnada na posição escolhida.
spawnWithPreview
Side:server
Syntax
spawnWithPreviewByOwner
Side:server
Syntax
player(player): player cuja bancada será buscada e iniciará o preview.
truese o preview foi iniciado.falsese o player não possui bancada, ou se ela já está spawnada (nesse caso marca no mapa).
- Busca automaticamente a bancada do tipo
'player'que pertence ao owner com o mesmo nome do player. - Útil para sistemas onde o player recebe a bancada como item e precisa posicioná-la sem saber o ID.
getSpawnedCraftTables
Side:server
Syntax
tableindexada porcraftTableIdcom os dados de spawn no formato:
getCraftTableByObject
Side:server
Syntax
object(element): elemento do tipoobjectque representa a bancada no mundo.
tablecom os dados da bancada em sucesso.nilse não encontrar.
| Campo | Tipo | Descrição |
|---|---|---|
id | number | ID interno da bancada |
type | string | 'default' ou 'player' |
owner | string | Nome do dono (ou vazio para default) |
pos_x/y/z | number | Posição no mundo |
rot_x/y/z | number | Rotação |
interior | number | Interior |
dimension | number | Dimensão |
permissions | string | JSON de ACLs |
fuel | number | Combustível atual |
consumable_boost | number | Ácido clorídrico atual |
slot_upgrade | number | Slots de fabricação |
parallel_upgrade | number | Fabricações paralelas |
primary_part_1..4 | number | Nível de cada peça primária |
is_spawned | number | 1 se spawnada, 0 se não |
getCraftTableByMarker
Side:server
Syntax
marker(element): elemento do tipomarkerassociado a uma bancada.
tablecom os dados da bancada em sucesso (mesma estrutura de getCraftTableByObject).nilse não encontrar.
Observações
- Todas as exports exigem que o resource já tenha sido iniciado e a licença validada.
- As funções acima seguem exatamente o que está exportado no
meta.xmldosqh_craftsystem. - Upgrades têm limites definidos em
Config.upgradeSettings— valores fora do intervalo são ajustados automaticamente. - Bancadas do tipo
'player'não podem ser deletadas viadeleteCraftTable; elas são gerenciadas pelo próprio flow do sistema.