DDNet 20.0 released
2026-08-27DDNet 20.0 has been released with the following changes: • 128 player support • Web version • Tabs to open multiple maps at the same time • Android: Add aim-relative joystick and relative direct input • More FPS: Stop rendering off-screen entities, players, hooks, ghosts and spectator chars • Dynamic antiping player prediction (cl_antiping_players 2/3) • Replace invisible assets with default sprites • More FPS: Cache scoreboard text containers • Reuse the text container buffer in CCachedText • Clip hook collision line on maps without telehooks • Improve hook collision line render check • Fix old telehooks not being detected for the telehook check • Fix projectile clipping being applied to start position instead of actual position • Show skin names in scoreboard tooltips • Improve player settings country filter, highlight matches and show reset button
Read the full notes
• Also bind W to +jump by default • Add "Show directory" button to automapper rule selection popup • Minor cleanup of settings menus • Fix potential thread-safety issue in community icon loading • Validate and initialize demo player data • Get server info by const reference instead of copying • Rewrite envelope editor as editor component with separate state per map • Keep map settings, layer/image/sound lists, history UI, font typer and HD/zoom preview state separate for each map • Properly clip envelope editor timebar and inactive region background • Fix points of unused channels being selected by envelope box selection • Properly slow mouse in envelope editor • Add quick action for "Goto position" • Fix quad flipping for multiple quads • Reimplement action to delete selected quads • Attach brushes to a separate internal map, fix invalid texture used for tile layer brush with quad image • Fix incorrect item size for info map item when loading map • Improve validation of map version item and other map data • Avoid marking datafile data as unloaded when it failed to be loaded • Fix dummy_map tool creating invalid map for sv_vanilla_antispoof feature • Ensure snapshot item offsets and sizes are aligned with int32_t • Reject oversized uncompressed packets in UnpackPacket • Validate tune zone of DDNetProjectile snapshot object and tick of sv_preinput messages • Add SSL support for MySQL database connections • Fix rescue blocking team from finishing when used before start line • Don't unfreeze player on skipped rescue • Allow /cancelswap while using super, clarify that /swap is not allowed • Purge acked snapshots from snapshot storage, search starting from the newest snapshot • Include shortened git revision hash in server version, change 0.6.4 game version prefix to 0.6 • Assert non-reserved server gametype instead of checking pure tuning • Split settings menus into separate source files, move UI popup menus to ui_popups.cpp • Improve macOS packaging and MACOS_CODESIGN