Polar GamesPolar Games

Twirldrop documentation

Documentação Twirldrop

Standalone 1.0.0 · HTML5 · Local browser records

Edição independente 1.0.0 · HTML5 · Recordes locais

Thank you for choosing Twirldrop. This guide explains installation, play, customization, local data and troubleshooting. Start with the ready-to-upload game/ folder; source/ is optional.

Obrigado por escolher Twirldrop. Este guia explica instalação, jogo, personalização, dados locais e soluções de problemas. Comece com game/ pronta para subir; source/ é opcional.

What this edition includes

O que esta edição inclui

Rotate a ceramic tower to guide a bouncing ball through the gaps. Avoid striped red danger sectors and spikes. Three consecutive gap passages charge a breakthrough that breaks the next occupied floor once. Play a 30-tower campaign or the main Endless descent mode.

Gire a torre de cerâmica e guie a bola pelos vãos. Evite os setores vermelhos listrados com espinhos. Três vãos consecutivos carregam uma quebra que atravessa o próximo andar ocupado uma vez. Jogue a campanha de 30 torres ou a Descida sem fim, o modo principal.

Standalone HTML5 • WebGL 2 • local browser data • readable runtime/source • no online services

HTML5 independente • WebGL 2 • dados locais • código legível • sem serviços online

Install in a few steps

Instalação em poucos passos

1. Extract the ZIP on your computer. 2. Open this manual. 3. Create a folder on your hosting, for example /games/twirldrop/. 4. Upload every file and subfolder INSIDE game/ into it. 5. Open the HTTPS URL ending in index.html and click/tap to start. 6. Play, open settings and reload to check local progress.

1. Extraia o ZIP no computador. 2. Abra este manual. 3. Crie uma pasta na hospedagem, por exemplo /games/twirldrop/. 4. Suba todos os arquivos e subpastas de DENTRO de game/. 5. Abra a URL HTTPS terminada em index.html e toque para iniciar. 6. Jogue, abra ajustes e recarregue para conferir o progresso local.

twirldrop-static-1.0/
  START-HERE.txt
  game/                 <- upload these contents
    index.html
    twirldrop.config.js
    assets/ or src/      <- keep all delivered folders
  documentation/        <- this EN/PT manual and labeled images
  source/               <- optional developer project, DO NOT UPLOAD
  THIRD-PARTY-LICENSES/

No Node.js process, PHP, database, publisher account, ranking server or advertising account is needed to play. Serve the game over HTTP/HTTPS; file:// is not supported.

Não precisa de processo Node.js, PHP, banco, conta do autor, servidor de ranking ou conta publicitária para jogar. Sirva o jogo por HTTP/HTTPS; file:// não é suportado.

<iframe src="https://your-site.example/games/twirldrop/index.html?lang=en"
  width="100%" height="720" style="border:0"
  allow="autoplay; fullscreen" allowfullscreen title="Twirldrop"></iframe>

Controls and game modes

Controles e modos

Mouse/touch: hold and drag horizontally to rotate the tower. Release to stop rotating. The ball bounces by itself. Use the visible pause/settings controls; choose Endless or campaign/tower selection from the menu.

Mouse/toque: segure e arraste na horizontal para girar a torre. Solte para parar de girar. A bola quica sozinha. Use os controles de pausa/ajustes e escolha Descida ou campanha/torres no menu.

Endless is the main Play action; campaign and tower selection are separate. Personal best points and depth records remain on this browser. Without online rankings the tower shows the player’s own best mark, not fabricated opponents. Cosmetic finishes do not change the simulation.

Descida é a ação principal Jogar; campanha e seleção de torres ficam separadas. Recordes de pontos e profundidade ficam neste navegador. Sem ranking online, a torre mostra a marca pessoal do jogador, sem adversários inventados. Acabamentos cosméticos não mudam a simulação.

Menu, gameplay and settings guide

Guia do menu, jogo e ajustes

Twirldrop menu screen123
Main menu: start or continue, available game modes, language and settings. Labels reflect the selected language.
Menu: iniciar/continuar, modos disponíveis, idioma e ajustes. Os textos acompanham o idioma.
  1. Play the main Endless modeJogar o modo principal sem fim
  2. Campaign and tower selectionCampanha e seleção de torres
  3. Local ranking and personal recordsRanking local e recordes pessoais
Twirldrop gameplay screen1234
Gameplay layout: numbered markers explain the main controls and playfield below. The screenshot is an actual example, not fixed scores or a preset save.
Layout do jogo: marcadores numerados explicam controles e área jogável abaixo. A captura é um exemplo real, não uma pontuação fixa ou save pré-definido.
  1. Score / floor / chargePontos / andar / carga
  2. Rotate this playfieldGire esta área
  3. Safe gap / danger sectorVão seguro / perigo
  4. Pause / settingsPausa / ajustes
