Serverpreferences
Based on game build 714014 | Last updated: 2026-03-10
Overview
ServerPreferences is a singleton-style class that manages user-configurable preferences for individual servers, including toggling visibility of server names/descriptions and handling profanity filtering. It persists user settings (e.g., whether a server's name/description is hidden) and profanity-filtered servers across sessions using SavePersistentString. It integrates with TheNet, Profile, ProfanityFilter, and Stats for server metadata, profanity detection, and telemetry.
Usage example
-- Example: Hide a specific server's name/description and save preferences
local server_data = { name = "MyServer", description = "Fun lobby!" }
inst.components.serverpreferences:ToggleNameAndDescriptionFilter(server_data)
-- Example: Check if a server's name/description is currently hidden
if inst.components.serverpreferences:IsNameAndDescriptionHidden(server_data) then
-- UI logic for hidden server
end
-- Example: Load and refresh stale entries
inst.components.serverpreferences:Load()
inst.components.serverpreferences:RefreshLastSeen(all_servers_list)
Dependencies & tags
Components used: None (itself is a component-like module, instantiated globally as TheWorld.components.serverpreferences or equivalent).
Tags: None identified.
Properties
| Property | Type | Default Value | Description |
|---|---|---|---|
persistdata | table | {} | Stores per-server preference data (e.g., hidename, lastseen) keyed by server ID. |
profanityservers | table | {} | Tracks server IDs where profanity-filtered name/description has been applied (boolean value: true = hidden). |
dirty | boolean | true | Flag indicating whether persistdata has unsaved changes. |
Main functions
Reset()
- Description: Clears all stored preferences (
persistdataandprofanityservers) and marks the component as dirty for immediate save. - Parameters: None.
- Returns: Nothing.
ToggleNameAndDescriptionFilter(server_data)
- Description: Toggles the
hidenameflag for the given server. If the profanity filter is enabled, it usesprofanityservers; otherwise, it modifiespersistdata. Also records a telemetry event. - Parameters:
server_data(nil|string|table) – Server identifier:nil(current server), a string (server name), or a table withnameanddescriptionfields. - Returns: Nothing.
IsNameAndDescriptionHidden(server_data)
- Description: Checks whether the server's name/description is hidden due to user preference or profanity filtering.
- Parameters:
server_data(nil|string|table) – Server identifier (same format asToggleNameAndDescriptionFilter). - Returns:
boolean–trueif hidden,falseotherwise.
RefreshLastSeen(server_list)
- Description: Updates the
lastseentimestamp for servers in the list that are older than 5 minutes and saves if any changes were made. - Parameters:
server_list(table) – List of server objects to check. - Returns: Nothing.
ClearProfanityFilteredServers()
- Description: Clears the
profanityserverscache (used to reset filtered servers). - Parameters: None.
- Returns: Nothing.
UpdateProfanityFilteredServers(servers)
- Description: Scans a list of servers for profanity in name/description (if enabled by
Profile) and marks them as filtered inprofanityserversif they fail the filter. Only sets servers owned by others as hidden (not server.owner). - Parameters:
servers(table) – List of server objects to scan. - Returns: Nothing.
UpdateProfanityFilteredServer(server)
- Description: Similar to
UpdateProfanityFilteredServers, but for a single server. Ifserverisnil, uses the current server (TheNet). - Parameters:
server(nil|table) – Server object to scan, ornilfor current server. - Returns: Nothing.
GetSaveName()
- Description: Returns the filename used for persistence. Uses
"server_preferences"unless indevbranch, in which case appends the branch name. - Parameters: None.
- Returns:
string– Save filename.
Save(callback)
- Description: Encodes and saves
persistdatato persistent storage ifdirtyistrue. Also purges entries older thanUSER_HISTORY_EXPIRY_TIMEbefore saving. - Parameters:
callback(nil|function) – Optional function called with(success)when done. - Returns: Nothing.
Load(callback)
- Description: Initiates loading of saved data via
TheSim:GetPersistentString. - Parameters:
callback(nil|function) – Optional function called with(success)afterOnLoadcompletes. - Returns: Nothing.
OnLoad(str, callback)
- Description: Processes raw loaded string: decodes JSON into
persistdata, setsdirty=false, re-saves, and invokes callback. - Parameters:
str(string|null) – Raw saved data (may benilor empty).
callback(nil|function) – Optional function called with(success). - Returns: Nothing.
Events & listeners
None.