Updated

The addons

All fifty-six Dot addons for Godot 4 — what each one is for, what it depends on, and where a game plugs into it.

Fifty-six addons that work together and, apart from dot-core, work independently. Each is its own repository under modcommunity, each ships one addons/<name>/ folder, and each has its own headless test suite.

Only `dot-core` is ever a hard dependency

Everything in an optionally column is duck-typed or found through DotRegistry, and none of those addons names another’s identifiers — because in GDScript a script that mentions a missing class_name fails to parse and takes everything referencing it down with it.

Eight are the exception that proves the rule, and each says so: dot-npc-ai and dot-npc-ai-director need dot-npc; dot-player-controller, dot-player-char and dot-player-class need dot-player; dot-server-query and dot-server-security need dot-server, because each one is a piece of a server rather than something a server optionally consults; and dot-game needs dot-server and dot-net together, because it is the wiring between them.

The foundation

Depends on
dot-core — Logging, platform capabilities, paths, configurable node references, layered config, frame-budgeted jobs, multiplayer transports, HTTP.
dot-log dot-core Where DotLog’s records actually go: a rotating file, a memory ring, syslog, a database table or a hosted collector — with flood collapsing, bounded queues and redaction done once in front of all of them.
dot-entity dot-core The id space every world object shares. An allocator whose ids carry their own kind, lookups in both directions, and a record kept beside the node rather than on it.

The player

Who is in the session, what drives them, what they look like and what they are. Every game in the collection uses these.

Depends on
dot-player dot-core The one row everything else reads: who is here, what side, alive, what represents them. Seats survive a reconnect.
dot-player-controller dot-core, dot-player Everything that drives a player. First-person movement written to be predicted and reconciled, third person with an orbit rig, and the switch between them.
dot-player-char dot-core, dot-player What a player looks like and how big they are: the metrics five systems must agree about, a customisation document, a 3D rig, a 2D sheet, a locomotion state machine.
dot-player-class dot-core, dot-player What a player is, as a bounded document with limits and entitlements. A change lands on the next spawn.
dot-physics dot-core Named collision layouts, engine profiles named for how they feel, a surface table, and casts written against layer names.
dot-spawn dot-core Where anything enters the world and why that place. Points and areas, conditions that veto, six selection modes, waves, spawn protection.
dot-team dot-core, optionally dot-spectate Sides that outlive the match, a join/switch/lock policy, and autobalance that is deterministic and explainable.

Identity and content

Depends on
dot-auth dot-core Device-code authentication against the backbone, signed connect tickets, server-side identity.
dot-user dot-core Profiles that follow a person between servers, under a per-scope pseudonymous id.
dot-user-avatar dot-core Avatars as data: a bounded document a server validates against a schema and entitlements without loading a mesh.
dot-platform dot-core, dot-server Joins identity, profile and avatar into one admission flow and binds it to a server.
dot-cloud dot-core Runtime content delivery: signed manifests, a content-addressed cache, resumable parallel downloads, namespaced pack mounting.

Servers and the wire

Depends on
dot-net dot-core Netcode: tick sync, a bit-packed wire format, state replication, snapshot interpolation, client-side prediction, lag compensation, interest management.
dot-server dot-core, optionally dot-auth + dot-cloud The dedicated server: console, RCON, queries, permissions, moderation, votes, modules, dynamic game switching.
dot-game dot-core, dot-server, dot-net The server-side wiring every game repeated: netcode, a bridge, identity, services, a roster, one authoritative tick, and a teardown in reverse. Subclass DotGameModule and write only what is yours.
dot-server-query dot-core, dot-server, optionally dot-stats The server’s side of a server query: DQP — challenged, sectioned, conditionally pollable, reachable from a browser — and the whole of A2S, answered from one snapshot.
dot-server-security dot-core, dot-server, optionally dot-moderation + dot-chat + dot-auth Hardening as configuration: sliding-window rules that escalate warn to gag to kick to ban, anti-cheat that separates proof from suspicion, and external ban feeds. Ships in dry run.
dot-browser dot-core The other half of those queries: a client. DQP over UDP, the same as JSON over a WebSocket, and A2S — behind a list model with sources, filters and favourites.
dot-peer-to-peer dot-core Sessions players host for each other: join codes, readiness, a host election that is a pure function of the member list, and an honest account of NAT.
dot-moderation dot-core Bans, kicks, gags, voice mutes and warnings as one durable record. Publishes the mute and ban sources the others consult.
dot-chat dot-core, optionally dot-moderation Server-authoritative text chat: channels with an audience rule, sanitisation, rate limits, scrollback, commands.
dot-voice dot-core Voice chat: capture, a pluggable codec, a jitter buffer per speaker, and server-side routing to everybody, a team or a radius.
dot-spectate dot-core Who is watching whom and what the server lets them see: seven observer modes, a force-camera policy, the death-cam chain, a broadcast delay.
dot-vote dot-core, optionally dot-server + dot-map Voting for what plays next, as one configurable engine: rtv, nominations, four counting methods, five tie-breaks.

