CINXE.COM
Roblox
<!DOCTYPE html> <!--[if IE 8]><html class="ie8" ng-app="robloxApp"><![endif]--> <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]--> <head data-machine-id="7fbb0caa-7197-80fa-3b75-ab333e0687b9"> <!-- MachineID: 7fbb0caa-7197-80fa-3b75-ab333e0687b9 --> <title>Roblox</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,requiresActiveX=true" /> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="author" content="Roblox Corporation" /> <meta name="description" content="Roblox is a global platform that brings people together through play." /> <meta name="keywords" content="free games, online games, building games, virtual worlds, free mmo, gaming cloud, physics engine" /> <meta name="apple-itunes-app" content="app-id=431946152" /> <link rel="apple-touch-icon" href="https://images.rbxcdn.com/7c5fe83dffa97250aaddd54178900ea7.png" /> <script type="application/ld+json"> { "@context" : "https://schema.org", "@type" : "Organization", "name" : "Roblox", "url" : "https://www.roblox.com/", "image" : "https://images.rbxcdn.com/fc3f3e3158fc20ebb5ccc972064ebfe6.png", "logo" : "https://images.rbxcdn.com/fc3f3e3158fc20ebb5ccc972064ebfe6.png", "email" : "info@roblox.com", "sameAs" : [ "https://www.facebook.com/roblox/", "https://twitter.com/roblox", "https://www.linkedin.com/company/147977", "https://www.instagram.com/roblox/", "https://www.youtube.com/user/roblox", "https://www.twitch.tv/roblox" ] } </script> <meta ng-csp="no-unsafe-eval"> <meta name="locale-data" data-language-code="en_us" data-language-name="English" data-url-locale="" data-override-language-header="false" /> <meta name="device-meta" data-device-type="computer" data-is-in-app="false" data-is-desktop="true" data-is-phone="false" data-is-tablet="false" data-is-console="false" data-is-android-app="false" data-is-ios-app="false" data-is-uwp-app="false" data-is-xbox-app="false" data-is-amazon-app="false" data-is-win32-app="false" data-is-studio="false" data-is-game-client-browser="false" data-is-ios-device="false" data-is-android-device="false" data-is-universal-app="false" data-app-type="unknown" data-is-chrome-os="false" /> <meta name="environment-meta" data-domain="roblox.com" data-is-testing-site="false" /> <meta id="roblox-display-names" data-enabled="true"></meta> <meta name="hardware-backed-authentication-data" data-is-secure-authentication-intent-enabled="true" data-is-bound-auth-token-enabled="true" data-bound-auth-token-whitelist="{"Whitelist":[{"apiSite":"auth.roblox.com","sampleRate":"100"},{"apiSite":"accountsettings.roblox.com","sampleRate":"100"},{"apiSite":"inventory.roblox.com","sampleRate":"100"},{"apiSite":"accountinformation.roblox.com","sampleRate":"100"}, {"apiSite":"billing.roblox.com","sampleRate":"100"}, {"apiSite":"premiumfeatures.roblox.com","sampleRate":"100"}, {"apiSite":"trades.roblox.com","sampleRate":"100"}, {"apiSite":"groups.roblox.com","sampleRate":"100"}, {"apiSite":"adconfiguration.roblox.com","sampleRate":"100"}, {"apiSite":"ads.roblox.com","sampleRate":"100"}, {"apiSite":"assetdelivery.roblox.com","sampleRate":"100"}, {"apiSite":"avatar.roblox.com","sampleRate":"100"}, {"apiSite":"badges.roblox.com","sampleRate":"100"}, {"apiSite":"catalog.roblox.com","sampleRate":"100"}, {"apiSite":"chat.roblox.com","sampleRate":"100"}, {"apiSite":"chatmoderation.roblox.com","sampleRate":"100"}, {"apiSite":"clientsettings.roblox.com","sampleRate":"100"}, {"apiSite":"contacts.roblox.com","sampleRate":"100"}, {"apiSite":"contentstore.roblox.com","sampleRate":"100"}, {"apiSite":"develop.roblox.com","sampleRate":"100"}, {"apiSite":"economy.roblox.com","sampleRate":"100"}, {"apiSite":"engagementpayouts.roblox.com","sampleRate":"100"}, {"apiSite":"followings.roblox.com","sampleRate":"100"}, {"apiSite":"friends.roblox.com","sampleRate":"100"}, {"apiSite":"gameinternationalization.roblox.com","sampleRate":"100"}, {"apiSite":"gamejoin.roblox.com","sampleRate":"100"}, {"apiSite":"gamepersistence.roblox.com","sampleRate":"100"}, {"apiSite":"games.roblox.com","sampleRate":"100"}, {"apiSite":"groupsmoderation.roblox.com","sampleRate":"100"},{"apiSite":"itemconfiguration.roblox.com","sampleRate":"100"}, {"apiSite":"locale.roblox.com","sampleRate":"100"}, {"apiSite":"localizationtables.roblox.com","sampleRate":"100"}, {"apiSite":"metrics.roblox.com","sampleRate":"100"}, {"apiSite":"moderation.roblox.com","sampleRate":"100"}, {"apiSite":"notifications.roblox.com","sampleRate":"100"}, {"apiSite":"points.roblox.com","sampleRate":"100"}, {"apiSite":"presence.roblox.com","sampleRate":"100"}, {"apiSite":"publish.roblox.com","sampleRate":"100"}, {"apiSite":"privatemessages.roblox.com","sampleRate":"100"}, {"apiSite":"thumbnailsresizer.roblox.com","sampleRate":"100"}, {"apiSite":"thumbnails.roblox.com","sampleRate":"100"}, {"apiSite":"translationroles.roblox.com","sampleRate":"100"}, {"apiSite":"translations.roblox.com","sampleRate":"100"}, {"apiSite":"twostepverification.roblox.com","sampleRate":"100"}, {"apiSite":"usermoderation.roblox.com","sampleRate":"100"}, {"apiSite":"users.roblox.com","sampleRate":"100"}, {"apiSite":"voice.roblox.com","sampleRate":"100"}, {"apiSite":"realtimenotifications.roblox.com","sampleRate":"100"}, {"apiSite":"jQuery","sampleRate":"1000000"}]}" data-bound-auth-token-exemptlist="{"Exemptlist":[]}" data-hba-indexed-db-name="hbaDB" data-hba-indexed-db-obj-store-name="hbaObjectStore" data-hba-indexed-db-key-name="hba_keys" data-hba-indexed-db-version="1" data-bat-event-sample-rate="500" /> <meta name="account-switching-data" data-is-account-switching-enabled="true" /> <meta name="passkey-data" data-is-passkey-login-enabled="true" /> <meta name="passkey-data-android" data-is-passkey-login-enabled-android="true" /> <meta name="page-meta" data-internal-page-name="SupportedBrowsers" /> <meta name="page-retry-header-enabled" data-retry-attempt-header-enabled="True" /> <script type="text/javascript"> var Roblox = Roblox || {}; Roblox.BundleVerifierConstants = { isMetricsApiEnabled: true, eventStreamUrl: "//ecsv2.roblox.com/pe?t=diagnostic", deviceType: "Computer", cdnLoggingEnabled: JSON.parse("true") }; </script> <script type="text/javascript"> var Roblox = Roblox || {}; Roblox.BundleDetector = (function () { var isMetricsApiEnabled = Roblox.BundleVerifierConstants && Roblox.BundleVerifierConstants.isMetricsApiEnabled; var loadStates = { loadSuccess: "loadSuccess", loadFailure: "loadFailure", executionFailure: "executionFailure" }; var bundleContentTypes = { javascript: "javascript", css: "css" }; var ephemeralCounterNames = { cdnPrefix: "CDNBundleError_", unknown: "CDNBundleError_unknown", cssError: "CssBundleError", jsError: "JavascriptBundleError", jsFileError: "JsFileExecutionError", resourceError: "ResourcePerformance_Error", resourceLoaded: "ResourcePerformance_Loaded" }; return { jsBundlesLoaded: {}, bundlesReported: {}, counterNames: ephemeralCounterNames, loadStates: loadStates, bundleContentTypes: bundleContentTypes, timing: undefined, setTiming: function (windowTiming) { this.timing = windowTiming; }, getLoadTime: function () { if (this.timing && this.timing.domComplete) { return this.getCurrentTime() - this.timing.domComplete; } }, getCurrentTime: function () { return new Date().getTime(); }, getCdnProviderName: function (bundleUrl, callBack) { if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) { var xhr = new XMLHttpRequest(); xhr.open('GET', bundleUrl, true); xhr.onreadystatechange = function () { if (xhr.readyState === xhr.HEADERS_RECEIVED) { try { var headerValue = xhr.getResponseHeader("rbx-cdn-provider"); if (headerValue) { callBack(headerValue); } else { callBack(); } } catch (e) { callBack(); } } }; xhr.onerror = function () { callBack(); }; xhr.send(); } else { callBack(); } }, getCdnProviderAndReportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType) { this.getCdnProviderName(bundleUrl, function (cdnProviderName) { Roblox.BundleDetector.reportMetrics(bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName); }); }, reportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName) { if (!isMetricsApiEnabled || !bundleUrl || !loadState || !loadStates.hasOwnProperty(loadState) || !bundleContentType || !bundleContentTypes.hasOwnProperty(bundleContentType)) { return; } var xhr = new XMLHttpRequest(); var metricsApiUrl = (Roblox.EnvironmentUrls && Roblox.EnvironmentUrls.metricsApi) || "https://metrics.roblox.com"; xhr.open("POST", metricsApiUrl + "/v1/bundle-metrics/report", true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.withCredentials = true; xhr.send(JSON.stringify({ bundleUrl: bundleUrl, bundleName: bundleName || "", bundleContentType: bundleContentType, loadState: loadState, cdnProviderName: cdnProviderName, loadTimeInMilliseconds: this.getLoadTime() || 0 })); }, logToEphemeralStatistics: function (sequenceName, value) { var deviceType = Roblox.BundleVerifierConstants.deviceType; sequenceName += "_" + deviceType; var xhr = new XMLHttpRequest(); xhr.open('POST', '/game/report-stats?name=' + sequenceName + "&value=" + value, true); xhr.withCredentials = true; xhr.send(); }, logToEphemeralCounter: function (ephemeralCounterName) { var deviceType = Roblox.BundleVerifierConstants.deviceType; ephemeralCounterName += "_" + deviceType; //log to ephemeral counters - taken from ET.js var xhr = new XMLHttpRequest(); xhr.open('POST', '/game/report-event?name=' + ephemeralCounterName, true); xhr.withCredentials = true; xhr.send(); }, logToEventStream: function (failedBundle, ctx, cdnProvider, status) { var urlUnencoded = window.location.href; if (Roblox.Endpoints && Roblox.Endpoints.supportLocalizedUrls) { // Remove urlLocale from event stream to prevent breaking change urlUnencoded = Roblox.Endpoints.removeUrlLocale(urlUnencoded); } var esUrl = Roblox.BundleVerifierConstants.eventStreamUrl, currentPageUrl = encodeURIComponent(urlUnencoded); var deviceType = Roblox.BundleVerifierConstants.deviceType; ctx += "_" + deviceType; //try and grab performance data. //Note that this is the performance of the xmlhttprequest rather than the original resource load. var duration = 0; if (window.performance) { var perfTiming = window.performance.getEntriesByName(failedBundle); if (perfTiming.length > 0) { var data = perfTiming[0]; duration = data.duration || 0; } } //log to event stream (diagnostic) var params = "&evt=webBundleError&url=" + currentPageUrl + "&ctx=" + ctx + "&fileSourceUrl=" + encodeURIComponent(failedBundle) + "&cdnName=" + (cdnProvider || "unknown") + "&statusCode=" + (status || "unknown") + "&loadDuration=" + Math.floor(duration); var img = new Image(); img.src = esUrl + params; }, getCdnInfo: function (failedBundle, ctx, fileType) { if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) { var xhr = new XMLHttpRequest(); var counter = this.counterNames; xhr.open('GET', failedBundle, true); var cdnProvider; //succesful request xhr.onreadystatechange = function () { if (xhr.readyState === xhr.HEADERS_RECEIVED) { cdnProvider = xhr.getResponseHeader("rbx-cdn-provider"); if (cdnProvider && cdnProvider.length > 0) { Roblox.BundleDetector.logToEphemeralCounter(counter.cdnPrefix + cdnProvider + "_" + fileType); } else { Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType); } } else if (xhr.readyState === xhr.DONE) { // append status to cdn provider so we know its not related to network error. Roblox.BundleDetector.logToEventStream(failedBundle, ctx, cdnProvider, xhr.status); } }; //attach to possible things that can go wrong with the request. //additionally a network error will trigger this callback xhr.onerror = function () { Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType); Roblox.BundleDetector.logToEventStream(failedBundle, ctx, counter.unknown); }; xhr.send(); } else { this.logToEventStream(failedBundle, ctx); } }, reportResourceError: function (resourceName) { var ephemeralCounterName = this.counterNames.resourceError + "_" + resourceName; this.logToEphemeralCounter(ephemeralCounterName); }, reportResourceLoaded: function (resourceName) { var loadTimeInMs = this.getLoadTime(); if (loadTimeInMs) { var sequenceName = this.counterNames.resourceLoaded + "_" + resourceName; this.logToEphemeralStatistics(sequenceName, loadTimeInMs); } }, reportBundleError: function (bundleTag) { var ephemeralCounterName, failedBundle, ctx, contentType; if (bundleTag.rel && bundleTag.rel === "stylesheet") { ephemeralCounterName = this.counterNames.cssError; failedBundle = bundleTag.href; ctx = "css"; contentType = bundleContentTypes.css; } else { ephemeralCounterName = this.counterNames.jsError; failedBundle = bundleTag.src; ctx = "js"; contentType = bundleContentTypes.javascript; } //mark that we logged this bundle this.bundlesReported[failedBundle] = true; //e.g. javascriptBundleError_Computer this.logToEphemeralCounter(ephemeralCounterName); //this will also log to event stream this.getCdnInfo(failedBundle, ctx, ctx); var bundleName; if (bundleTag.dataset) { bundleName = bundleTag.dataset.bundlename; } else { bundleName = bundleTag.getAttribute('data-bundlename'); } this.getCdnProviderAndReportMetrics(failedBundle, bundleName, loadStates.loadFailure, contentType); }, bundleDetected: function (bundleName) { this.jsBundlesLoaded[bundleName] = true; }, verifyBundles: function (document) { var ephemeralCounterName = this.counterNames.jsFileError, eventContext = ephemeralCounterName; //grab all roblox script tags in the page. var scripts = (document && document.scripts) || window.document.scripts; var errorsList = []; var bundleName; var monitor; for (var i = 0; i < scripts.length; i++) { var item = scripts[i]; if (item.dataset) { bundleName = item.dataset.bundlename; monitor = item.dataset.monitor; } else { bundleName = item.getAttribute('data-bundlename'); monitor = item.getAttribute('data-monitor'); } if (item.src && monitor && bundleName) { if (!Roblox.BundleDetector.jsBundlesLoaded.hasOwnProperty(bundleName)) { errorsList.push(item); } } } if (errorsList.length > 0) { for (var j = 0; j < errorsList.length; j++) { var script = errorsList[j]; if (!this.bundlesReported[script.src]) { //log the counter only if the file is actually corrupted, not just due to failure to load //e.g. JsFileExecutionError_Computer this.logToEphemeralCounter(ephemeralCounterName); this.getCdnInfo(script.src, eventContext, 'js'); if (script.dataset) { bundleName = script.dataset.bundlename; } else { bundleName = script.getAttribute('data-bundlename'); } this.getCdnProviderAndReportMetrics(script.src, bundleName, loadStates.executionFailure, bundleContentTypes.javascript); } } } } }; })(); window.addEventListener("load", function (evt) { Roblox.BundleDetector.verifyBundles(); }); Roblox.BundleDetector.setTiming(window.performance.timing); //# sourceURL=somename.js </script> <link href="https://images.rbxcdn.com/7bba321f4d8328683d6e59487ce514eb" rel="icon" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="StyleGuide" data-bundle-source="Main" href="https://css.rbxcdn.com/4b6b27d98e2c26f64ae53c2073ae9be982e055657a26519bbf962a21e0abec29.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Builder" data-bundle-source="Main" href="https://css.rbxcdn.com/8fa43545250dfbd7d96d164fe24e886391fdccc9b87b0dc91ce78933aebcda43.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Thumbnails" data-bundle-source="Main" href="https://css.rbxcdn.com/d8d1cfe6a81efdc0eaa7a64ddeec42230944f4e6330e5eafafcda10cf9e5286a.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="CookieBannerV3" data-bundle-source="Main" href="https://css.rbxcdn.com/2c2a709240897ce382b7ff55be4347cd0994ab1e2d6ed3b56649e54b0e97e13a.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Footer" data-bundle-source="Main" href="https://css.rbxcdn.com/12cb426f1649d8c5573f65f01b0e69618bd31ed9dbbf7be213d742200307601f.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="ConfigureWebApps" data-bundle-source="Main" href="https://css.rbxcdn.com/08def520152a575438e73a81aa9a310c2415c327df7b624a24aa6e794d24dba3.css" /> <link rel="canonical" href="https://www.roblox.com/supported-browsers" /> <link rel="alternate" href="https://www.roblox.com/supported-browsers" hreflang="x-default" /> <link rel="alternate" href="https://www.roblox.com/de/supported-browsers" hreflang="de" /> <link rel="alternate" href="https://www.roblox.com/es/supported-browsers" hreflang="es" /> <link rel="alternate" href="https://www.roblox.com/fr/supported-browsers" hreflang="fr" /> <link rel="alternate" href="https://www.roblox.com/id/supported-browsers" hreflang="id" /> <link rel="alternate" href="https://www.roblox.com/it/supported-browsers" hreflang="it" /> <link rel="alternate" href="https://www.roblox.com/ja/supported-browsers" hreflang="ja" /> <link rel="alternate" href="https://www.roblox.com/ko/supported-browsers" hreflang="ko" /> <link rel="alternate" href="https://www.roblox.com/pl/supported-browsers" hreflang="pl" /> <link rel="alternate" href="https://www.roblox.com/pt/supported-browsers" hreflang="pt" /> <link rel="alternate" href="https://www.roblox.com/th/supported-browsers" hreflang="th" /> <link rel="alternate" href="https://www.roblox.com/tr/supported-browsers" hreflang="tr" /> <link rel="alternate" href="https://www.roblox.com/vi/supported-browsers" hreflang="vi" /> <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet' href='https://static.rbxcdn.com/css/leanbase___fb0c7d1e28371fc5e8367ce241b98d69_m.css/fetch' /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="AccessManagementUpsellV2" data-bundle-source="Main" href="https://css.rbxcdn.com/9e359afacbf43adae364437d6c7671f1f7f616d62e584e5a03c08a3db28ac08b.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Captcha" data-bundle-source="Main" href="https://css.rbxcdn.com/4c3fec0ce872f94f2c2be18e6fd016e43fdc4ccecad591cdaa3a63116f512178.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="SupportedBrowsers" data-bundle-source="Main" href="https://css.rbxcdn.com/5675f1b05c4902992323a19af52a6a1918eb3dc98e77b588719f8a940715524b.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="RobuxIcon" data-bundle-source="Main" href="https://css.rbxcdn.com/336216d7fcd008e8831ac95c8abbc4dab5f4f23d6b721dae128b4a905f2e35ce.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="ItemPurchaseUpsell" data-bundle-source="Main" href="https://css.rbxcdn.com/3c4bd9b17b9020d9ebc87d4542a68a949a9de6150a55a92f0e65514520ee777e.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="CaptchaCore" data-bundle-source="Main" href="https://css.rbxcdn.com/b8f8f15a57a66e73469ae72eea7d8905346afa78b9f2397627cd099f7dcc779a.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="VerificationUpsell" data-bundle-source="Main" href="https://css.rbxcdn.com/c56998f707ed8eb87cbfe169758e4bf5ec378d807483904507f8562ad5b64835.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="EmailVerifyCodeModal" data-bundle-source="Main" href="https://css.rbxcdn.com/66b2fd496e668938e3b0e2d9a0c12f9f88c3a1a4974608f69059d8061fc0141f.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Challenge" data-bundle-source="Main" href="https://css.rbxcdn.com/922c06322cd24e8f5e5eabdbe9cedf105238e436f5d554673d0778bba832ec44.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="ItemPurchase" data-bundle-source="Main" href="https://css.rbxcdn.com/0fd144dfddc01ac3e7993d0305a56cf1027a2aed388c9be44c0d37f565b93048.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="IdVerification" data-bundle-source="Main" href="https://css.rbxcdn.com/3bca47a98d58fdf98a7063c4f3b390671e5326ed559813887f3945876c997da6.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="AccessManagementUpsell" data-bundle-source="Main" href="https://css.rbxcdn.com/d45e200658a1343116bbf4a88c367d093758085e7d001918d641c85b2143468f.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="GameLaunch" data-bundle-source="Main" href="https://css.rbxcdn.com/c5373f0dced8d7be7bb3ad1b978fb8af776157fcc41ad3d5c92d725063c2e6e1.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="RobloxBadges" data-bundle-source="Main" href="https://css.rbxcdn.com/da45920fef8b22d35ee6cce0702d290241252fbfd99695e2abc0934d20de0974.css" /> <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="UserAgreementsChecker" data-bundle-source="Main" href="https://css.rbxcdn.com/d5a3728b78be729b693aadf79a1f45f0fa49c15fe863a0d7dd631b75f9e82207.css" /> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="EnvironmentUrls" data-bundle-source="Main" src="https://js.rbxcdn.com/bce44770a3e3313217e86429c0d685dd245a8e4a8f79dc4b8bc6e0936f8e4872.js"></script> <script type="text/javascript"> var Roblox = Roblox || {}; Roblox.GaEventSettings = { gaDFPPreRollEnabled: "false" === "true", gaLaunchAttemptAndLaunchSuccessEnabled: "false" === "true", gaPerformanceEventEnabled: "false" === "true" }; </script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='headerinit' type='text/javascript' src='https://js.rbxcdn.com/08a545ae1503441b55f5236794feccec.js'></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Polyfill" data-bundle-source="Main" src="https://js.rbxcdn.com/358ad3aa1eb24fc3f1183d478af41316f5d04bae004f77647d885c6b861e67ac.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="XsrfProtection" data-bundle-source="Main" src="https://js.rbxcdn.com/260757df563ab52c2270fe06faebfcf67bc9996c718dd4ed04b61e7f4676306d.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="HeaderScripts" data-bundle-source="Main" src="https://js.rbxcdn.com/341005be30d4e45dde31bae2877e83edbda9f20ad16bd405e240f24050e32623.js"></script> <meta name="roblox-tracer-meta-data" data-access-token="" data-service-name="Web" data-tracer-enabled="false" data-api-sites-request-allow-list="friends.roblox.com,chat.roblox.com,thumbnails.roblox.com,games.roblox.com,gameinternationalization.roblox.com,localizationtables.roblox.com" data-sample-rate="0" data-is-instrument-page-performance-enabled="false"/><script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="RobloxTracer" data-bundle-source="Main" src="https://js.rbxcdn.com/2ad6b2753f8558f55fc35440842b58f6a8f74b40879dd503fa8394beac7d3370.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" /> <script> //Set if it browser's do not track flag is enabled var Roblox = Roblox || {}; (function() { var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack; if (typeof window.external !== "undefined" && typeof window.external.msTrackingProtectionEnabled !== "undefined") { dnt = dnt || window.external.msTrackingProtectionEnabled(); } Roblox.browserDoNotTrack = dnt == "1" || dnt == "yes" || dnt === true; })(); </script> <script type="text/javascript"> var _gaq = _gaq || []; window.GoogleAnalyticsDisableRoblox2 = true; _gaq.push(['b._setAccount', 'UA-486632-1']); _gaq.push(['b._setSampleRate', '5']); _gaq.push(['b._setCampSourceKey', 'rbx_source']); _gaq.push(['b._setCampMediumKey', 'rbx_medium']); _gaq.push(['b._setCampContentKey', 'rbx_campaign']); _gaq.push(['b._setDomainName', 'roblox.com']); _gaq.push(['b._setCustomVar', 1, 'Visitor', 'Anonymous', 2]); _gaq.push(['b._setPageGroup', 1, 'SupportedBrowsers']); var eventsArr = ['b._setCustomVar', 2, 'FirstTimeVisitor', 'true', 3]; _gaq.push(eventsArr); $(function() { if(GoogleAnalyticsEvents) { GoogleAnalyticsEvents.Log(eventsArr); } }); _gaq.push(['b._trackPageview']); _gaq.push(['c._setAccount', 'UA-26810151-2']); _gaq.push(['c._setSampleRate', '1']); _gaq.push(['c._setDomainName', 'roblox.com']); _gaq.push(['c._setPageGroup', 1, 'SupportedBrowsers']); </script> <script type="text/javascript"> if (Roblox && Roblox.EventStream) { Roblox.EventStream.Init("//ecsv2.roblox.com/www/e.png", "//ecsv2.roblox.com/www/e.png", "//ecsv2.roblox.com/pe?t=studio", "//ecsv2.roblox.com/pe?t=diagnostic"); } </script> <script type="text/javascript"> if (Roblox && Roblox.PageHeartbeatEvent) { Roblox.PageHeartbeatEvent.Init([2,8,20,60]); } </script> <script> Roblox = Roblox || {}; Roblox.AbuseReportPVMeta = { desktopEnabled: false, phoneEnabled: false, inAppEnabled: false }; </script> <meta name="thumbnail-meta-data" data-is-webapp-cache-enabled="False" data-webapp-cache-expirations-timespan="00:01:00" data-request-min-cooldown="1000" data-request-max-cooldown="30000" data-request-max-retry-attempts="4" data-request-batch-size="100" data-thumbnail-metrics-sample-size="20" data-concurrent-thumbnail-request-count="4"/> </head> <body id="rbx-body" dir="ltr" class="rbx-body dark-theme builder-font" data-performance-relative-value="0.005" data-internal-page-name="SupportedBrowsers" data-send-event-percentage="0"> <meta name="csrf-token" data-token="UfZtaZfEHOT8" /> <script src="https://roblox.com/js/hsts.js?v=3" type="text/javascript" id="hsts" async></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Linkify" data-bundle-source="Main" src="https://js.rbxcdn.com/c0b9b674b2a87f0aa6358830e63fa62841ce9a3e24f065c5fd33b7e73f22ffa6.js"></script> <div id="image-retry-data" data-image-retry-max-times="30" data-image-retry-timer="500" data-ga-logging-percent="10"> </div><div id="http-retry-data" data-http-retry-max-timeout="0" data-http-retry-base-timeout="0" data-http-retry-max-times="1"> </div> <div id="wrap" class="wrap no-gutter-ads logged-out"> <main class="container-main content-no-ads no-header-nav " id="container-main" tabindex="-1"> <script type="text/javascript"> if (top.location != self.location) { top.location = self.location.href; } </script> <div class="alert-container"> <noscript><div><div class="alert-info" role="alert">Please enable Javascript to use all the features on this site.</div></div></noscript> </div> <div class="content"> <div id="supported-browsers-web-app"></div> </div> </main><!--Bootstrap Footer React Component --> <footer class="container-footer" id="footer-container" data-is-giftcards-footer-enabled="True"> </footer></div> <div id="user-agreements-checker-container"></div> <div id="access-management-upsell-container"></div> <div id="global-privacy-control-checker-container"></div> <div id="cookie-banner-wrapper" class="cookie-banner-wrapper"></div> <script type="text/javascript"> if (typeof Roblox === "undefined") { Roblox = {}; } if (typeof Roblox.PlaceLauncher === "undefined") { Roblox.PlaceLauncher = {}; } var isRobloxIconEnabledForRetheme = "True"; var robloxIcon = isRobloxIconEnabledForRetheme === 'True' ? "<span class='icon-logo-r-95'></span>" : "<img src='https://images.rbxcdn.com/8e7879f99cfa7cc3b1fce74f8191be03.svg' width='90' height='90' alt='R'/>"; Roblox.PlaceLauncher.Resources = { RefactorEnabled: "True", IsProtocolHandlerBaseUrlParamEnabled: "False", ProtocolHandlerAreYouInstalled: { play: { content: robloxIcon + "<p>You're moments away from getting into the experience!</p>", buttonText: "Download and Install Roblox", footerContent: "<a href='https://assetgame.roblox.com/game/help'class= 'text-name small' target='_blank' >Click here for help</a> " }, studio: { content: "<img src='https://images.rbxcdn.com/f25e4cadae29ae9a57a962126b2d2e2a.png' width='95' height='95' alt='R' /><p>Get started creating your own experiences!</p>", buttonText: "Download Studio" } }, ProtocolHandlerStartingDialog: { play: { content: robloxIcon + "<p>Roblox is now loading. Get ready!</p>" }, studio: { content: "<img src='https://images.rbxcdn.com/f25e4cadae29ae9a57a962126b2d2e2a.png' width='95' height='95' alt='R' /><p>Checking for Roblox Studio...</p>" }, loader: "<span class='spinner spinner-default'></span>" } }; </script> <div id="PlaceLauncherStatusPanel" style="display:none;width:300px" data-new-plugin-events-enabled="True" data-event-stream-for-plugin-enabled="True" data-event-stream-for-protocol-enabled="True" data-is-join-attempt-id-enabled="True" data-is-game-launch-interface-enabled="True" data-is-protocol-handler-launch-enabled="True" data-is-duar-auto-opt-in-enabled="false" data-is-duar-opt-out-disabled="false" data-is-user-logged-in="False" data-os-name="Windows" data-protocol-name-for-client="roblox-player" data-protocol-name-for-studio="roblox-studio" data-protocol-roblox-locale="en_us" data-protocol-game-locale="en_us" data-protocol-url-includes-launchtime="true" data-protocol-detection-enabled="true" data-protocol-separate-script-parameters-enabled="true" data-protocol-avatar-parameter-enabled="false" data-protocol-channel-name="LIVE" data-protocol-studio-channel-name="LIVE" data-protocol-player-channel-name="LIVE"> <div class="modalPopup blueAndWhite PlaceLauncherModal" style="min-height: 160px"> <div id="Spinner" class="Spinner" style="padding:20px 0;"> <img data-delaysrc="https://images.rbxcdn.com/e998fb4c03e8c2e30792f2f3436e9416.gif" height="32" width="32" alt="Progress" /> </div> <div id="status" style="min-height:40px;text-align:center;margin:5px 20px"> <div id="Starting" class="PlaceLauncherStatus MadStatusStarting" style="display:block"> Starting Roblox... </div> <div id="Waiting" class="PlaceLauncherStatus MadStatusField">Connecting to People...</div> <div id="StatusBackBuffer" class="PlaceLauncherStatus PlaceLauncherStatusBackBuffer MadStatusBackBuffer"></div> </div> <div style="text-align:center;margin-top:1em"> <input type="button" class="Button CancelPlaceLauncherButton translate" value="Cancel" /> </div> </div> </div> <div id="ProtocolHandlerClickAlwaysAllowed" class="ph-clickalwaysallowed" data-hide-remember-overlay style="display:none;"> <p class="larger-font-size"> <span class="icon-moreinfo"></span> Check <strong>Remember my choice</strong> and click <img data-delaysrc="https://images.rbxcdn.com/7c8d7a39b4335931221857cca2b5430b.png" alt="Launch Application" /> in the dialog box above to join experiences faster in the future! </p> </div> <script type="text/javascript"> function checkRobloxInstall() { return RobloxLaunch.CheckRobloxInstall('https://www.roblox.com/Download'); } </script> <div id="InstallationInstructions" class="style2016" style="display:none;"> <div class="ph-installinstructions"> <div class="ph-modal-header"> <span class="icon-close-16x16 simplemodal-close"></span> <h5 class="title">Thanks for visiting Roblox</h5> </div> <div class="modal-content-container"> <div class="ph-installinstructions-body "> <ul class="modal-col-3"> <li class="step1-of-3"> <h2>1</h2> <p class="larger-font-size">You will receive a warning, click <strong>Run</strong></p> <img data-delaysrc="https://images.rbxcdn.com/7cb74cad55466bd3dd9db4016731f461.png" /> </li> <li class="step2-of-3"> <h2>2</h2> <p class="larger-font-size">Go to Downloads and double click <strong>RobloxPlayer.exe</strong></p> <img data-delaysrc="https://images.rbxcdn.com/bbdb38de8bb89ecc07730b41666a26a4" /> </li> <li class="step3-of-3"> <h2>3</h2> <p class="larger-font-size">Click <strong>Run</strong></p> <div class="VisitButton VisitButtonContinueGLI"> <a class="btn btn-primary-lg disabled btn-full-width" data-isedge="true">Join</a> </div> </li> </ul> </div> </div> <div class="xsmall"> The Roblox installer should download shortly. If it doesn鈥檛, start the <a id="GameLaunchManualInstallLink" href="#" class="text-link">download now.</a> </div> </div> </div> <div class="InstallInstructionsImage" data-modalwidth="970" style="display:none;"></div> <div id="pluginObjDiv" style="height:1px;width:1px;visibility:hidden;position: absolute;top: 0;"></div> <iframe id="downloadInstallerIFrame" name="downloadInstallerIFrame" style="visibility:hidden;height:0;width:1px;position:absolute"></iframe> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='clientinstaller' type='text/javascript' src='https://js.rbxcdn.com/00e1d37a965af4242dc6b296d6c883f0.js'></script> <script type="text/javascript"> Roblox.Client._skip = null; Roblox.Client._CLSID = '76D50904-6780-4c8b-8986-1A7EE0B1716D'; Roblox.Client._installHost = 'setup.roblox.com'; Roblox.Client.ImplementsProxy = true; Roblox.Client._silentModeEnabled = true; Roblox.Client._bringAppToFrontEnabled = false; Roblox.Client._currentPluginVersion = ''; Roblox.Client._eventStreamLoggingEnabled = true; Roblox.Client._installSuccess = function() { if(GoogleAnalyticsEvents){ GoogleAnalyticsEvents.ViewVirtual('InstallSuccess'); GoogleAnalyticsEvents.FireEvent(['Plugin','Install Success']); if (Roblox.Client._eventStreamLoggingEnabled && typeof Roblox.GamePlayEvents != "undefined") { Roblox.GamePlayEvents.SendInstallSuccess(Roblox.Client._launchMode, play_placeId); } } } </script> <div class="ConfirmationModal modalPopup unifiedModal smallModal" data-modal-handle="confirmation" style="display:none;"> <a class="genericmodal-close ImageButton closeBtnCircle_20h"></a> <div class="Title"></div> <div class="GenericModalBody"> <div class="TopBody"> <div class="ImageContainer roblox-item-image" data-image-size="small" data-no-overlays data-no-click> <img class="GenericModalImage" alt="generic image" /> </div> <div class="Message"></div> </div> <div class="ConfirmationModalButtonContainer GenericModalButtonContainer"> <a href id="roblox-confirm-btn"><span></span></a> <a href id="roblox-decline-btn"><span></span></a> </div> <div class="ConfirmationModalFooter"> </div> </div> <script type="text/javascript"> Roblox = Roblox || {}; Roblox.Resources = Roblox.Resources || {}; Roblox.Resources.GenericConfirmation = { yes: "Yes", No: "No", Confirm: "Confirm", Cancel: "Cancel" }; </script> </div> <div id="modal-confirmation" class="modal-confirmation" data-modal-type="confirmation"> <div id="modal-dialog" class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"><span class="icon-close"></span></span><span class="sr-only">Close</span> </button> <h5 class="modal-title"></h5> </div> <div class="modal-body"> <div class="modal-top-body"> <div class="modal-message"></div> <div class="modal-image-container roblox-item-image" data-image-size="medium" data-no-overlays data-no-click> <img class="modal-thumb" alt="generic image"/> </div> <div class="modal-checkbox checkbox"> <input id="modal-checkbox-input" type="checkbox"/> <label for="modal-checkbox-input"></label> </div> </div> <div class="modal-btns"> <a href id="confirm-btn"><span></span></a> <a href id="decline-btn"><span></span></a> </div> <div class="loading modal-processing"> <img class="loading-default" src='https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif' alt="Processing..." /> </div> </div> <div class="modal-footer text-footer"> </div> </div> </div> </div> <script type="text/javascript"> $(function () { Roblox.CookieUpgrader.domain = 'roblox.com'; Roblox.CookieUpgrader.upgrade("GuestData", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow }); Roblox.CookieUpgrader.upgrade("RBXSource", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("rbx_acquisition_time", cookie); } }); Roblox.CookieUpgrader.upgrade("RBXViralAcquisition", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("time", cookie); } }); Roblox.CookieUpgrader.upgrade("RBXMarketing", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow }); Roblox.CookieUpgrader.upgrade("RBXSessionTracker", { expires: Roblox.CookieUpgrader.fourHoursFromNow }); Roblox.CookieUpgrader.upgrade("RBXEventTrackerV2", {expires: Roblox.CookieUpgrader.thirtyYearsFromNow}); }); </script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='intl-polyfill' type='text/javascript' src='https://js.rbxcdn.com/4bae454bf5dab3028073fea1e91b6f19.js'></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="InternationalCore" data-bundle-source="Main" src="https://js.rbxcdn.com/558cbed0ebd127bd21f1045302a44c69a092fc29acd3ed983ecd5bcb46ed2e84.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="TranslationResources" data-bundle-source="Main" src="https://js.rbxcdn.com/83d836a661ff433d5b7ce719c489e43af590ff75ab39ccc6d393546fe91b766a.js"></script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='leanbase' type='text/javascript' src='https://js.rbxcdn.com/3549e188c34f5a2d6fd6ff275813b3bc.js'></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="CoreUtilities" data-bundle-source="Main" src="https://js.rbxcdn.com/c5624b5a41fc3ce11d39c7bd2a35af3b3403f4774a2805bc6696306b434d6d7c.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="CoreRobloxUtilities" data-bundle-source="Main" src="https://js.rbxcdn.com/71e2a4aaddfd5ac7004c986bb93b96933031153481f24a4dd5ad9999a8c2e062.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="React" data-bundle-source="Main" src="https://js.rbxcdn.com/b79589d3dfb2446936aac95605deaa507ce5bc3e09073bac7dd04872880694c2.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ReactUtilities" data-bundle-source="Main" src="https://js.rbxcdn.com/2359bfdeb82ced7d627671a3f54e79df65c89aabeffafe46e360a627c8108d63.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ReactStyleGuide" data-bundle-source="Main" src="https://js.rbxcdn.com/97dfb46269dd61a1834ab7a89d228d02f61dba167fe65f2ef902b7d7903bd1e7.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ConfigureWebApps" data-bundle-source="Main" src="https://js.rbxcdn.com/5259cfe8a3e36118bd61120693dbba3ba87f2c3641f84bb07e29f1d69fe87523.js"></script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='angular' type='text/javascript' src='https://js.rbxcdn.com/3756ad214dde52cb58a1300177547475.js'></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="AngularJsUtilities" data-bundle-source="Main" src="https://js.rbxcdn.com/66f0805c73abc8fdb07c1969ecb4e69821afd4c2ada468d7f2fb6daf0d93dc69.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="InternationalAngularJs" data-bundle-source="Main" src="https://js.rbxcdn.com/47aa20a4d7ec095fabb9db116c99c5c798b2fa37161a5f59a340cb352279596f.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Thumbnails" data-bundle-source="Main" src="https://js.rbxcdn.com/417d20fce3fddb17309cd798073e31ce5733c8d1e20dd955dfd2e80a44cdf563.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="PresenceStatus" data-bundle-source="Main" src="https://js.rbxcdn.com/077dd64734d3aa9a884874f85f2f514a239688c33a0fdf3f90365e0e7436ec3b.js"></script> <div ng-modules="baseTemplateApp"> <!-- Template bundle: base --> <script type="text/javascript"> "use strict"; angular.module("baseTemplateApp", []).run(['$templateCache', function($templateCache) { }]); </script> </div> <div ng-modules="pageTemplateApp"> <!-- Template bundle: page --> <script type="text/javascript"> "use strict"; angular.module("pageTemplateApp", []).run(['$templateCache', function($templateCache) { }]); </script> </div> <script> $(function () { Roblox.DeveloperConsoleWarning.showWarning(); }); </script> <script type="text/javascript"> $(function(){ function trackReturns() { function dayDiff(d1, d2) { return Math.floor((d1-d2)/86400000); } if (!localStorage) { return false; } var cookieName = 'RBXReturn'; var cookieOptions = {expires:9001}; var cookieStr = localStorage.getItem(cookieName) || ""; var cookie = {}; try { cookie = JSON.parse(cookieStr); } catch (ex) { // busted cookie string from old previous version of the code } try { if (typeof cookie.ts === "undefined" || isNaN(new Date(cookie.ts))) { localStorage.setItem(cookieName, JSON.stringify({ ts: new Date().toDateString() })); return false; } } catch (ex) { return false; } var daysSinceFirstVisit = dayDiff(new Date(), new Date(cookie.ts)); if (daysSinceFirstVisit == 1 && typeof cookie.odr === "undefined") { RobloxEventManager.triggerEvent('rbx_evt_odr', {}); cookie.odr = 1; } if (daysSinceFirstVisit >= 1 && daysSinceFirstVisit <= 7 && typeof cookie.sdr === "undefined") { RobloxEventManager.triggerEvent('rbx_evt_sdr', {}); cookie.sdr = 1; } try { localStorage.setItem(cookieName, JSON.stringify(cookie)); } catch (ex) { return false; } } GoogleListener.init(); RobloxEventManager.initialize(true); RobloxEventManager.triggerEvent('rbx_evt_pageview'); trackReturns(); RobloxEventManager._idleInterval = 450000; RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_start'); RobloxEventManager.registerCookieStoreEvent('rbx_evt_ftp'); RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_success'); RobloxEventManager.registerCookieStoreEvent('rbx_evt_fmp'); }); </script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='page' type='text/javascript' src='https://js.rbxcdn.com/26b6fd1b919f0b9627e151a0a84ee545.js'></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="StyleGuide" data-bundle-source="Main" src="https://js.rbxcdn.com/b37f27692abfd4515ec53562e3bd54cbe3a8e410b7f589d78f413e1e14d511e8.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Builder" data-bundle-source="Main" src="https://js.rbxcdn.com/5a130ca7a8a39e0d88f0b43543e6e80e4b8c20405a7af835356add2a156a610f.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="CookieBannerV3" data-bundle-source="Main" src="https://js.rbxcdn.com/7693d98990f875a88c91c0385e1b0542bb51913fb34b23f414b6890d90353c40.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_CommonUI.Messages" data-bundle-source="Unknown" src="https://js.rbxcdn.com/8db8d8704b1403e4c919554c73598a33742864def2eb7bf95279260fe5193313.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.Tracking" data-bundle-source="Unknown" src="https://js.rbxcdn.com/7043536ec0248f489b68b5e62dd3336f6962fb50d18a65b766453a206a772d4f.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Footer" data-bundle-source="Main" src="https://js.rbxcdn.com/77f5d3c9ad53257cbf0289315aa5cc0577a481757f88446af65af5b619a26f3b.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Common.AlertsAndOptions" data-bundle-source="Unknown" src="https://js.rbxcdn.com/eece21f4735747c13ebeb3eac6d21e7cc9d78b021f48d1818ea700f31bd71c6a.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_CommonUI.Features" data-bundle-source="Unknown" src="https://js.rbxcdn.com/93bfec8bd4ba11fb0c3010513fd9857ccbba036ee67486c87eecc07b75653eca.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="AccessManagementUpsellV2" data-bundle-source="Main" src="https://js.rbxcdn.com/c8c72341f6a523e69e4520fa3bf248ea278eb8bfd88cf5a9d72cc5789171c849.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.Parents" data-bundle-source="Unknown" src="https://js.rbxcdn.com/3ad28edeb75946672d1298dabba4aecfc9a70893f865382c596fe6765c9e4175.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Amp.Upsell" data-bundle-source="Unknown" src="https://js.rbxcdn.com/8840361a5778ea49d9f3dc0c5dc9562926b3fe8f9daa65871fab9b623a356364.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.AgeVerificationUpsell" data-bundle-source="Unknown" src="https://js.rbxcdn.com/aff2cdd67a84ad537fb2b3e904411bfa9eb52ab295378592e4a0e7d9df8153ad.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.IdVerification" data-bundle-source="Unknown" src="https://js.rbxcdn.com/4df6ec52559e1c250d3f2e8286e1ffca9f33998dcddcfaf096a4bcd364bbf808.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="GlobalPrivacyControlChecker" data-bundle-source="Main" src="https://js.rbxcdn.com/cddef009765ca412658d8c18eaf9fe332b3b54af2143085b8347781a767094f0.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Captcha" data-bundle-source="Main" src="https://js.rbxcdn.com/4bd1d2c26b9554957dba7a429527fc5b73ff6949c827448ffe265cb819285202.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="SupportedBrowsers" data-bundle-source="Main" src="https://js.rbxcdn.com/faa458f4f0a5a65724f9fd28da2ae1b68e0b42fcb485efad35ff219de9edd015.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.SupportedBrowsers" data-bundle-source="Unknown" src="https://js.rbxcdn.com/340c7872da3efc0c41b58c55435c2051e9fcc71863ebabeb77aad1be971525b5.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Experimentation" data-bundle-source="Main" src="https://js.rbxcdn.com/c4b0a446b38285f3db5472340f4ef27d737c87b78348e36dc7acbcfec89d70bf.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ItemPurchaseUpsell" data-bundle-source="Main" src="https://js.rbxcdn.com/2b53798361a5d3c228e0ec73ce70d47d2d32d982d253ee1b900cd215cdde6eff.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Purchasing.PurchaseDialog" data-bundle-source="Unknown" src="https://js.rbxcdn.com/286bf83f913d1914e7e80c962bcd94c6f639dc45b036e433ea8f2b8c4a71f7e6.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.Premium" data-bundle-source="Unknown" src="https://js.rbxcdn.com/001b4a62bc9bbafe42941de51c7c7f37573297ac3e11eef320d3fd7538972cb7.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="CaptchaCore" data-bundle-source="Main" src="https://js.rbxcdn.com/1e979a52d80126c2447674c17604baf65f73183fd44df1e6cd862feb441bdcc5.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="VerificationUpsell" data-bundle-source="Main" src="https://js.rbxcdn.com/2dde7e9f4ee2afeb69e982b825a06322b3b9a4b6f015e0ff804422447f2b33fd.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.VerificationUpsell" data-bundle-source="Unknown" src="https://js.rbxcdn.com/38365a88b25d184116e052825422e21e63e138cbdd19523d932f5707d4f0d122.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="EmailVerifyCodeModal" data-bundle-source="Main" src="https://js.rbxcdn.com/1c8bc37109fd84f255ebad8b6f2edbbc9f0d2b97ef180131d9856ab1852b48c0.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Authentication.OneTimePasscode" data-bundle-source="Unknown" src="https://js.rbxcdn.com/85208f99ce501214ee1fa2dcd97b294f330e1a23e9c378d596b9575ee15d7759.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Authentication.Login" data-bundle-source="Unknown" src="https://js.rbxcdn.com/d6aff8b56a356dd6d4e5f7e49cce1b769059fc1ea10c8a759efc4731b1ebe072.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Challenge" data-bundle-source="Main" src="https://js.rbxcdn.com/6e1c369a3b660b37b8637dfee0ef5ff58030f64a762685ebe6ee7528e37f640e.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.PhoneVerificationChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/e7e3731285889059db29156a67cd4e5358a2dbf2102a88f49403c524cab2ba91.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.Reauthentication" data-bundle-source="Unknown" src="https://js.rbxcdn.com/730fcbf0eba6dd82de9b0029e157627f023e6f448059c5b4c6a4f356222b3ac0.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ProofOfWorkChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/b41227fe1ecc1f4409f2e33f02d4d968f6d6389349d2221f481ff3b34e01a257.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ProofOfSpaceChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/3fec2c529efef400a78a26a5c0a2d33e3e7ec0a13971616a31cd958214c71e37.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.SecurityQuestions" data-bundle-source="Unknown" src="https://js.rbxcdn.com/2da1b676b979a60ce3b9471d919f53c6523c606f10e6ba75fa3c168945b8455a.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Authentication.TwoStepVerification" data-bundle-source="Unknown" src="https://js.rbxcdn.com/3f0e9ff5dafbd5826c77caf74e5e7d41b7be314b57022de788a0c53d6a3ff036.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.PrivateAccessTokenChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/94a14bf31ad0a75d3878f6772e6d5a251e7da9b64894e2176a07f65f4d79d8a3.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ForceTwoStepVerification" data-bundle-source="Unknown" src="https://js.rbxcdn.com/5a5300a5800d03e45af07f710bbcfae2d6a2f4edea9305cb47a488bb57b74455.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ForceAuthenticator" data-bundle-source="Unknown" src="https://js.rbxcdn.com/5fbd8389fb24177a5be64285e12645c445dee91f0a686d5bed5865f0e009d387.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.RostileChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/88bacf62dae20f1d352d30afbd3df4c64ba7a24c551c6ee02152719cfb11b830.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Authentication.Captcha" data-bundle-source="Unknown" src="https://js.rbxcdn.com/44ff0f2cc820b734456e36bcd3528a30460f0576ff6ff17478b2d84824b64abd.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.EmailVerificationChallenge" data-bundle-source="Unknown" src="https://js.rbxcdn.com/0fe97bffcb328f446dd0f247d2d42e740d354ef70bd54b9371ece139569a5e72.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ItemDetailsHydrationService" data-bundle-source="Main" src="https://js.rbxcdn.com/fb8de862b7fa51dc12e96800cbc339d4eac4131fc0e7834e860e418515687da2.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="ItemPurchase" data-bundle-source="Main" src="https://js.rbxcdn.com/dbe72e91501a9c36585e6c4c919c0368d25b598e7f672d03d792b953a2e9def7.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ItemModel" data-bundle-source="Unknown" src="https://js.rbxcdn.com/54c13aaea011e94d285d4171277dbaa0a2ec1bf763b408d71f2adc7f72bad919.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.Item" data-bundle-source="Unknown" src="https://js.rbxcdn.com/ba8d8575fdb6e0bab85e9715a0084d297ade28957a6e64d73ec56af6c0a648e9.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="IdVerification" data-bundle-source="Main" src="https://js.rbxcdn.com/bd18305af9e4ce41099df37e554eeb1bf2cc139ffba636e356666ccd9d07481c.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Verification.Identity" data-bundle-source="Unknown" src="https://js.rbxcdn.com/35f0d01b47b92a779a0eb4c083a91f682d01b13e759d03f4dfe2f87bc608c2c6.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_CommonUI.Controls" data-bundle-source="Unknown" src="https://js.rbxcdn.com/2d489ad8a92e817f589e0015732300273bd3a92baddef4a03c25f3962a28871f.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="AccessManagementUpsell" data-bundle-source="Main" src="https://js.rbxcdn.com/e778966a23e02f475d8725623a8dc21579b54a939c52738ec1b6565dc15be9bc.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="GameLaunch" data-bundle-source="Main" src="https://js.rbxcdn.com/7690ce407e309d09c8dc99ea28c62284f00b76c428dbe85cdd13d93db6bd78d0.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ExperienceDetails" data-bundle-source="Unknown" src="https://js.rbxcdn.com/ebe4ab28d2c5d6e007893c7f3f5afe260a48232b82a2711a86d8f67788d3942c.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Common.VisitGame" data-bundle-source="Unknown" src="https://js.rbxcdn.com/5e740130ceecbb0e1340b712955c239f6395e918d1558fe7982933b895d728e5.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.GameLaunchGuestMode" data-bundle-source="Unknown" src="https://js.rbxcdn.com/1eba4a5ba48b46f09a1576cdd3e3440341efdcebc7150e44b4e743da95e3e830.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="UserAgreementsChecker" data-bundle-source="Main" src="https://js.rbxcdn.com/846daf4727935bf2ce0c89ac0f21292485a9e326c1485ad9717a862220944abe.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_CommonUI.UserAgreements" data-bundle-source="Unknown" src="https://js.rbxcdn.com/64daef195122aa9c881d456010e7b98d698b1c6b1aaba58c81abc27da0db8fed.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="RobloxBadges" data-bundle-source="Main" src="https://js.rbxcdn.com/4b4ed339879e21ebd989965a4ade1a7d6f3181871df8d816198c1cdc73b629d5.js"></script> <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ProfileBadges" data-bundle-source="Unknown" src="https://js.rbxcdn.com/ebc57f8a4aabceab9f38dda880bf11c04f2c92f441e535f0bcaa21b294736e65.js"></script> <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='pageEnd' type='text/javascript' src='https://js.rbxcdn.com/a1673a5e2e4441cd5d7183b2aca5a03a.js'></script> </body> </html>