The login module is what handles everything between connection and the command shell — the matrix screen (if any), the Login: / Password: prompts, the new-user signup flow, and any pre-logon banners or chooser screens. It's a loadable module (default login; source: exec/login.js), not part of the shell, and a sysop can swap it out for a custom one.
These are also loadable modules called by Synchronet (not by the shell) at specific points in the logon sequence:
logon) — runs after successful authentication, before the shell startsnewuser_prompts) — collects new-user info during signupnewuser_info) — informational display for new usersnewuser) — runs after a new account is created