The fight

Depends on
dot-combat dot-core Health, damage and hit registration: analytic hitboxes, deterministic spread, lag-compensated resolution.
dot-weapon dot-core What a player holds and uses: documents naming a behaviour script by path, five fire modes, pooled ammunition.
dot-effects dot-core Status effects, incapacitation and temporary health as one document. It never touches a health value.
dot-loadout dot-core What a player takes into a match, as a document a server validates without loading any content. Plus deterministic world pickups.
dot-inventory dot-core, optionally dot-loadout A full inventory as a document: grids, stacks, weight, equipment, nested containers. Every mutation is an op.
dot-economy dot-core A round-based buy economy: money, a shop, a buy window, refunds and the loss-bonus ladder. It sells ids and grants nothing.
dot-match dot-core The match loop: warmup, rounds, scoring, teams, spawning, respawning. Everything in ticks, driven by one call.
dot-objective dot-core What a round is about: a control point, a bomb, a payload, a flag, an escort, a holdout clock.
dot-2d dot-core The 2D counterpart: deterministic top-down, thrust and mass-based movement, a spatial hash for thousands of entities, deterministic scatter fields.

The world

Depends on
dot-npc dot-core What an NPC is: a catalogue, a population budget, perception that commits to a target, and navigation generated from a code-built map’s own constants.
dot-npc-ai dot-core, dot-npc How one decides: behaviour trees that resume rather than restart, state machines, a blackboard that forgets, and a character instead of a difficulty setting.
dot-npc-ai-director dot-core, dot-npc Population and pacing: build up, sustain, fade, relax — driven by what the players are experiencing rather than by a timer.
dot-vehicle dot-core Vehicles to drive, ride in and shoot from — and the handover, which is the part every game gets wrong.
dot-map dot-core, optionally dot-cloud Maps as content rather than as builds: a catalogue, a rotation, nominations and voting, and a loader that fetches through dot-cloud.
dot-props dot-core A sandbox layer: spawnable props, per-player budgets, an undo stack, a physics gun and a gravity gun. Server-authoritative.
dot-procedural-generation dot-core Generation as an ordered pipeline over a document, with a validator that refuses a map nobody could finish.

Progression

Depends on
dot-timer dot-core Speedrun timers: zones, tracks, stages, styles, replays, records. Sub-tick, so 64 Hz and 128 Hz runs are comparable. 2D and 3D.
dot-leaderboard dot-core, optionally dot-auth Boards, per-player statistics, ranking points, a store interface, and a batched reporter for the backbone.
dot-stats dot-core, optionally dot-auth Statistics a game declares once — counters, gauges, bests, lowests — reported as coalesced deltas.
dot-achievements dot-core, optionally dot-stats What a player has earned, as rules over their numbers: tiers, hidden and secret entries, a store and a reporter.

The person at the keyboard

Depends on
dot-ui dot-core Screens, HUD and menus with no art assets. A screen stack, a settings panel generated from any DotConfig, a rebinder with conflict detection.
dot-settings dot-core Settings as a bounded document with three scopes — including the few a server may clamp and may never read.
dot-console dot-core, optionally dot-server The player’s console: a physical key, a line, history, completion, a bounded scrollback — and command sources rather than a second command system.
dot-audio dot-core Game audio that ships no audio: a catalogue of ids, pooled voices with priority stealing, concurrency caps, a distance cull, music and ducking.
dot-fx dot-core Visual effects as documents: pooled, budgeted, quality-tiered, distance-culled. An effect never changes the simulation.
dot-lighting dot-core A world’s lighting as a document: sun, ambient, fog, sky and post-processing, read from what a map carries, with a quality profile per machine. Not dot-fx, because lighting is not safe to drop.