Working notes from the initial import pass over the upstream
luadch/scripts repository
(snapshot taken 2026-05-05; upstream dead since 2022-08).
Strategy: maximum inclusion. A script is dropped only if its
function is genuinely replaced by a core hub feature already in
luadch-ng/luadch or in the
v3.1.x active backlog, or if it is fundamentally broken in a way that
would require a complete rewrite (not just a Lua-5.4 syntax migration).
- 34 total distinct script families
- 29 T1 (drop-in audit, low-risk migration)
- 4 T2 (works after non-trivial Lua-5.4 fix)
- 1 Deferred (
etc_txtsend- blocked on bundledlfsC library; see entry below) - 0 Drop (replaced by core / fundamentally broken)
- 19 upstream issues mapped to specific scripts
Major findings: No setfenv/getfenv/loadstring/unpack/module calls detected. No os.execute/io.popen/debug.* calls detected. No problematic os.difftime(arg1) 1-arg calls (all are 2-arg). Lua 5.1 → 5.4 migration should be low-risk for this codebase.
Function: Advanced chat room with history, member management, PM-to-OP forwarding.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Uses util_savetable/util_loadtable for persistence. Multi-feature chat with language support. Ready for direct import.
Function: Sends empty lines to main chat to clear display.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Very simple (59 lines), German-only. Safe import.
Function: Send PM to offline users; receives confirmation when they log in.
Tier: T1.
Lua-5.4 issues: None spotted (os.difftime calls: all 2-arg format).
Sandbox issues: None.
Overlap with core backlog: Partial with #78, but complementary.
Upstream issues touching this: #41 (settings in cfg.tbl), #29 (delivery bug), #30 (minlevel/oplevel settings).
Notes: v0.8 rewritten; incompatible with < v0.8 databases. Issues relate to settings management and a delivery logic bug. Ready for import.
Function: Announces scheduled events at configurable rotation intervals.
Tier: T1.
Lua-5.4 issues: None spotted (os.difftime: 2-arg format).
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: #1 (nil concatenation on expired date).
Notes: Ready for import; issue #1 is a fixable logic bug.
Function: Allows users to change passwords (regged user feature).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Multi-language support. Safe import.
Function: Displays configurable banner/MOTD on user login.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Simple and safe.
Function: Shared note/bulletin board with add/delete/show commands.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Chat-based with persistence. Ready to import.
Function: Controls CCPM (client-to-client PM) feature; enables only for ops+.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Partial with #81, but complementary.
Upstream issues touching this: #26 (success rate ~85% due to passive-mode protocol limitation).
Notes: Issue #26 is protocol-level, not a code bug. Safe import.
Function: Warns/blocks users with invalid or missing SU (Supports Upgrade) features.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Partial with #81, but distinct.
Upstream issues touching this: —.
Notes: Ready to import.
Function: Blocks client connections by pattern (DC++ 0.7xx, AirDC++ 2.xx, etc.).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Overlaps with #81 (client blocklist), still valuable standalone.
Upstream issues touching this: —.
Notes: Safe import.
Status: Promoted to luadch-ng/luadch core (luadch-ng/luadch#81, shipped via the 9-PR arc culminating in luadch-ng/luadch#351). Plugin removed from this repo; operators get the blocker out of the box plus ADC +blocker CRUD, HTTP /v1/clientblocker, audit fires, and 40 bundled patterns.
Function: Blocks user announcements from public visibility.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Very simple (67 lines). Safe import.
Function: Limits concurrent connections per user/IP (basic rate limiting).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Partial with #80, but basic (connection-count only, not message-flood).
Upstream issues touching this: —.
Notes: Uses weak tables for session tracking. Safe import.
Function: Reports user level in PM (debug/admin tool).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Tiny (64 lines). Safe import.
Function: Repeats/echoes main chat messages.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: #5 (triggers on hub bot messages as well as user messages).
Notes: Issue #5 is a usability bug. Ready to import.
Function: Announces users' max-hub counts on login.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: German-only. Safe import.
Function: Bot-like PM messaging system with queue/delivery.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Complementary to #84.
Upstream issues touching this: —.
Notes: English version. Ready to import.
Function: Checks/blocks forbidden strings in main/PM; configurable filter lists.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Partial with #78, but distinct (keyword filtering).
Upstream issues touching this: —.
Notes: Complex (515 lines), multi-language, database-driven. Privacy-conscious. Ready to import.
Function: Tracks user online time; blocks search/download if below threshold; rankings.
Tier: T2.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Partial with #80, but distinct (per-user time-accounting).
Upstream issues touching this: #19 (TotalTime stuck at 0; logic bug).
Notes: Large (857 lines), complex state machine. Needs testing post-import. T2 due to complexity.
Function: Announces count of open hubs users are in.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: German-only. Safe import.
Function: Release request system; users request content, others fulfill. Chat + main commands.
Tier: T2.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: #40 (delete should announce), #38 (min-level display bug), #36 (missing opt-out).
Notes: Largest complex script (1032 lines). v0.8 rewritten, incompatible with < v0.8 DB. Issues are feature/display requests. T2 due to size and complexity.
Function: Disconnects users without SSL/TLS; warns team + others.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Overlaps with #77 (TLS-only), but distinct.
Upstream issues touching this: —.
Notes: German-only. Ready to import.
Function: Sends text files to users on request.
Tier: Deferred (re-classed from T1).
Lua-5.4 issues: None spotted.
Sandbox issues: Requires lfs (LuaFileSystem) via require "lfs"
(uses lfs.dir() to enumerate the available text-file directory at
runtime). luadch-ng v3.1.x does not bundle lfs; the plugin
silently fails to load until lfs is provided.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Deferred from the user-info import batch. Three options to
re-import: (a) bundle lfs in the hub build (CMakeLists.txt change,
multi-PR Phase-8+ scope); (b) refactor the plugin to read a
hand-maintained file list instead of lfs.dir-discovery; (c) ship the
plugin as-is with an operator-side lfs install requirement. None
chosen yet; no operator demand observed.
Function: Wishlist/forum system (post requests, users can comment/vote).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Chat-based, persistent. Safe import.
Function: Polling/voting system; create polls, vote, see results.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Large (654 lines), English-only. Exports voting module. Safe import.
Function: Watches RSS/Atom feeds; posts new items to hub.
Tier: T2.
Lua-5.4 issues: None spotted in the script itself.
Sandbox issues: None on
luadch-ng/luadch v3.1.2+.
The plugin's module-level require "socket.http" and require "ssl.https"
calls resolve correctly with the canonical LuaSocket / LuaSec layout that
shipped in v3.1.2 (closes luadch-ng/luadch#88).
Earlier hub releases bundled flat and the plugin would not load there.
Overlap with core backlog: —.
Upstream issues touching this: #35 (hide-links setting breaks feed posting).
Notes: Largest (1453 lines). The plugin bundles slaxml/slaxml.lua
as an XML parser dep; operator-side install requires placing that under
hub/lib/slaxml/ so require "slaxml" resolves via package.path's
lib/?/?.lua rule. Validated end-to-end via cfg.tbl injection: the
plugin loads cleanly under v3.1.2 and the hub smoke harness reports
no script errors.
Function: Anti-download protection; blocks users matching profiles from search/download.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: Complementary to #78/#81.
Upstream issues touching this: —.
Notes: English-only. API2-compliant. Ready to import.
Function: Release announce bot; category-based, scheduled broadcasts, rankings.
Tier: T2.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: #39 (add separator), #22 (timer loading), #18 (delete by name).
Notes: Complex (1279 lines), multi-language. v0.11 recent improvements. Issues are feature requests. T2 due to complexity.
Function: Rotates MOTD/topic at configurable intervals.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: English-only. Safe import.
Function: Validates file tags (release metadata); blocks invalid.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: English-only. Safe import.
Function: Alternative tag-check script (separate from ptx_tagCheck).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Multi-language. Similar to v0.1; both can coexist. Safe import.
Function: Ranks/announces top hub users by activity.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: German-only. Safe import.
Function: Allows admins to add custom prefixes to user nicks (cosmetic).
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: Integrates with etc_onlinecounter. Ready to import.
Function: Displays user's speed/connection info on query.
Tier: T1.
Lua-5.4 issues: None spotted.
Sandbox issues: None.
Overlap with core backlog: —.
Upstream issues touching this: —.
Notes: English-only. Safe import.
- #28: Add search flood protection (core feature, not script)
- #34: Prevent Level XX login until allowed (core feature)
- #33: Schedule restart (core feature)
- #25: Spam protection for main/PM (potential script, none in repo)
- #24: opchat/regchat history incorrect (relates to chat scripts or core, unclear mapping)
- T1 (30 scripts): All ready for direct import with minimal risk.
- T2 (4 scripts): etc_onlinecounter, etc_requests, ptx_RSSFeedWatch, ptx_freshstuff. Ready for import but prioritize testing.
- Drop (0): None dropped.