Repository navigation
Known Gaps
Things the code does not do, or does differently from what a name or a type suggests. Checked against 2.4.0. Each pairs with the page that covers the feature.
types/index.d.ts is written by hand. A test checks which names it declares, and the engine shapes fixed in 2.3.1 are pinned by a runtime test. Other member shapes are not checked against the runtime, so report a mismatch if you find one.
- Box against circle is never detected.
-
onCollisionEnteron a component fires every fixed step while two colliders overlap, not once on entry, and components get no exit callback. For once per overlap, listen forcollision_enterandcollision_exiton the kernel event bus (2.4.0). See Engine. -
raycastreturnsnull.setGravitydoes nothing. - Every pair of colliders is tested each step.
dopaminejs-themes sets --dopamine-* variables. The core stylesheet reads none of them. See Themes.
-
preloadSoundscalled before the audio context exists (before the firstplayorplayTone) resolves without fetching anything. Since 2.4.0 it registers its keys, so the files load when the context starts. See Sound. - Sound packs are tone definitions. Nothing in the core consumes them, and
SoundManagerhas nosetSoundPack. See Plugin: Sound Packs.
-
plugins.remove(name)unregisters the systems the plugin registered duringinit()(2.4.0). Two cases are not tracked: a system registered afterinit(), and one registered while twouseAsync()inits overlapped. Those stay the plugin's to unregister indestroy(). -
WebGLParticlePluginregisters nothing when WebGL is missing. There is no canvas fallback. - Removing
HowlerAudioPlugindoes not bring back anaudiosystem it replaced. - The WebGL particle system has no sprites, no
fireand nostarBurst, so it cannot be passed toGameUI. -
BattlePassPluginkeeps announced tiers in memory. They fire again after a reload. -
RewardMiddlewareis not connected toRewardSystem. You call it yourself. -
WebhookIntegrationdoes not retry a failed request.
dopaminejs-react ships no TypeScript declarations. Its actions return undefined until the provider's effect has run. See React.
- One player per storage prefix. For several profiles on one device, give each its own
DataServiceprefix. - Levels never go down, even when XP is removed.
-
addXPgets no streak multiplier. OnlyrecordGamedoes. - Progress is stored on the device. Nothing syncs between devices unless you supply a storage adapter that does.
docs/MIGRATION.md on main is corrected, and the themes README on npm (dopaminejs-themes 1.0.2) says that the core stylesheet does not read the theme variables. See Themes.
Start
Progression
Engine
Packages
Reference