Twirldrop settings screen123
Settings: audio, language and available presentation options. Keep the game paused while changing settings and resume from the visible control.
Ajustes: áudio, idioma e opções de apresentação disponíveis. Altere com o jogo pausado e retome pelo controle visível.
  1. Sound, Controls and Display tabsAbas Som, Controles e Tela
  2. Motion and effects qualityMovimento e qualidade de efeitos
  3. Language and fullscreenIdioma e tela cheia

Customize your game

Personalize o jogo

Back up the original package first. Edit only the files for this buyer edition, change one thing at a time and test the complete upload in a subfolder. Keep settings, assets and code versions together.

Guarde uma cópia do pacote original. Edite apenas esta edição, mude uma coisa por vez e teste o upload completo numa subpasta. Mantenha configurações, assets e código da mesma versão.

File / ArquivoPurpose / Finalidade
src/config/brand.tsProduct name, colors and standalone storage key.Nome, cores e chave local de armazenamento.
src/config/tuning.tsGame rules, movement/feel, camera and input constants.Regras, movimento, câmera e controles.
src/content/towers.tsCampaign tower definitions; towers 13–30 use endless blocks.Torres da campanha; as torres 13–30 usam blocos do modo sem fim.
src/content/endless.tsEndless blocks and generation; changes affect later campaign towers too.Blocos e geração do modo sem fim; mudanças também afetam torres posteriores da campanha.
src/i18n.tsComplete EN/PT/ES dictionaries.Dicionários completos EN/PT/ES.
src/storage.tsLocal progression and score/depth records; preserve merge-on-save behavior.Progresso e recordes locais de pontos/profundidade; preserve a mesclagem no salvamento.
src/assets/audio/Bundled music/effects. Rebuild after adding or renaming imported assets.Música/efeitos incluídos. Gere novo build após adicionar ou renomear assets importados.

The file map refers to source/ paths. In Plop, game/src/ also remains directly editable. In the compiled games, editing source/ requires a new build; copying a TypeScript file into the hosted game does not update the bundle.

O mapa usa caminhos de source/. No Plop, game/src/ também é editável diretamente. Nos jogos compilados, alterar source/ exige novo build; copiar um TypeScript para o site não atualiza o bundle.

Branding: update the HTML title, source title/brand configuration and actual image/logo files together. Language text lives in the dictionaries listed above. Do not claim an extra interface language until every key and narrow-screen layout has been reviewed. Cosmetic changes do not automatically change gameplay.

Marca: altere o título HTML, a configuração de nome e os arquivos reais de logo em conjunto. Traduções ficam nos dicionários acima. Só anuncie um idioma extra após revisar todas as chaves e o layout estreito. Alterações cosméticas não mudam a regra automaticamente.

cd source
npm ci
npm test
npm run build
# Copy ALL contents of source/dist/ to game/ and upload that complete output.

For compiled-source development use Node.js 22.12 or newer and npm. The prepared Vite config keeps JavaScript, CSS and JSON readable. Do not re-enable minification for the sold runtime. Keep npm dependency versions/lockfile and third-party licenses. Node is not needed on the buyer’s web hosting.

Para desenvolver os jogos compilados, use Node.js 22.12 ou superior e npm. O Vite entregue mantém JavaScript, CSS e JSON legíveis. Não religue minificação no runtime vendido. Preserve versões/lockfile e licenças. A hospedagem do comprador não precisa de Node.

Local records privacy and updates

Recordes locais privacidade e atualizações

Progress and settings use versioned localStorage keys. Records are specific to the browser/site and may disappear when browser data is cleared. This edition sends no score, nickname or gameplay event to Polar Games or a portal. There is no online scoreboard to install.

Progresso e ajustes usam chaves versionadas de localStorage. Recordes são específicos do navegador/site e podem desaparecer ao limpar seus dados. Esta edição não envia pontuação, apelido ou evento para Polar Games ou portal. Não há quadro online para instalar.

Back up saved data before changing storage keys, rules versions or schemas. Rule-version changes may intentionally reset incompatible records. Preserve the current game rules when only changing art. Replace the complete deployed game during updates; do not mix hashed files from different versions.

Faça backup dos dados antes de mudar chaves, versões de regra ou formato do save. Uma versão de regra pode zerar recordes incompatíveis. Preserve a regra ao trocar apenas arte. Substitua o jogo completo ao atualizar; não misture arquivos de versões diferentes.

Troubleshooting and frequently asked questions

Soluções e perguntas frequentes

Do I need Node.js, PHP or a database to play?Preciso de Node.js, PHP ou banco para jogar?

