Pular para o conteúdo
BunCho

Roblox × Story OS

Faça um jogo de história no Roblox a partir da sua história.

O Story OS do BunCho exporta sua história como um projeto do Roblox com diálogos de NPC, missões, ramificações e finais. O mundo você constrói no Roblox Studio; o BunCho entrega a estrutura e os diálogos. Nosso foco: histórias longas, personagens consistentes e ramificações que se sustentam.

De uma frase a um jogo publicado

Frase de exemploCrie um jogo de mistério em que três alunos presos numa escola abandonada têm cinco minutos para fugir
  1. Digite uma frase em Nova série no Story OS e a IA escreve o enredo, os personagens e as cenas (usa créditos). Ou comece por um modelo pronto.
  2. Na aba Jogo, adicione escolhas e flags (tem a chave, decifrou o código…). Becos sem saída, cenas inalcançáveis e flags que ninguém ativa aparecem na hora.
  3. Quando os Story Tests passam, Exportar para o Roblox fica disponível: um zip com projeto Rojo, modelo .rbxmx e um .json para o plugin.
  4. Importe no Roblox Studio com o plugin do BunCho (ou Rojo): NPCs, missões e a interface de diálogo já ficam no lugar.
  5. Construa o mundo, teste com vários jogadores e publique no Roblox.

O que você recebe

Abaixo está a exportação real do modelo que corresponde a esta frase, “Fuga da velha escola” (sem edição).

Estrutura da história (ramificações e finais)

15 cenas e 5 finais. As setas são escolhas que avançam (10 caminhos de volta, como voltar para a sala, não são desenhados).

Presos depois da aulaPresos depois da aulaSala 3-BSala 3-BO código da bibliotecaO código da bibliotecaA estante err…A estante erradaO segredo da…O segredo da MioOs armários do labora…Os armários do laboratórioA chave da en…A chave da entradaO bilhete da SoraO bilhete da SoraEntradaEntradaA porta abertaA porta abertaOs três juntosOs três juntosFuga concluídaFuga concluídaA verdade sobre a bri…A verdade sobre a brincadeiraA senha da po…A senha da porta dos fundosEsperando a m…Esperando a manhã

Os três juntos / Fuga concluída / A verdade sobre a brincadeira / A senha da porta dos fundos / Esperando a manhã

Três NPCs (personalidade, jeito de falar, segredo, comportamento)

Haru

Representante da turma

Personalidade
Mandão e se faz de forte, mas é o mais responsável.
Jeito de falar
Tom firme e mandão.
Objetivo
Levar todos para casa
Segredo
Acha que um bilhete de brincadeira que escreveu causou o confinamento.
Fala de exemplo
“Calma. Vamos achar a saída em cinco minutos.”

Mio

Monitora da biblioteca

Personalidade
Quieta e observadora; tem dificuldade em pedir ajuda.
Jeito de falar
Fala baixinho, curto e preciso.
Objetivo
Decifrar o código
Segredo
No ano passado quase ficou presa aqui, e foi ela quem deixou o código no quadro.
Fala de exemplo
“Tem um código de números no quadro.”

Sora

Do time de atletismo

Personalidade
Alegre e falante; tem medo do escuro.
Jeito de falar
Animada e informal.
Objetivo
Chegar em casa antes de escurecer
Segredo
Esqueceu que tinha o bilhete do zelador no bolso.
Fala de exemplo
“Quero chegar em casa antes de escurecer…”

Comportamento: os NPCs vão até o lugar de cada cena em que falam; se você falar com eles em outro lugar, respondem com a última fala. Os segredos são notas para o desenvolvedor e nunca aparecem para os jogadores.

Missões (achar a chave, decifrar o código, abrir a porta)

As flags das quais as escolhas dependem viram a lista de objetivos. O cronômetro é de 300 segundos; quando acaba, a história vai para o final “Esperando a manhã”.

Sair da escola em 5 minutos
  • Verificar a estante 913
  • Abrir o armário com o número do código
  • Guardar o bilhete
  • Confiar na Mio
Formas de abrir a porta
  • Abrir a porta da frente com a chave
  • Dizer a senha na porta dos fundos

Interface no jogo

  • Janela de diálogo: nome de quem fala, uma fala por vez, Próximo
  • Escolhas: com vários jogadores, votação (maioria, com tempo limite)
  • Objetivos: lista com marcações e para onde ir
  • Cronômetro: fica vermelho nos últimos 30 segundos
  • Finais: quantos você encontrou (de 5)
Mio

Acho que os números do quadro são números de classificação.

Verificar a estante 913Verificar a estante 400Voltar para a sala

A interface é montada em código, sem imagens para gerenciar. Mude cores e fontes na tabela THEME no início do StoryClient.

Código Luau

Os dados (Story, Strings) ficam separados das partes que se movem (máquina de estados, servidor, interface). O servidor confere cada escolha.

