Pular para o conteúdo principal

Code frameworks

Limites e erros

Os limites de um projeto e as mensagens que você pode ver, com suas correções.

Limites

LimiteValor
Tamanho do código-fonte8 MiB
Tamanho do jogo compilado16 MiB
Arquivos1000
Frameworks64
Arquivos de cenário512
Presets de conteúdo por Framework512
Presets de conteúdo por Jogo2048
Ações por Framework96
Ações por Jogo192
Funções de ledger por Framework64
Frames por Framework1 a 16
Frames por Jogo128
Seções por Framework64
Opções de entrada2 a 128
Passos de ação criados por projeto512
Passos por ação64
Passos por cenário32
Verificações de ledger por cenário32
Escritas esperadas por passo64

As linhas acima limitam o seu código-fonte. O Fabled também compila o seu código-fonte em um único jogo, e esse jogo compilado precisa ficar abaixo de 16 MiB antes de poder ser preparado.

O servidor verifica os mesmos limites de novo quando você prepara um jogo, e o veredito dele é final.

Erros e correções

Cada linha cita parte de uma mensagem. A mensagem no The Forge pode acrescentar o arquivo, a linha ou os nomes envolvidos.

MensagemCausaCorreção
Project contains undeclared source files: rules/extra.ts.Existem arquivos aos quais nada se refere. A mensagem lista até cinco caminhos e informa quantos arquivos ainda restam.Compare os arquivos da árvore com o manifesto e os esquemas. Apagar uma função de ledger deixa o arquivo de regras dela, então apague esse arquivo também.
Missing or misplaced project source.Um caminho listado não tem arquivo, ou o arquivo está na pasta errada.Corrija o caminho ou adicione o arquivo.
Unrecognized key(s) in objectUm arquivo JSON usa um campo que o formato não tem.Remova o campo ou corrija a grafia.
Input name is hidden, so it must declare a defaultValue.Uma entrada oculta não tem valor padrão.Adicione um defaultValue, ou mostre a entrada.
must be one of its optionsUm valor padrão não está na lista de opções.Use uma das opções como valor padrão.
Parameter max_hp 99 is not between 1 and 40.Um cenário ou preset quebra os limites de uma entrada.Mude o valor ou os limites.
is not assigned to any sectionExistem seções, mas uma entrada não está em nenhuma.Adicione a entrada a uma seção.
Duplicate semantic identity or source path.Dois itens usam o mesmo id ou o mesmo arquivo.Dê a cada um seu próprio id e arquivo.
Invalid child Framework constraintUm espaço filho aponta para um Framework de fora do jogo.Use o id de um Framework deste jogo.
Ledger function must target an existing scalar field.O campo não é um dos que o constructor retorna.Retorne o campo no constructor, ou corrija o nome.
must define the required 'name' valueUm constructor não retorna um name.Retorne um campo de texto chamado name.
The entry framework must be a character constructor.O Framework de entrada do manifesto não é um personagem.Aponte entryFramework para um Framework de personagem.
while loops are not allowedUma regra usa um loop que pode não terminar.Use for of.
is a host global and not part of the TypeScript subsetUma regra usa Math ou outro global.Use as chamadas do host, como math.min.
import is not allowedUma regra importa código.Coloque a lógica no próprio arquivo de regras.
must return a value on every reachable pathUma função com tipo de retorno tem um caminho sem return.Retorne um valor em todos os caminhos, ou declare void.
is not declared on this schemaUma ação escreve um campo que o constructor não retorna.Retorne o campo no constructor, ou corrija o nome.
FRAME_BINDING_UNKNOWNUm Frame liga um campo que não existe.Ligue um campo declarado.
ACTION_MISSINGUm botão nomeia um alias de ação que não existe.Declare o alias, ou corrija o nome.
Expected ordered writesUma ação escreveu algo diferente de expectedWrites.Corrija a regra ou as escritas esperadas.
Constructor output does not match its scenario.expectedValues é diferente do que o constructor retorna.Corrija o cenário ou o constructor.
SCENARIO_COVERAGE_MISSINGUma ação não tem passo de cenário.Adicione pelo menos um passo para a ação.
is a non-writable state fieldUma ação escreve um valor que uma função de ledger deriva.Escreva um campo salvo, e deixe a função de ledger derivar o resto.
Action accesses require literal keys on self.Uma ação nomeia um campo com um valor em vez de um texto escrito no código.Escreva o nome do campo entre aspas. Use uma ação para cada campo.
functions but only the actionUm arquivo de ação exporta duas funções.Exporte uma função por arquivo de ação, ou partilhe o arquivo entre ações. Deixe as funções auxiliares sem export.
the step expects it to be refused withUm passo espera uma recusa, mas a ação não foi recusada.Remova expectedRefusal, ou corrija a oferta para que ela recuse.
Add expectedRefusalUm passo de lista foi recusado, mas não diz isso.Adicione expectedRefusal com o código, e nenhuma escrita.
Every ledger function needs an executable scenario.Uma função de ledger não tem entrada na lista ledger de nenhum cenário.Adicione uma entrada de ledger com o id da função, um currentValue e o resultado esperado.
effectful action helpers are not supportedUma função auxiliar escreve com ledger.set ou ledger.add.Faça a função auxiliar devolver o valor e escreva-o na ação.
is not a writable state fieldUma lista fields nomeia um campo que não é armazenado, como um que uma função de ledger deriva.Liste apenas campos armazenados que o construtor devolve.
is not satisfied: roll.missingUm cenário usa o método roll sem rolagens registradas, ou um preset o usa, e só o servidor pode rolar.Em um cenário, adicione poolRolls com um slot por pontuação. Um preset não pode usar roll, então dê ao pool outro método para os presets.
The roll dice must be one group such asOs dados de roll não são um só grupo como "3d6", por exemplo 3d6x5.Escreva um único grupo de dados e coloque o multiplicador na chave multiplier.
outside the min/max of inputOs dados podem dar um total que uma entrada não admite.Amplie o min e o max das entradas, ou mude os dados.
give exactly one roll per input.O count de roll difere do número de entradas do pool.Defina count como o número de entradas.
must offer exactly the methods of poolAs opções da entrada que escolhe o método diferem dos métodos do pool.Faça das opções os nomes dos métodos, nem mais nem menos.
RequiredFalta uma chave de que o formato precisa. O painel Problemas mostra uma lista JSON.Leia o caminho da lista. Ele nomeia a chave que falta. Adicione-a.
Expected number, received stringUma chave do esquema tem o tipo errado. O painel Problemas mostra uma lista JSON.Leia o path na lista. Ele nomeia a chave, por exemplo inputs, max_hp, min. Corrija esse valor.

O The Forge lista os problemas de cada arquivo em Problemas. Um problema de regra também informa a linha e a coluna. Quando o construtor não confere, a mensagem lista as primeiras diferenças e termina com quantas foram omitidas. Corrija as listadas e verifique de novo.

O servidor verifica de novo