No. Upload game/ to static HTTP/HTTPS hosting. Node.js is only an optional source-development tool for the compiled games. PHP and databases are not included or required.

Não. Suba game/ numa hospedagem HTTP/HTTPS estática. Node.js serve apenas para desenvolver o código dos jogos compilados. PHP e banco não são necessários.

Can I double-click index.html?Posso abrir index.html com dois cliques?

Use a web server. ES modules, fonts and browser security make file:// unreliable. Opening the HTML locally from disk is not the installation procedure.

Use um servidor web. Módulos ES, fontes e segurança tornam file:// inadequado. Abrir o HTML do disco não é o procedimento de instalação.

Which folder should I upload?Qual pasta devo subir?

Only the contents of game/, keeping index.html and its folders together. Do not upload the ZIP, developer source, dependencies, documentation or internal working files as the playable root.

Somente o conteúdo de game/, mantendo index.html e as pastas juntos. ZIP, código de desenvolvimento, dependências e documentação não são a raiz jogável.

Can I install in a subfolder or iframe?Posso instalar em subpasta ou iframe?

Yes, asset paths are relative. Use an HTTP/HTTPS URL and give the iframe sufficient visible height. Keep browser storage enabled if progress must survive reloads.

Sim, os caminhos são relativos. Use HTTP/HTTPS e altura suficiente no iframe. Permita armazenamento do navegador para preservar progresso.

Why is sound silent before the first interaction?Por que o som não toca antes do primeiro toque?

Browsers require a click/tap before audio. Start through the game UI, check device/browser volume and in-game sliders. After returning from another app, resume through the visible UI.

O navegador exige clique/toque. Inicie pela interface, confira o volume do aparelho/navegador e os controles do jogo. Ao voltar de outro aplicativo, retome pela interface.

Are scores shared between devices?Os recordes sincronizam entre aparelhos?

No. Records and progress are local to this browser, profile and site origin. Another domain, browser, private session or device has its own data. There is no account or cloud save.

Não. Progresso e recordes pertencem a este navegador, perfil e origem do site. Outro domínio, navegador, sessão privada ou aparelho usa dados próprios. Sem conta ou nuvem.

What if localStorage is unavailable?E se localStorage estiver indisponível?

Gameplay remains available, but saving may be temporary. Private browsing, embedded storage restrictions, quota errors and cleared browser data can prevent persistence. Do not promise permanent or cross-device records.

O jogo continua disponível, mas o salvamento pode ser temporário. Modo privado, restrições de iframe, falta de espaço e limpeza de dados impedem persistência. Não prometa recordes permanentes ou sincronizados.

Can I add online ranking or multiplayer?Posso adicionar ranking online ou multiplayer?

This download intentionally excludes both. Such work needs its own backend, security model, implementation and tests. There is no hidden switch that connects to Polar Games services.

Esta edição exclui ambos. Isso exige backend, segurança, implementação e testes próprios. Não existe interruptor oculto para acessar serviços da Polar Games.

Does the item include ads, earnings or portal acceptance?O item inclui anúncios, ganhos ou aprovação em portal?

No advertising account, SDK service, portal acceptance, native app or revenue guarantee is included. The delivered standalone is ad-free. Integration into third-party systems is custom development.

Não inclui conta publicitária, serviço de SDK, aprovação em portal, aplicativo nativo ou garantia de ganhos. A edição entregue é sem anúncios. Integrações são desenvolvimento separado.

How do I reset progress?Como apagar progresso?

Clear only this game’s saved key in your browser developer tools. This is permanent for that browser. Copy/export the value first if you need a backup; never clear all site data casually on a shared domain.

Remova somente a chave deste jogo nas ferramentas do navegador. Isso é permanente nesse navegador. Copie/exporte o valor antes para ter backup; não limpe todos os dados de um domínio compartilhado sem necessidade.

Why do files fail after an update?Por que arquivos falham após atualizar?

Upload the whole new game/ together and preserve relative paths. Do not mix a new HTML with old hashed JS/CSS. Hard-reload to clear ordinary browser cache. This edition installs no service worker.

Suba toda a nova game/ em conjunto e mantenha os caminhos. Não misture HTML novo e JS/CSS antigo. Recarregue sem cache. Esta edição não instala service worker.

Can I replace the name, art and music?Posso trocar nome, arte e música?

Yes, follow the file map and dependency notices. Compiled games require rebuilding source changes. Only use replacement assets you may distribute. Keep the provided dependency/font license notices.

Sim, siga o mapa de arquivos e as licenças. Jogos compilados exigem novo build após alterar código. Use apenas assets que possa distribuir e preserve as licenças de dependências/fontes.

Does the package work offline?Funciona offline?

