HSE and HNET
HSE® is a Halo CE server extension (not a server app!). It incorporates multiple modules, although the term "module" is a misnomer as none of the modules can be separated from each other. HSE® itself can not be disabled, but HCE® and HNET® can be disabled or enabled at will.
HSE® will probably only ever be supported on Halo CE, not Halo PC, unless there's a real need for it. The differences are minimal, so at some point, there may be a PC version.
Modules:
HSE® - Halo Server Extensions - Contains administration, gameplay, and player interaction modifications to the base Halo CE server.
HCE® - Halo Chat Extensions - Contains base Halo CE Chat modifications such as vehicle chat format change, but also includes Chat Groups (CG), Name Tags (NT), Favourite Shouts (FS) and many other features.
HNET® - Halo Network - Adds on a higher level of Chat, Administration, Sanctions, Statistics, and many other features. The concept is that a main set of web servers allow inter-server chat, broadcasts, centralized administration, player statistics, and server error logging.
As of June 2018, the following are some of the features of HSE®, HCE® and HNET®
Administration - Admin/Moderator administration either in an XML file compatible with Gandanur, or using HNET® for centralized administration of server groups, administrators and moderators and their privilege levels.
Sanctions - A full range of kick, autokick (continual kicking of a user for a predefined number of times), mute, freeze, prey (can move, but can not inflict any damage), and of course, the old standard, banning. Banning can be done in multiple ways. By playername/IP address, by IP address range only, or by using a "bad name" that will cause a specific name to be kicked off the server. An HNET® enabled server sends almost all sanctions up to HNET®, so if the interloper joins another server in the same server group, they are banned, autokicked, prey'd, frozen, etc.
AFK/MIA - AFK can be called by using "brb" or .afk commands. MIA applies to missing-in-action players who go idle. Various stages of MIA occur, including stages where the player will be respawned so they drop a game objective (flag/skull ball), etc.
Chat functions - Directed chat that allows a player to send a message ONLY to a single player, a list of players, or using ChatGroups (CGs), or NameTags (NTs). A ChatGroup can be defined as a list of players. A NameTag points at a single player and can be used as a shortcut. Favourite Shouts (FSs) can be used to quickly send a preset message, whether in public chat, team chat, vehicle chat, or directed chat. FSs can also be used to store commands and be executed at will.
Interserver communications using HNET® - "global" chats through HNET® can be sent, to a single player or CG/NT. Not only chat, but server broadcasts, announcements, console commands to all or chosen servers. HNET® administration is done through a central web interface. Users, their privilege levels, what servers they can administer/moderate, etc.
HNET® centralized storage for users - CGs, NTs, FSs, key assignments (which key is used for directed chat, FS use, etc), and many other flags are stored in HNET® when the server is HNET® enabled. A user can go to any other server and retrieve their custom settings from HNET® when they login.
Scheduling system - Any time of day, week, month or even year can be defined, as well as a length of time for it to run, and how often to repeat. Any server command can be scheduled, including both stock Halo commands as well as HSE® commands. One example of this is the current system in the Realworld Guild servers where we send announcements of upcoming sessions, as well as sessions in progress, to all servers in the server group. Again, anything can be scheduled. Mapcycle changes, sv_public 0/1, all these things can be automated and set to a schedule.
Map handling - classic map voting, map and gametype (GT) "tags" can be defined in the init which will then be used to display map/GT for map voting. A special command can be used to match a map and GT either by flags (ctf, slayer, etc) or by specific GT name (REALctf from the savegames folder). This command can be used to run ANY command as a map is loaded.
Include files - In the init.txt, any other file can be "included" on the fly. You can create a file called "defaults.txt" and then every server you run can then include that file in the init.txt and you can set defaults for all servers using one common file. Include files can be used from RCON or the main console on demand. Any HSE® command can use an include file for arguments, so if you wanted to define a set of schedules, one schedule command with an include file spec can be used to read any number of a list of arguments.
Patterns, player number, and quit list - most if not all sanctions, se_on_map (execute a command when game starts), chat destinations, defining CG/NT and basically everything, can use a "pattern" or a player number. If I want to ban a player who's name is ESCR0T069 for example, I can ".ban *69" or ".ban esc*". Patterns are not case sensitive. In some contexts, multiple matches are not permitted, especially sanctions, however UN-banning can match multiples, for example ".ub *". Quit lists are vital to administration of sanctions. If a player comes in, betrays and then quits, administrators/moderators can check the quit list, and perform a sanction on that "quit player".
Statistics - race lap times, headshot/backtap and other stats are announced and tracked. At the current time (June 2018) more work has to be done on this. The centralized gathering of stats is not something we necessarily want to get into, as this has failed badly in the past, so we are currently reluctant to go too far in this direction. However, it's our intention to fully embrace stats, rewards and other 'level' based achievements or handicaps.
Difficulty levels - modeled after the Easy, Normal, Heroic and Legendary levels from the campaign modes, careful determination has been made of damage amounts and applied accordingly. Players can choose which difficulty level they want to be, or it can be hardcoded and players do not get to choose. It can also be configured to allow players to only increase their difficulty and not go back to an easier level. Appropriate feedback is given for who did what to whom and what difficulty levels they were at. The difficulty system can be turned on and off at will, and the map-specific commands can be used to modify this behavior on the fly.
MOTD files - F2 - Cycling of MOTD files, updating them in-game, using various variables to include information that may be dynamic, etc.
Variables in inter-server broadcasts, announcements, etc. Offsets from a certain time useful for broadcasting "time until session", server IP/port, player specific values like ping or playername, next map or GT name, etc.