Skip to main content

vrchatapi/models/
api_config.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4/// ApiConfig : Global configuration for various features.
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6pub struct ApiConfig {
7    /// The current platform-wide event taking place
8    #[serde(rename = "CampaignStatus")]
9    pub campaign_status: String,
10    /// Toggles if certain assets are preloaded in the background
11    #[serde(rename = "DisableBackgroundPreloads")]
12    pub disable_background_preloads: bool,
13    /// Toggles whether users without a current VRC+ subscription are priority recipients for gift drops
14    #[serde(rename = "LocationGiftingNonSubPrioEnabled")]
15    pub location_gifting_non_sub_prio_enabled: bool,
16    /// Unknown, probably voice optimization testing
17    #[serde(rename = "VoiceEnableDegradation")]
18    pub voice_enable_degradation: bool,
19    /// Unknown, probably voice optimization testing
20    #[serde(rename = "VoiceEnableReceiverLimiting")]
21    pub voice_enable_receiver_limiting: bool,
22    #[serde(rename = "accessLogsUrls")]
23    pub access_logs_urls: models::ApiConfigAccessLogsUrls,
24    /// VRChat's office address
25    #[serde(rename = "address")]
26    pub address: String,
27    #[serde(rename = "ageVerificationInviteVisible")]
28    pub age_verification_invite_visible: bool,
29    #[serde(rename = "ageVerificationP")]
30    pub age_verification_p: bool,
31    #[serde(rename = "ageVerificationStatusVisible")]
32    pub age_verification_status_visible: bool,
33    /// Max retries for avatar analysis requests
34    #[serde(rename = "analysisMaxRetries")]
35    pub analysis_max_retries: i32,
36    /// Interval between retries for avatar analysis requests
37    #[serde(rename = "analysisRetryInterval")]
38    pub analysis_retry_interval: i32,
39    /// Unknown
40    #[serde(rename = "analyticsSegment_NewUI_PctOfUsers")]
41    pub analytics_segment_new_ui_pct_of_users: i32,
42    /// Unknown
43    #[serde(rename = "analyticsSegment_NewUI_Salt")]
44    pub analytics_segment_new_ui_salt: String,
45    /// Public Announcements
46    #[serde(rename = "announcements")]
47    pub announcements: Vec<models::ApiConfigAnnouncement>,
48    #[serde(rename = "audioConfig", skip_serializing_if = "Option::is_none")]
49    pub audio_config: Option<models::ApiConfigAudioConfig>,
50    /// List of supported Languages
51    #[serde(rename = "availableLanguageCodes")]
52    pub available_language_codes: Vec<String>,
53    /// List of supported Languages
54    #[serde(rename = "availableLanguages")]
55    pub available_languages: Vec<String>,
56    #[serde(rename = "avatarPerfLimiter")]
57    pub avatar_perf_limiter: models::ApiConfigAvatarPerfLimiter,
58    /// Unknown
59    #[serde(rename = "chatboxLogBufferSeconds")]
60    pub chatbox_log_buffer_seconds: i32,
61    /// apiKey to be used for all other requests
62    #[serde(rename = "clientApiKey")]
63    pub client_api_key: String,
64    /// Unknown
65    #[serde(rename = "clientBPSCeiling")]
66    pub client_bps_ceiling: i32,
67    /// Unknown
68    #[serde(rename = "clientDisconnectTimeout")]
69    pub client_disconnect_timeout: i32,
70    /// Unknown
71    #[serde(
72        rename = "clientNetDispatchThread",
73        skip_serializing_if = "Option::is_none"
74    )]
75    pub client_net_dispatch_thread: Option<bool>,
76    /// Unknown
77    #[serde(rename = "clientNetDispatchThreadMobile")]
78    pub client_net_dispatch_thread_mobile: bool,
79    /// Unknown
80    #[serde(rename = "clientNetInThread", skip_serializing_if = "Option::is_none")]
81    pub client_net_in_thread: Option<bool>,
82    /// Unknown
83    #[serde(rename = "clientNetInThread2", skip_serializing_if = "Option::is_none")]
84    pub client_net_in_thread2: Option<bool>,
85    /// Unknown
86    #[serde(
87        rename = "clientNetInThreadMobile",
88        skip_serializing_if = "Option::is_none"
89    )]
90    pub client_net_in_thread_mobile: Option<bool>,
91    /// Unknown
92    #[serde(
93        rename = "clientNetInThreadMobile2",
94        skip_serializing_if = "Option::is_none"
95    )]
96    pub client_net_in_thread_mobile2: Option<bool>,
97    /// Unknown
98    #[serde(rename = "clientNetOutThread", skip_serializing_if = "Option::is_none")]
99    pub client_net_out_thread: Option<bool>,
100    /// Unknown
101    #[serde(
102        rename = "clientNetOutThread2",
103        skip_serializing_if = "Option::is_none"
104    )]
105    pub client_net_out_thread2: Option<bool>,
106    /// Unknown
107    #[serde(
108        rename = "clientNetOutThreadMobile",
109        skip_serializing_if = "Option::is_none"
110    )]
111    pub client_net_out_thread_mobile: Option<bool>,
112    /// Unknown
113    #[serde(
114        rename = "clientNetOutThreadMobile2",
115        skip_serializing_if = "Option::is_none"
116    )]
117    pub client_net_out_thread_mobile2: Option<bool>,
118    /// Unknown
119    #[serde(rename = "clientQR", skip_serializing_if = "Option::is_none")]
120    pub client_qr: Option<i32>,
121    /// Unknown
122    #[serde(rename = "clientReservedPlayerBPS")]
123    pub client_reserved_player_bps: i32,
124    /// Unknown
125    #[serde(rename = "clientSentCountAllowance")]
126    pub client_sent_count_allowance: i32,
127    #[serde(rename = "constants")]
128    pub constants: models::ApiConfigConstants,
129    /// VRChat's contact email
130    #[serde(rename = "contactEmail")]
131    pub contact_email: String,
132    /// VRChat's copyright-issues-related email
133    #[serde(rename = "copyrightEmail")]
134    pub copyright_email: String,
135    /// VRChat's DMCA claim webform url
136    #[serde(rename = "copyrightFormUrl")]
137    pub copyright_form_url: String,
138    /// Current version number of the Privacy Agreement
139    #[serde(rename = "currentPrivacyVersion")]
140    pub current_privacy_version: i32,
141    /// Current version number of the Terms of Service
142    #[serde(rename = "currentTOSVersion")]
143    pub current_tos_version: i32,
144    #[serde(rename = "defaultAvatar")]
145    pub default_avatar: String,
146    #[serde(rename = "defaultStickerSet")]
147    pub default_sticker_set: String,
148    /// Unknown
149    #[serde(rename = "devLanguageCodes", skip_serializing_if = "Option::is_none")]
150    pub dev_language_codes: Option<Vec<String>>,
151    /// Link to download the development SDK, use downloadUrls instead
152    #[serde(rename = "devSdkUrl")]
153    pub dev_sdk_url: String,
154    /// Version of the development SDK
155    #[serde(rename = "devSdkVersion")]
156    pub dev_sdk_version: String,
157    /// Unknown, \"dis\" maybe for disconnect?
158    #[serde(rename = "dis-countdown")]
159    pub dis_countdown: String,
160    /// Unknown
161    #[serde(
162        rename = "disableAVProInProton",
163        skip_serializing_if = "Option::is_none"
164    )]
165    pub disable_av_pro_in_proton: Option<bool>,
166    /// Toggles if copying avatars should be disabled
167    #[serde(rename = "disableAvatarCopying")]
168    pub disable_avatar_copying: bool,
169    /// Toggles if avatar gating should be disabled. Avatar gating restricts uploading of avatars to people with the `system_avatar_access` Tag or `admin_avatar_access` Tag
170    #[serde(rename = "disableAvatarGating")]
171    pub disable_avatar_gating: bool,
172    /// Unknown
173    #[serde(rename = "disableCaptcha", skip_serializing_if = "Option::is_none")]
174    pub disable_captcha: Option<bool>,
175    /// Toggles if the Community Labs should be disabled
176    #[serde(rename = "disableCommunityLabs")]
177    pub disable_community_labs: bool,
178    /// Toggles if promotion out of Community Labs should be disabled
179    #[serde(rename = "disableCommunityLabsPromotion")]
180    pub disable_community_labs_promotion: bool,
181    /// Unknown
182    #[serde(rename = "disableEmail")]
183    pub disable_email: bool,
184    /// Toggles if Analytics should be disabled.
185    #[serde(rename = "disableEventStream")]
186    pub disable_event_stream: bool,
187    /// Toggles if feedback gating should be disabled. Feedback gating restricts submission of feedback (reporting a World or User) to people with the `system_feedback_access` Tag.
188    #[serde(rename = "disableFeedbackGating")]
189    pub disable_feedback_gating: bool,
190    /// Unknown, probably toggles compilation of frontend web builds? So internal flag?
191    #[serde(rename = "disableFrontendBuilds")]
192    pub disable_frontend_builds: bool,
193    /// Toggles if gift drops should be disabled
194    #[serde(rename = "disableGiftDrops")]
195    pub disable_gift_drops: bool,
196    /// Unknown
197    #[serde(rename = "disableHello")]
198    pub disable_hello: bool,
199    /// Toggles if signing up for Subscriptions in Oculus is disabled or not.
200    #[serde(rename = "disableOculusSubs")]
201    pub disable_oculus_subs: bool,
202    /// Toggles if new user account registration should be disabled.
203    #[serde(rename = "disableRegistration")]
204    pub disable_registration: bool,
205    /// Toggles if Steam Networking should be disabled. VRChat these days uses Photon Unity Networking (PUN) instead.
206    #[serde(rename = "disableSteamNetworking")]
207    pub disable_steam_networking: bool,
208    /// Toggles if 2FA should be disabled.
209    #[serde(rename = "disableTwoFactorAuth")]
210    pub disable_two_factor_auth: bool,
211    /// Toggles if Udon should be universally disabled in-game.
212    #[serde(rename = "disableUdon")]
213    pub disable_udon: bool,
214    /// Toggles if account upgrading \"linking with Steam/Oculus\" should be disabled.
215    #[serde(rename = "disableUpgradeAccount")]
216    pub disable_upgrade_account: bool,
217    /// Download link for game on the Oculus Rift website.
218    #[serde(rename = "downloadLinkWindows")]
219    pub download_link_windows: String,
220    #[serde(rename = "downloadUrls")]
221    pub download_urls: models::ApiConfigDownloadUrlList,
222    /// Array of DynamicWorldRow objects, used by the game to display the list of world rows
223    #[serde(rename = "dynamicWorldRows")]
224    pub dynamic_world_rows: Vec<models::DynamicContentRow>,
225    /// Unknown
226    #[serde(rename = "economyLedgerBackfill")]
227    pub economy_ledger_backfill: bool,
228    /// Unknown
229    #[serde(rename = "economyLedgerMigrationStop")]
230    pub economy_ledger_migration_stop: String,
231    /// Unknown
232    #[serde(rename = "economyLedgerMode")]
233    pub economy_ledger_mode: String,
234    /// Unknown
235    #[serde(rename = "economyPauseEnd")]
236    pub economy_pause_end: String,
237    /// Unknown
238    #[serde(rename = "economyPauseStart")]
239    pub economy_pause_start: String,
240    /// Unknown
241    #[serde(rename = "economyPurchaseRepairEnabled")]
242    pub economy_purchase_repair_enabled: bool,
243    /// Unknown
244    #[serde(rename = "economyState")]
245    pub economy_state: i32,
246    #[serde(rename = "events")]
247    pub events: models::ApiConfigEvents,
248    /// Unknown
249    #[serde(rename = "forceUseLatestWorld")]
250    pub force_use_latest_world: bool,
251    /// Display type of gifts
252    #[serde(rename = "giftDisplayType")]
253    pub gift_display_type: String,
254    /// Unknown
255    #[serde(rename = "googleApiClientId")]
256    pub google_api_client_id: String,
257    /// WorldID be \"offline\" on User profiles if you are not friends with that user.
258    #[serde(rename = "homeWorldId")]
259    pub home_world_id: String,
260    /// Redirect target if you try to open the base API domain in your browser
261    #[serde(rename = "homepageRedirectTarget")]
262    pub homepage_redirect_target: String,
263    /// WorldID be \"offline\" on User profiles if you are not friends with that user.
264    #[serde(rename = "hubWorldId")]
265    pub hub_world_id: String,
266    /// A list of explicitly allowed origins that worlds can request images from via the Udon's [VRCImageDownloader#DownloadImage](https://creators.vrchat.com/worlds/udon/image-loading/#downloadimage).
267    #[serde(rename = "imageHostUrlList")]
268    pub image_host_url_list: Vec<String>,
269    /// Current app version for iOS
270    #[serde(rename = "iosAppVersion")]
271    pub ios_app_version: Vec<String>,
272    #[serde(rename = "iosVersion")]
273    pub ios_version: models::ApiConfigIosVersion,
274    /// VRChat's job application email
275    #[serde(rename = "jobsEmail")]
276    pub jobs_email: String,
277    /// The maximum number of custom emoji each user may have at a given time.
278    #[serde(rename = "maxUserEmoji")]
279    pub max_user_emoji: i32,
280    /// The maximum number of custom stickers each user may have at a given time.
281    #[serde(rename = "maxUserStickers")]
282    pub max_user_stickers: i32,
283    #[serde(rename = "minSupportedClientBuildNumber")]
284    pub min_supported_client_build_number: models::ApiConfigMinSupportedClientBuildNumber,
285    /// Minimum Unity version required for uploading assets
286    #[serde(rename = "minimumUnityVersionForUploads")]
287    pub minimum_unity_version_for_uploads: String,
288    /// VRChat's moderation related email
289    #[serde(rename = "moderationEmail")]
290    pub moderation_email: String,
291    /// Used in-game to notify a user they aren't allowed to select avatars in private worlds
292    #[serde(rename = "notAllowedToSelectAvatarInPrivateWorldMessage")]
293    pub not_allowed_to_select_avatar_in_private_world_message: String,
294    #[serde(rename = "offlineAnalysis")]
295    pub offline_analysis: models::ApiConfigOfflineAnalysis,
296    /// Unknown
297    #[serde(rename = "photonNameserverOverrides")]
298    pub photon_nameserver_overrides: Vec<String>,
299    /// Unknown
300    #[serde(rename = "photonPublicKeys")]
301    pub photon_public_keys: Vec<String>,
302    /// Currently used youtube-dl.exe hash in SHA1-delimited format
303    #[serde(rename = "player-url-resolver-sha1")]
304    pub player_url_resolver_sha1: String,
305    /// Currently used youtube-dl.exe version
306    #[serde(rename = "player-url-resolver-version")]
307    pub player_url_resolver_version: String,
308    /// Public key, hex encoded
309    #[serde(rename = "publicKey")]
310    pub public_key: String,
311    /// Categories available for reporting objectionable content
312    #[serde(rename = "reportCategories")]
313    pub report_categories: std::collections::HashMap<String, models::ReportCategory>,
314    /// URL to the report form
315    #[serde(rename = "reportFormUrl")]
316    pub report_form_url: String,
317    /// Options for reporting content. Select a key+value from this mapping as the `type` of the report. Select one key+value from the object at reportOptions[type] as the `category` of the report. reportCategories[category] contains user-facing text to display for all possible categories. Select one value from the array at reportOptions[type][category] as the `reason` of the report. reportReasons[reason] contains user-facing text to display for all possible categories.
318    #[serde(rename = "reportOptions")]
319    pub report_options:
320        std::collections::HashMap<String, std::collections::HashMap<String, Vec<String>>>,
321    /// Reasons available for submitting a report
322    #[serde(rename = "reportReasons")]
323    pub report_reasons: std::collections::HashMap<String, models::ReportReason>,
324    #[serde(rename = "requireAgeVerificationBetaTag")]
325    pub require_age_verification_beta_tag: bool,
326    /// Link to the developer FAQ
327    #[serde(rename = "sdkDeveloperFaqUrl")]
328    pub sdk_developer_faq_url: String,
329    /// Link to the official VRChat Discord
330    #[serde(rename = "sdkDiscordUrl")]
331    pub sdk_discord_url: String,
332    /// Used in the SDK to notify a user they aren't allowed to upload avatars/worlds yet
333    #[serde(rename = "sdkNotAllowedToPublishMessage")]
334    pub sdk_not_allowed_to_publish_message: String,
335    /// Unity version supported by the SDK
336    #[serde(rename = "sdkUnityVersion")]
337    pub sdk_unity_version: String,
338    /// A list of explicitly allowed origins that worlds can request strings from via the Udon's [VRCStringDownloader.LoadUrl](https://creators.vrchat.com/worlds/udon/string-loading/#ivrcstringdownload).
339    #[serde(rename = "stringHostUrlList")]
340    pub string_host_url_list: Vec<String>,
341    /// VRChat's support email
342    #[serde(rename = "supportEmail")]
343    pub support_email: String,
344    /// VRChat's support form
345    #[serde(rename = "supportFormUrl")]
346    pub support_form_url: String,
347    /// WorldID be \"offline\" on User profiles if you are not friends with that user.
348    #[serde(rename = "timeOutWorldId")]
349    pub time_out_world_id: String,
350    /// Unknown
351    #[serde(rename = "timekeeping")]
352    pub timekeeping: bool,
353    /// WorldID be \"offline\" on User profiles if you are not friends with that user.
354    #[serde(rename = "tutorialWorldId")]
355    pub tutorial_world_id: String,
356    /// Unknown
357    #[serde(rename = "updateRateMsMaximum")]
358    pub update_rate_ms_maximum: i32,
359    /// Unknown
360    #[serde(rename = "updateRateMsMinimum")]
361    pub update_rate_ms_minimum: i32,
362    /// Unknown
363    #[serde(rename = "updateRateMsNormal")]
364    pub update_rate_ms_normal: i32,
365    /// Unknown
366    #[serde(rename = "updateRateMsUdonManual")]
367    pub update_rate_ms_udon_manual: i32,
368    /// Unknown
369    #[serde(rename = "uploadAnalysisPercent")]
370    pub upload_analysis_percent: i32,
371    /// List of allowed URLs that bypass the \"Allow untrusted URL's\" setting in-game
372    #[serde(rename = "urlList")]
373    pub url_list: Vec<String>,
374    /// Unknown
375    #[serde(rename = "useReliableUdpForVoice")]
376    pub use_reliable_udp_for_voice: bool,
377    /// Download link for game on the Steam website.
378    #[serde(rename = "viveWindowsUrl")]
379    pub vive_windows_url: String,
380    /// Unknown
381    #[serde(rename = "websocketMaxFriendsRefreshDelay")]
382    pub websocket_max_friends_refresh_delay: i32,
383    /// Unknown
384    #[serde(rename = "websocketQuickReconnectTime")]
385    pub websocket_quick_reconnect_time: i32,
386    /// Unknown
387    #[serde(rename = "websocketReconnectMaxDelay")]
388    pub websocket_reconnect_max_delay: i32,
389    /// List of allowed URLs that are allowed to host avatar assets
390    #[serde(rename = "whiteListedAssetUrls")]
391    pub white_listed_asset_urls: Vec<String>,
392}
393
394impl ApiConfig {
395    /// Global configuration for various features.
396    pub fn new(
397        campaign_status: String,
398        disable_background_preloads: bool,
399        location_gifting_non_sub_prio_enabled: bool,
400        voice_enable_degradation: bool,
401        voice_enable_receiver_limiting: bool,
402        access_logs_urls: models::ApiConfigAccessLogsUrls,
403        address: String,
404        age_verification_invite_visible: bool,
405        age_verification_p: bool,
406        age_verification_status_visible: bool,
407        analysis_max_retries: i32,
408        analysis_retry_interval: i32,
409        analytics_segment_new_ui_pct_of_users: i32,
410        analytics_segment_new_ui_salt: String,
411        announcements: Vec<models::ApiConfigAnnouncement>,
412        available_language_codes: Vec<String>,
413        available_languages: Vec<String>,
414        avatar_perf_limiter: models::ApiConfigAvatarPerfLimiter,
415        chatbox_log_buffer_seconds: i32,
416        client_api_key: String,
417        client_bps_ceiling: i32,
418        client_disconnect_timeout: i32,
419        client_net_dispatch_thread_mobile: bool,
420        client_reserved_player_bps: i32,
421        client_sent_count_allowance: i32,
422        constants: models::ApiConfigConstants,
423        contact_email: String,
424        copyright_email: String,
425        copyright_form_url: String,
426        current_privacy_version: i32,
427        current_tos_version: i32,
428        default_avatar: String,
429        default_sticker_set: String,
430        dev_sdk_url: String,
431        dev_sdk_version: String,
432        dis_countdown: String,
433        disable_avatar_copying: bool,
434        disable_avatar_gating: bool,
435        disable_community_labs: bool,
436        disable_community_labs_promotion: bool,
437        disable_email: bool,
438        disable_event_stream: bool,
439        disable_feedback_gating: bool,
440        disable_frontend_builds: bool,
441        disable_gift_drops: bool,
442        disable_hello: bool,
443        disable_oculus_subs: bool,
444        disable_registration: bool,
445        disable_steam_networking: bool,
446        disable_two_factor_auth: bool,
447        disable_udon: bool,
448        disable_upgrade_account: bool,
449        download_link_windows: String,
450        download_urls: models::ApiConfigDownloadUrlList,
451        dynamic_world_rows: Vec<models::DynamicContentRow>,
452        economy_ledger_backfill: bool,
453        economy_ledger_migration_stop: String,
454        economy_ledger_mode: String,
455        economy_pause_end: String,
456        economy_pause_start: String,
457        economy_purchase_repair_enabled: bool,
458        economy_state: i32,
459        events: models::ApiConfigEvents,
460        force_use_latest_world: bool,
461        gift_display_type: String,
462        google_api_client_id: String,
463        home_world_id: String,
464        homepage_redirect_target: String,
465        hub_world_id: String,
466        image_host_url_list: Vec<String>,
467        ios_app_version: Vec<String>,
468        ios_version: models::ApiConfigIosVersion,
469        jobs_email: String,
470        max_user_emoji: i32,
471        max_user_stickers: i32,
472        min_supported_client_build_number: models::ApiConfigMinSupportedClientBuildNumber,
473        minimum_unity_version_for_uploads: String,
474        moderation_email: String,
475        not_allowed_to_select_avatar_in_private_world_message: String,
476        offline_analysis: models::ApiConfigOfflineAnalysis,
477        photon_nameserver_overrides: Vec<String>,
478        photon_public_keys: Vec<String>,
479        player_url_resolver_sha1: String,
480        player_url_resolver_version: String,
481        public_key: String,
482        report_categories: std::collections::HashMap<String, models::ReportCategory>,
483        report_form_url: String,
484        report_options: std::collections::HashMap<
485            String,
486            std::collections::HashMap<String, Vec<String>>,
487        >,
488        report_reasons: std::collections::HashMap<String, models::ReportReason>,
489        require_age_verification_beta_tag: bool,
490        sdk_developer_faq_url: String,
491        sdk_discord_url: String,
492        sdk_not_allowed_to_publish_message: String,
493        sdk_unity_version: String,
494        string_host_url_list: Vec<String>,
495        support_email: String,
496        support_form_url: String,
497        time_out_world_id: String,
498        timekeeping: bool,
499        tutorial_world_id: String,
500        update_rate_ms_maximum: i32,
501        update_rate_ms_minimum: i32,
502        update_rate_ms_normal: i32,
503        update_rate_ms_udon_manual: i32,
504        upload_analysis_percent: i32,
505        url_list: Vec<String>,
506        use_reliable_udp_for_voice: bool,
507        vive_windows_url: String,
508        websocket_max_friends_refresh_delay: i32,
509        websocket_quick_reconnect_time: i32,
510        websocket_reconnect_max_delay: i32,
511        white_listed_asset_urls: Vec<String>,
512    ) -> ApiConfig {
513        ApiConfig {
514            campaign_status,
515            disable_background_preloads,
516            location_gifting_non_sub_prio_enabled,
517            voice_enable_degradation,
518            voice_enable_receiver_limiting,
519            access_logs_urls,
520            address,
521            age_verification_invite_visible,
522            age_verification_p,
523            age_verification_status_visible,
524            analysis_max_retries,
525            analysis_retry_interval,
526            analytics_segment_new_ui_pct_of_users,
527            analytics_segment_new_ui_salt,
528            announcements,
529            audio_config: None,
530            available_language_codes,
531            available_languages,
532            avatar_perf_limiter,
533            chatbox_log_buffer_seconds,
534            client_api_key,
535            client_bps_ceiling,
536            client_disconnect_timeout,
537            client_net_dispatch_thread: None,
538            client_net_dispatch_thread_mobile,
539            client_net_in_thread: None,
540            client_net_in_thread2: None,
541            client_net_in_thread_mobile: None,
542            client_net_in_thread_mobile2: None,
543            client_net_out_thread: None,
544            client_net_out_thread2: None,
545            client_net_out_thread_mobile: None,
546            client_net_out_thread_mobile2: None,
547            client_qr: None,
548            client_reserved_player_bps,
549            client_sent_count_allowance,
550            constants,
551            contact_email,
552            copyright_email,
553            copyright_form_url,
554            current_privacy_version,
555            current_tos_version,
556            default_avatar,
557            default_sticker_set,
558            dev_language_codes: None,
559            dev_sdk_url,
560            dev_sdk_version,
561            dis_countdown,
562            disable_av_pro_in_proton: None,
563            disable_avatar_copying,
564            disable_avatar_gating,
565            disable_captcha: None,
566            disable_community_labs,
567            disable_community_labs_promotion,
568            disable_email,
569            disable_event_stream,
570            disable_feedback_gating,
571            disable_frontend_builds,
572            disable_gift_drops,
573            disable_hello,
574            disable_oculus_subs,
575            disable_registration,
576            disable_steam_networking,
577            disable_two_factor_auth,
578            disable_udon,
579            disable_upgrade_account,
580            download_link_windows,
581            download_urls,
582            dynamic_world_rows,
583            economy_ledger_backfill,
584            economy_ledger_migration_stop,
585            economy_ledger_mode,
586            economy_pause_end,
587            economy_pause_start,
588            economy_purchase_repair_enabled,
589            economy_state,
590            events,
591            force_use_latest_world,
592            gift_display_type,
593            google_api_client_id,
594            home_world_id,
595            homepage_redirect_target,
596            hub_world_id,
597            image_host_url_list,
598            ios_app_version,
599            ios_version,
600            jobs_email,
601            max_user_emoji,
602            max_user_stickers,
603            min_supported_client_build_number,
604            minimum_unity_version_for_uploads,
605            moderation_email,
606            not_allowed_to_select_avatar_in_private_world_message,
607            offline_analysis,
608            photon_nameserver_overrides,
609            photon_public_keys,
610            player_url_resolver_sha1,
611            player_url_resolver_version,
612            public_key,
613            report_categories,
614            report_form_url,
615            report_options,
616            report_reasons,
617            require_age_verification_beta_tag,
618            sdk_developer_faq_url,
619            sdk_discord_url,
620            sdk_not_allowed_to_publish_message,
621            sdk_unity_version,
622            string_host_url_list,
623            support_email,
624            support_form_url,
625            time_out_world_id,
626            timekeeping,
627            tutorial_world_id,
628            update_rate_ms_maximum,
629            update_rate_ms_minimum,
630            update_rate_ms_normal,
631            update_rate_ms_udon_manual,
632            upload_analysis_percent,
633            url_list,
634            use_reliable_udp_for_voice,
635            vive_windows_url,
636            websocket_max_friends_refresh_delay,
637            websocket_quick_reconnect_time,
638            websocket_reconnect_max_delay,
639            white_listed_asset_urls,
640        }
641    }
642}