All runtime assets are bundled locally and no online gameplay service is required. They still must be served over HTTP/HTTPS; this is not an installed offline PWA and no service worker download/cache is promised.

Os assets ficam locais e não há serviço online obrigatório. Ainda é necessário servir por HTTP/HTTPS; não é uma PWA offline instalada e não há promessa de cache por service worker.

Which browsers and devices are supported?Quais navegadores e aparelhos usar?

Use current Chrome, Edge, Firefox or Safari with JavaScript and Canvas/WebGL support as required below. Responsive browser checks do not replace testing on your own physical devices and hosting.

Use Chrome, Edge, Firefox ou Safari atuais, com JavaScript e Canvas/WebGL conforme os requisitos abaixo. Testes responsivos não substituem testar seus aparelhos físicos e hospedagem.

What does item support cover?O que o suporte cobre?

Use the marketplace item support channel with your purchase details and a reproducible report. Support follows the marketplace policy. Hosting administration, new features, major reskins and custom integrations are separate services. No fixed response-time or lifetime commitment is made.

Use o suporte do item no marketplace, com os dados da compra e um relato reproduzível. O suporte segue a política do marketplace. Hospedagem, funções novas, grandes mudanças visuais e integrações são serviços separados. Sem promessa de prazo fixo ou suporte vitalício.

Is breakthrough permanent invincibility?A quebra dá invencibilidade permanente?

No. Three consecutive gaps arm one charge. It breaks the next occupied floor, then the charge ends. Gold indicates charge; red striped/spiked sectors indicate danger.

Não. Três vãos armam uma carga. Ela quebra o próximo andar ocupado e termina. Ouro indica carga; vermelho listrado com espinhos indica perigo.

Why are there no online rivals?Por que não há rivais online?

This standalone edition deliberately uses only local records. There is no external ranking account, backend or multiplayer invitation to configure.

Esta edição usa somente recordes locais. Não há conta de ranking externa, backend ou convite multiplayer para configurar.

Documentation support and updates

Documentação suporte e atualizações

Use the marketplace item support channel for help with the delivered item. Include item/version, browser/device, exact hosted URL, steps, expected/actual result, screenshot and console/network error. Never send passwords, tokens or private customer data. Updates focus on fixes and improvements without a fixed schedule.

Use o suporte do item no marketplace. Informe item/versão, navegador/aparelho, URL exata, passos, resultado esperado/obtido, captura e erro do console/rede. Nunca envie senhas, tokens ou dados privados. Atualizações focam correções e melhorias, sem calendário fixo.

Item: Twirldrop standalone 1.0.0
Browser/device:
Hosted URL:
Steps to reproduce:
Expected / actual:
Screenshot / error:
Customization already applied:

Briefing for a development assistant

Briefing para assistente de desenvolvimento

Copy this brief when asking for a change. It keeps the buyer edition separate from the publisher’s original games.

Copie este briefing ao pedir uma mudança. Ele mantém esta edição separada dos jogos originais do autor.

Work only in this Twirldrop standalone buyer package. Read this manual and the source README. Preserve the game rules, existing saves and relative asset paths. Keep ranking local, with no PHP, network multiplayer, publisher backend or portal SDK. Keep shipped runtime JS/CSS/JSON readable. For compiled source run npm test and npm run build, then replace game/ with the full dist/. Test launch, play, result, pause, settings, language and save/reload on desktop/mobile. Report exact files, tests and remaining limits. Do not deploy or publish unless I ask.

Credits and third party licenses

Créditos e licenças de terceiros

Game design, code and publisher assets: Polar Games. Bundled dependency/font notices are in THIRD-PARTY-LICENSES/ and the supplied vendor files. The marketplace license governs the game item; third-party notices retain their own terms. Music, effects and voice files included in this package are listed by path in the package manifest. Replacement assets require your own appropriate permissions.

Design, código e assets do autor: Polar Games. Licenças de dependências/fontes ficam em THIRD-PARTY-LICENSES/ e nos arquivos vendor. A licença do marketplace rege o item; terceiros mantêm seus próprios termos. Músicas, efeitos e vozes estão listados no manifesto do pacote. Assets substitutos exigem permissões adequadas.

Custom development

Desenvolvimento sob medida

Custom reskins, new mechanics, online services and platform integrations are separate from item support. Discuss the scope first through the marketplace contact channel or willian@polargames.com.br. No hosted multiplayer, lifetime support or guaranteed revenue comes with this download.

Mudanças visuais completas, novas mecânicas, serviços online e integrações são separados do suporte do item. Converse sobre o escopo pelo marketplace ou willian@polargames.com.br. A compra não inclui multiplayer hospedado, suporte vitalício ou receita garantida.