-- src/shared/Story.luau
["n006"] = {
  Title = "N.n006.title",
  Place = "science",
  Ending = false,
  Events = { "lights_flicker" },
  Lines = {
    { Key = "N.n006.1" },
    { Key = "N.n006.2", Npc = "haru" },
  },
  Choices = {
    { Id = "c013", Key = "C.c013", To = "n007", Requires = { "cipher" }, Sets = { "has_key" } },
    { Id = "c014", Key = "C.c014", To = "n002", Requires = {}, Sets = {} },
  },
-- src/shared/StoryRuntime.luau
-- Applies a choice. Returns false (and a reason) when the choice is not open right now.
function StoryRuntime.choose(story, state, choiceId: string): (boolean, string?)
  local c = StoryRuntime.findChoice(story, state, choiceId)
  if c == nil then
    return false, "choice_not_available"
  end
  for _, f in c.Sets do
    local neg, name = negated(f)
    state.flags[name] = if neg then nil else true
  end
  StoryRuntime.jump(story, state, c.To)
  return true, nil
end

-- Quest objectives with their done state (flags that some choice requires)
function StoryRuntime.objectives(story, state)
-- src/server/StoryServer.server.luau
local function onChoose(player: Player, choiceId: string)
  local session = sessions[sessionKey(player)]
  if session == nil or not session.open or session.state.ended then
    return
  end
  if Runtime.findChoice(Story, session.state, choiceId) == nil then
    return
  end
  local voters = #members(session)
  if Config.ChoiceMode ~= "vote" or voters <= 1 then

Salvamento

O DataStore é opcional (Config.UseDataStore). Salva os finais encontrados e o progresso solo. Para testar no Studio, ative o acesso do Studio aos serviços de API.

Tabela de tradução em 6 idiomas

Japonês, inglês, espanhol, português, chinês tradicional e simplificado. Cada jogador vê o idioma do seu Roblox; se faltar, usa-se o idioma original. localization/BunChoStory.csv também funciona com as ferramentas de tradução do Roblox.

O que vem no zip

  • BunChoStory.rbxmx
  • NPCS.md
  • README.md
  • default.project.json
  • localization/BunChoStory.csv
  • src/client/StoryClient.client.luau
  • src/server/StageSetup.server.luau
  • src/server/StoryServer.server.luau
  • src/shared/Config.luau
  • src/shared/Localize.luau
  • src/shared/StageBuilder.luau
  • src/shared/Story.luau
  • src/shared/StoryRuntime.luau
  • src/shared/Strings.luau
  • story-tests.json
  • story.pack.json

Posicione tudo com o plugin do Studio

  1. Instale o plugin (em breve na Creator Store; por enquanto coloque o arquivo abaixo na pasta Plugins do Studio)
  2. Abra Plugins → BunCho → Story Pack e escolha o .json exportado ou cole uma URL https
  3. Build stage now monta salas, pontos de história brilhantes e NPCs com Parts (tudo editável)
  4. Aperte Play. Para vários jogadores use Testar → Clientes e servidores

Usa Rojo? Descompacte, rode rojo serve e conecte pelo Studio. Também dá para arrastar o .rbxmx (passos no README).

Publicar

Publique no Roblox e tente monetizar (os ganhos dependem dos termos do Roblox e dos requisitos do DevEx).

Por que criar com o BunCho

Pensado para a classificação etária

  • Nenhuma IA generativa roda dentro do jogo. Cada fala é fixada e verificada na exportação (sem chat de IA aberto).
  • Os sustos são só piscadas de luz, apagão, sombras, uma legenda de sussurro e um leve tremor. Sem sangue, ferimentos ou sustos com barulho alto (Config.ScareIntensity = 0 desliga).
  • Responda com precisão ao questionário de maturidade e conformidade do Roblox para a sua experiência.

O que você ainda faz no Roblox Studio

  • Construir o mundo (o cenário são blocos simples; para o seu mapa, marque Parts com BunChoStoryTrigger e um atributo Place ou Npc)
  • Sons, modelos e animações com direito de uso
  • Testes multijogador, miniaturas, descrição, questionário e publicação

Modelos

Fuga da velha escola

Três alunos ficam presos numa escola abandonada e precisam fugir em cinco minutos. Encontrem a chave, decifrem o código e abram a porta. Cinco finais.

5 minutos · 3 NPCs · chave / código / porta · 5 finais

A mansão sem luz

Numa noite de tempestade, um grupo de amigos fica preso numa velha mansão. Encontrem as chaves de prata e de ouro e descubram o segredo da menina fantasma que mora lá. Cinco finais.

Cooperativo · chaves de prata e ouro · efeitos assustadores (todas as idades) · 5 finais

Abrir e editar no estúdio →

Preço

A exportação para o Roblox está incluída nos planos do BunCho. O plugin do Studio e os modelos são gratuitos.

FAQ

Preciso saber usar o Roblox Studio?

Não para importar e apertar Play. Construir o mundo e publicar é feito no Roblox Studio.

Uma IA conversa com os jogadores?

Não. Todo o diálogo é texto fixo escrito na exportação, o que facilita um jogo para todas as idades.

Dá para fazer um jogo de terror no Roblox?

Sim. O modelo de terror cooperativo tem busca de chaves em equipe, cinco finais e sustos para todas as idades.

Posso usar o meu próprio mapa?

Defina Config.BuildStage = false e marque Parts com BunChoStoryTrigger e um atributo Place (id do lugar) ou Npc (id do personagem).

O Rojo é obrigatório?

Não. Dá para importar com o plugin do BunCho ou arrastar o .rbxmx.

As funções descritas são as disponíveis hoje no BunCho. Uma gravação no Roblox Studio está em preparação. 日本語