Facebook
From Ungracious Hummingbird, 2 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 172
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="ie8" ng-app="robloxApp"><![endif]-->
  3. <!--[if gt IE 8]><!-->
  4. <html>
  5. <!--<![endif]-->
  6. <head data-machine-id="WEB2070">
  7.     <!-- MachineID: WEB2070 -->
  8.     <title>Roblox</title>
  9.     <meta http-equiv="X-UA-Compatible" content="IE=edge,requiresActiveX=true" />
  10. <meta charset="UTF-8">
  11. <meta name="viewport" content="width=device-width, initial-scale=1">
  12. <meta name="author" content="Roblox Corporation" />
  13. <meta name="description" content="Roblox is a global platform that brings people together through play." />
  14. <meta name="keywords" content="free games, online games, building games, virtual worlds, free mmo, gaming cloud, physics engine" />
  15. <meta name="apple-itunes-app" content="app-id=431946152" />
  16.  
  17.     <meta name="google-site-verification" content="BfkEEZ1dsSAEJIS1yV2prCFgO8zboMYioG1c9VITB5Y" />
  18.  
  19.  
  20.  
  21. <script type="application/ld+json">
  22.     {
  23.     "@context" : "http://schema.org",
  24.     "@type" : "Organization",
  25.     "name" : "Roblox",
  26.     "url" : "https://www.roblox.com/",
  27.     "logo": "https://images.rbxcdn.com/c69b74f49e785df33b732273fad9dbe0.png",
  28.     "sameAs" : [
  29.     "https://www.facebook.com/roblox/",
  30.     "https://twitter.com/roblox",
  31.     "https://www.linkedin.com/company/147977",
  32.     "https://www.instagram.com/roblox/",
  33.     "https://www.youtube.com/user/roblox",
  34.     "https://plus.google.com/+roblox",
  35.     "https://www.twitch.tv/roblox"
  36.     ]
  37.     }
  38. </script>    <meta property="og:site_name" content="Roblox" />
  39.     <meta property="og:title" content="Roblox" />
  40.     <meta property="og:type" content="website"/>
  41.         <meta property="og:url" content="https://www.roblox.com/" />
  42.     <meta property="og:description" content="Roblox is ushering in the next generation of entertainment. Imagine, create, and play together with millions of people across an infinite variety of immersive, user-generated 3D worlds."/>
  43.             <meta property="og:image" content="https://images.rbxcdn.com/6c27cb9db1779888868bf7d87e6d3709.jpg" />
  44.     <meta property="fb:app_id" content="190191627665278">
  45.     <meta name="twitter:card" content="summary_large_image">
  46.     <meta name="twitter:site" content="@Roblox">
  47.     <meta name="twitter:title" content="Roblox">
  48.     <meta name="twitter:description" content="Roblox is ushering in the next generation of entertainment. Imagine, create, and play together with millions of people across an infinite variety of immersive, user-generated 3D worlds.">
  49.     <meta name="twitter:creator">
  50.             <meta name=twitter:image1 content="https://images.rbxcdn.com/6c27cb9db1779888868bf7d87e6d3709.jpg" />
  51.     <meta name="twitter:app:country" content="US">
  52.     <meta name="twitter:app:name:iphone" content="Roblox Mobile">
  53.     <meta name="twitter:app:id:iphone" content="431946152">
  54.     <meta name="twitter:app:url:iphone">
  55.     <meta name="twitter:app:name:ipad" content="Roblox Mobile">
  56.     <meta name="twitter:app:id:ipad" content="431946152">
  57.     <meta name="twitter:app:url:ipad">
  58.     <meta name="twitter:app:name:googleplay" content="Roblox">
  59.     <meta name="twitter:app:id:googleplay" content="com.roblox.client">
  60.     <meta name="twitter:app:url:googleplay"/>
  61.  
  62. <meta name="locale-data"
  63.       data-language-code="en_us"
  64.       data-language-name="English" /><meta name="device-meta"
  65.       data-device-type="computer"
  66.       data-is-in-app="false"
  67.       data-is-desktop="true"
  68.       data-is-phone="false"
  69.       data-is-tablet="false"
  70.       data-is-console="false"
  71.       data-is-android-app="false"
  72.       data-is-ios-app="false"
  73.       data-is-uwp-app="false"
  74.       data-is-xbox-app="false"
  75.       data-is-amazon-app="false"
  76.       data-is-win32-app="false"
  77.       data-is-studio="false"
  78.       data-is-game-client-browser="false"
  79.       data-is-ios-device="false"
  80.       data-is-android-device="false"
  81.       data-is-universal-app="false"
  82.       data-app-type="unknown"
  83. />
  84. <meta name="environment-meta"
  85.       data-is-testing-site="false" />
  86.  
  87. <meta id="roblox-display-names" data-enabled="false"></meta><meta name="page-meta" data-internal-page-name="Landing" />
  88.    
  89.  
  90. <script type="text/javascript">
  91.     var Roblox = Roblox || {};
  92.  
  93.     Roblox.BundleVerifierConstants = {
  94.         isMetricsApiEnabled: true,
  95.         eventStreamUrl: "//ecsv2.roblox.com/pe?t=diagnostic",
  96.         deviceType: "Computer",
  97.         cdnLoggingEnabled: JSON.parse("true")
  98.     };
  99. </script>        <script type="text/javascript">
  100.             var Roblox = Roblox || {};
  101.  
  102. Roblox.BundleDetector = (function () {
  103.     var isMetricsApiEnabled = Roblox.BundleVerifierConstants && Roblox.BundleVerifierConstants.isMetricsApiEnabled;
  104.  
  105.     var loadStates = {
  106.         loadSuccess: "loadSuccess",
  107.         loadFailure: "loadFailure",
  108.         executionFailure: "executionFailure"
  109.     };
  110.  
  111.     var bundleContentTypes = {
  112.         javascript: "javascript",
  113.         css: "css"
  114.     };
  115.  
  116.     var ephemeralCounterNames = {
  117.         cdnPrefix: "CDNBundleError_",
  118.         unknown: "CDNBundleError_unknown",
  119.         cssError: "CssBundleError",
  120.         jsError: "JavascriptBundleError",
  121.         jsFileError: "JsFileExecutionError",
  122.         resourceError: "ResourcePerformance_Error",
  123.         resourceLoaded: "ResourcePerformance_Loaded"
  124.     };
  125.  
  126.     return {
  127.         jsBundlesLoaded: {},
  128.         bundlesReported: {},
  129.  
  130.         counterNames: ephemeralCounterNames,
  131.         loadStates: loadStates,
  132.         bundleContentTypes: bundleContentTypes,
  133.  
  134.         timing: undefined,
  135.  
  136.         setTiming: function (windowTiming) {
  137.             this.timing = windowTiming;
  138.         },
  139.  
  140.         getLoadTime: function () {
  141.             if (this.timing && this.timing.domComplete) {
  142.                 return this.getCurrentTime() - this.timing.domComplete;
  143.             }
  144.         },
  145.  
  146.         getCurrentTime: function () {
  147.             return new Date().getTime();
  148.         },
  149.  
  150.         getCdnProviderName: function (bundleUrl, callBack) {
  151.             if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  152.                 var xhr = new XMLHttpRequest();
  153.                 xhr.open('GET', bundleUrl, true);
  154.  
  155.                 xhr.onreadystatechange = function () {
  156.                     if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  157.                         try {
  158.                             var headerValue = xhr.getResponseHeader("rbx-cdn-provider");
  159.                             if (headerValue) {
  160.                                 callBack(headerValue);
  161.                             } else {
  162.                                 callBack();
  163.                             }
  164.                         } catch (e) {
  165.                             callBack();
  166.                         }
  167.                     }
  168.                 };
  169.  
  170.                 xhr.onerror = function () {
  171.                     callBack();
  172.                 };
  173.  
  174.                 xhr.send();
  175.             } else {
  176.                 callBack();
  177.             }
  178.         },
  179.  
  180.         getCdnProviderAndReportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType) {
  181.             this.getCdnProviderName(bundleUrl, function (cdnProviderName) {
  182.                 Roblox.BundleDetector.reportMetrics(bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName);
  183.             });
  184.         },
  185.  
  186.         reportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName) {
  187.             if (!isMetricsApiEnabled
  188.                 || !bundleUrl
  189.                 || !loadState
  190.                 || !loadStates.hasOwnProperty(loadState)
  191.                 || !bundleContentType
  192.                 || !bundleContentTypes.hasOwnProperty(bundleContentType)) {
  193.                 return;
  194.             }
  195.  
  196.             var xhr = new XMLHttpRequest();
  197.             var metricsApiUrl = (Roblox.EnvironmentUrls && Roblox.EnvironmentUrls.metricsApi) || "https://metrics.roblox.com";
  198.  
  199.             xhr.open("POST", metricsApiUrl + "/v1/bundle-metrics/report", true);
  200.             xhr.setRequestHeader("Content-Type", "application/json");
  201.             xhr.withCredentials = true;
  202.             xhr.send(JSON.stringify({
  203.                 bundleUrl: bundleUrl,
  204.                 bundleName: bundleName || "",
  205.                 bundleContentType: bundleContentType,
  206.                 loadState: loadState,
  207.                 cdnProviderName: cdnProviderName,
  208.                 loadTimeInMilliseconds: this.getLoadTime() || 0
  209.             }));
  210.         },
  211.  
  212.         logToEphemeralStatistics: function (sequenceName, value) {
  213.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  214.             sequenceName += "_" + deviceType;
  215.  
  216.             var xhr = new XMLHttpRequest();
  217.             xhr.open('POST', '/game/report-stats?name=' + sequenceName + "&value=" + value, true);
  218.             xhr.withCredentials = true;
  219.             xhr.send();
  220.         },
  221.  
  222.         logToEphemeralCounter: function (ephemeralCounterName) {
  223.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  224.             ephemeralCounterName += "_" + deviceType;
  225.             //log to ephemeral counters - taken from eventTracker.js
  226.             var xhr = new XMLHttpRequest();
  227.             xhr.open('POST', '/game/report-event?name=' + ephemeralCounterName, true);
  228.             xhr.withCredentials = true;
  229.             xhr.send();
  230.         },
  231.  
  232.         logToEventStream: function (failedBundle, ctx, cdnProvider, status) {
  233.             var esUrl = Roblox.BundleVerifierConstants.eventStreamUrl,
  234.                 currentPageUrl = encodeURIComponent(window.location.href);
  235.  
  236.             var deviceType = Roblox.BundleVerifierConstants.deviceType;
  237.             ctx += "_" + deviceType;
  238.             //try and grab performance data.
  239.             //Note that this is the performance of the xmlhttprequest rather than the original resource load.
  240.             var duration = 0;
  241.             if (window.performance) {
  242.                 var perfTiming = window.performance.getEntriesByName(failedBundle);
  243.                 if (perfTiming.length > 0) {
  244.                     var data = perfTiming[0];
  245.                     duration = data.duration || 0;
  246.                 }
  247.             }
  248.             //log to event stream (diagnostic)
  249.             var params = "&evt=webBundleError&url=" + currentPageUrl +
  250.                 "&ctx=" + ctx + "&fileSourceUrl=" + encodeURIComponent(failedBundle) +
  251.                 "&cdnName=" + (cdnProvider || "unknown") +
  252.                 "&statusCode=" + (status || "unknown") +
  253.                 "&loadDuration=" + Math.floor(duration);
  254.             var img = new Image();
  255.             img.src = esUrl + params;
  256.         },
  257.  
  258.         getCdnInfo: function (failedBundle, ctx, fileType) {
  259.             if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  260.                 var xhr = new XMLHttpRequest();
  261.                 var counter = this.counterNames;
  262.                 xhr.open('GET', failedBundle, true);
  263.                 var cdnProvider;
  264.  
  265.                 //succesful request
  266.                 xhr.onreadystatechange = function () {
  267.                     if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  268.                         cdnProvider = xhr.getResponseHeader("rbx-cdn-provider");
  269.                         if (cdnProvider && cdnProvider.length > 0) {
  270.                             Roblox.BundleDetector.logToEphemeralCounter(counter.cdnPrefix + cdnProvider + "_" + fileType);
  271.                         }
  272.                         else {
  273.                             Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  274.                         }
  275.                     }
  276.                     else if (xhr.readyState === xhr.DONE) {
  277.                         // append status to cdn provider so we know its not related to network error.
  278.                         Roblox.BundleDetector.logToEventStream(failedBundle, ctx, cdnProvider, xhr.status);
  279.                     }
  280.                 };
  281.  
  282.                 //attach to possible things that can go wrong with the request.
  283.                 //additionally a network error will trigger this callback
  284.                 xhr.onerror = function () {
  285.                     Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  286.                     Roblox.BundleDetector.logToEventStream(failedBundle, ctx, counter.unknown);
  287.                 };
  288.  
  289.                 xhr.send();
  290.             }
  291.             else {
  292.                 this.logToEventStream(failedBundle, ctx);
  293.             }
  294.         },
  295.  
  296.         reportResourceError: function (resourceName) {
  297.             var ephemeralCounterName = this.counterNames.resourceError + "_" + resourceName;
  298.             this.logToEphemeralCounter(ephemeralCounterName);
  299.         },
  300.  
  301.         reportResourceLoaded: function (resourceName) {
  302.             var loadTimeInMs = this.getLoadTime();
  303.             if (loadTimeInMs) {
  304.                 var sequenceName = this.counterNames.resourceLoaded + "_" + resourceName;
  305.                 this.logToEphemeralStatistics(sequenceName, loadTimeInMs);
  306.             }
  307.         },
  308.  
  309.         reportBundleError: function (bundleTag) {
  310.             var ephemeralCounterName, failedBundle, ctx, contentType;
  311.             if (bundleTag.rel && bundleTag.rel === "stylesheet") {
  312.                 ephemeralCounterName = this.counterNames.cssError;
  313.                 failedBundle = bundleTag.href;
  314.                 ctx = "css";
  315.                 contentType = bundleContentTypes.css;
  316.             } else {
  317.                 ephemeralCounterName = this.counterNames.jsError;
  318.                 failedBundle = bundleTag.src;
  319.                 ctx = "js";
  320.                 contentType = bundleContentTypes.javascript;
  321.             }
  322.  
  323.             //mark that we logged this bundle
  324.             this.bundlesReported[failedBundle] = true;
  325.  
  326.             //e.g. javascriptBundleError_Computer
  327.             this.logToEphemeralCounter(ephemeralCounterName);
  328.             //this will also log to event stream
  329.             this.getCdnInfo(failedBundle, ctx, ctx);
  330.  
  331.             var bundleName;
  332.             if (bundleTag.dataset) {
  333.                 bundleName = bundleTag.dataset.bundlename;
  334.             }
  335.             else {
  336.                 bundleName = bundleTag.getAttribute('data-bundlename');
  337.             }
  338.  
  339.             this.getCdnProviderAndReportMetrics(failedBundle, bundleName, loadStates.loadFailure, contentType);
  340.         },
  341.  
  342.         bundleDetected: function (bundleName) {
  343.             this.jsBundlesLoaded[bundleName] = true;
  344.         },
  345.  
  346.         verifyBundles: function (document) {
  347.             var ephemeralCounterName = this.counterNames.jsFileError,
  348.                 eventContext = ephemeralCounterName;
  349.             //grab all roblox script tags in the page.
  350.             var scripts = (document && document.scripts) || window.document.scripts;
  351.             var errorsList = [];
  352.             var bundleName;
  353.             var monitor;
  354.             for (var i = 0; i < scripts.length; i++) {
  355.                 var item = scripts[i];
  356.  
  357.                 if (item.dataset) {
  358.                     bundleName = item.dataset.bundlename;
  359.                     monitor = item.dataset.monitor;
  360.                 }
  361.                 else {
  362.                     bundleName = item.getAttribute('data-bundlename');
  363.                     monitor = item.getAttribute('data-monitor');
  364.                 }
  365.  
  366.                 if (item.src && monitor && bundleName) {
  367.                     if (!Roblox.BundleDetector.jsBundlesLoaded.hasOwnProperty(bundleName)) {
  368.                         errorsList.push(item);
  369.                     }
  370.                 }
  371.             }
  372.             if (errorsList.length > 0) {
  373.                 for (var j = 0; j < errorsList.length; j++) {
  374.                     var script = errorsList[j];
  375.                     if (!this.bundlesReported[script.src]) {
  376.                         //log the counter only if the file is actually corrupted, not just due to failure to load
  377.                         //e.g. JsFileExecutionError_Computer
  378.                         this.logToEphemeralCounter(ephemeralCounterName);
  379.                         this.getCdnInfo(script.src, eventContext, 'js');
  380.  
  381.                         if (script.dataset) {
  382.                             bundleName = script.dataset.bundlename;
  383.                         }
  384.                         else {
  385.                             bundleName = script.getAttribute('data-bundlename');
  386.                         }
  387.  
  388.                         this.getCdnProviderAndReportMetrics(script.src, bundleName, loadStates.executionFailure, bundleContentTypes.javascript);
  389.                     }
  390.                 }
  391.             }
  392.         }
  393.     };
  394. })();
  395.  
  396. window.addEventListener("load", function (evt) {
  397.     Roblox.BundleDetector.verifyBundles();
  398. });
  399.  
  400. Roblox.BundleDetector.setTiming(window.performance.timing);
  401.             //# sourceURL=somename.js
  402.         </script>
  403.    
  404. <link href="https://images.rbxcdn.com/3b43a5c16ec359053fef735551716fc5.ico" rel="icon" />
  405.  
  406.  
  407.     <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="StyleGuide" data-bundle-source="Main" href="https://css.rbxcdn.com/e0d4fd774937f217b54c178d68182d5ef0928a164feb48c7245bb06dea07dba4.css" />
  408. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Thumbnails" data-bundle-source="Main" href="https://css.rbxcdn.com/9517d686dc47015c200496d77e2b18146ee37652d18e25ecf9e1ed230310ea13.css" />
  409. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="VerificationUpsell" data-bundle-source="Main" href="https://css.rbxcdn.com/4cfc9413aaac922000f010ba651f264e59a200d6062d41f8196017ade0094116.css" />
  410. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Navigation" data-bundle-source="Main" href="https://css.rbxcdn.com/9436c6cbe91fa165e539bde07534dd30493b8e7343503ad5b6f70b709200558d.css" />
  411. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Footer" data-bundle-source="Main" href="https://css.rbxcdn.com/d5344f38053922e5936f0d7e2d3496ee4f83b46f0bb40d1d2c253b80ac82668e.css" />
  412. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="ConfigureWebApps" data-bundle-source="Main" href="https://css.rbxcdn.com/08def520152a575438e73a81aa9a310c2415c327df7b624a24aa6e794d24dba3.css" />
  413.  
  414.  
  415.     <link rel="canonical" href="https://www.roblox.com/" />
  416.    
  417.  
  418.    
  419. <link onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' rel='stylesheet'  href='https://static.rbxcdn.com/css/page___29cb8654caf3eb2421376cf095132da7_m.css/fetch' />
  420.  
  421.  
  422. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Landing" data-bundle-source="Main" href="https://css.rbxcdn.com/db6bf0e7c6a8a2be5071bd0abb6d914220f107d8e4090ee9a4e9e530f62a0f84.css" />
  423. <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="Captcha" data-bundle-source="Main" href="https://css.rbxcdn.com/24a76e8ea70afb9462fad013faa3d22ff3e832e8327ddd764dafe328918bed90.css" />
  424.  
  425.     <link rel="stylesheet" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-bundlename="RobuxIcon" data-bundle-source="Main" href="https://css.rbxcdn.com/2f599b9e9ca20ee3c155684adbf1cdcb7220bab681b55b4505123a0c34e81969.css" />
  426.  
  427.  
  428.    
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436. <script type="text/javascript">
  437.     var Roblox = Roblox || {};
  438.     Roblox.EnvironmentUrls = Roblox.EnvironmentUrls || {};
  439.     Roblox.EnvironmentUrls = {"abtestingApiSite":"https://abtesting.roblox.com","accountInformationApi":"https://accountinformation.roblox.com","accountSettingsApi":"https://accountsettings.roblox.com","adConfigurationApi":"https://adconfiguration.roblox.com","adsApi":"https://ads.roblox.com","apiGatewayUrl":"https://apis.roblox.com","apiGatewayCdnUrl":"https://apis.rbxcdn.com","apiProxyUrl":"https://api.roblox.com","assetDeliveryApi":"https://assetdelivery.roblox.com","authApi":"https://auth.roblox.com","avatarApi":"https://avatar.roblox.com","badgesApi":"https://badges.roblox.com","billingApi":"https://billing.roblox.com","captchaApi":"https://captcha.roblox.com","catalogApi":"https://catalog.roblox.com","chatApi":"https://chat.roblox.com","contactsApi":"https://contacts.roblox.com","contentStoreApi":"https://contentstore.roblox.com","developApi":"https://develop.roblox.com","domain":"roblox.com","economyApi":"https://economy.roblox.com","economycreatorstatsApi":"https://economycreatorstats.roblox.com","engagementPayoutsApi":"https://engagementpayouts.roblox.com","followingsApi":"https://followings.roblox.com","friendsApi":"https://friends.roblox.com","gamesApi":"https://games.roblox.com","gameInternationalizationApi":"https://gameinternationalization.roblox.com","groupsApi":"https://groups.roblox.com","inventoryApi":"https://inventory.roblox.com","itemConfigurationApi":"https://itemconfiguration.roblox.com","localeApi":"https://locale.roblox.com","localizationTablesApi":"https://localizationtables.roblox.com","metricsApi":"https://metrics.roblox.com","midasApi":"https://midas.roblox.com","notificationApi":"https://notifications.roblox.com","premiumFeaturesApi":"https://premiumfeatures.roblox.com","presenceApi":"https://presence.roblox.com","publishApi":"https://publish.roblox.com","screenTimeApi":"https://apis.rcs.roblox.com/screen-time-api","thumbnailsApi":"https://thumbnails.roblox.com","tradesApi":"https://trades.roblox.com","translationRolesApi":"https://translationroles.roblox.com","universalAppConfigurationApi":"https://apis.roblox.com/universal-app-configuration","usersApi":"https://users.roblox.com","voiceApi":"https://voice.roblox.com","websiteUrl":"https://www.roblox.com","privateMessagesApi":"https://privatemessages.roblox.com","shareApi":"https://share.roblox.com","chatModerationApi":"https://chatmoderation.roblox.com","userModerationApi":"https://usermoderation.roblox.com","groupsModerationApi":"https://groupsmoderation.roblox.com","twoStepVerificationApi":"https://twostepverification.roblox.com","restrictedHoursServiceApi":"https://apis.roblox.com/restricted-hours-service"};
  440.  
  441.     // please keep the list in alphabetical order
  442.     var additionalUrls = {
  443.         amazonStoreLink: "https://www.amazon.com/Roblox-Corporation/dp/B00NUF4YOA",
  444.         amazonWebStoreLink: "https%3a%2f%2fwww.amazon.com%2froblox%3f%26_encoding%3dUTF8%26tag%3dr05d13-20%26linkCode%3dur2%26linkId%3d5562fc29c05b45562a86358c198356eb%26camp%3d1789%26creative%3d9325",
  445.         appProtocolUrl: "robloxmobile://",
  446.         appStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
  447.         googlePlayStoreLink: "https://play.google.com/store/apps/details?id=com.roblox.client&hl=en",
  448.         iosAppStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
  449.         windowsStoreLink: "https://www.microsoft.com/en-us/store/games/roblox/9nblgggzm6wm",
  450.         xboxStoreLink: "https://www.microsoft.com/en-us/p/roblox/bq1tn1t79v9k"
  451.     }
  452.  
  453.     for (var urlName in additionalUrls) {
  454.         Roblox.EnvironmentUrls[urlName] = additionalUrls[urlName];
  455.     }
  456.    
  457. </script>
  458.  
  459.  
  460.  
  461. <script type="text/javascript">
  462.     var Roblox = Roblox || {};
  463.     Roblox.GaEventSettings = {
  464.         gaDFPPreRollEnabled: "false" === "true",
  465.         gaLaunchAttemptAndLaunchSuccessEnabled: "false" === "true",
  466.         gaPerformanceEventEnabled: "false" === "true"
  467.     };
  468. </script>
  469.  
  470.  
  471.  
  472.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='headerinit' type='text/javascript' src='https://js.rbxcdn.com/a67ddd9413db88f4124e2c4f25d8cb1f.js'></script>
  473.  
  474.     <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/772034db167d3f4260047db4a7f2b8a58cf448709327013541e47c8962b6e556.js"></script>
  475.  
  476.  
  477.     <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/4db2f741b7a3ec36d11fec999ce33f708ae85641cabfd27e11e0935928f7d9c4.js"></script>
  478.  
  479.  
  480.     <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/97cb9ac7262155c329a259fce9f940f9bcfa852a6a1ccb44bd8a41c31e84e54b.js"></script>
  481.  
  482.  
  483.  
  484. <meta name="sentry-meta"
  485.       data-env-name="production"
  486.       data-dsn="https://[email protected]/1539367"
  487.       data-sample-rate="0.01" /><script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Sentry" data-bundle-source="Main" src="https://js.rbxcdn.com/edc66704bd1974195d8c60f4a163441bec82f1bcb11c492e7df07c43f45a4d49.js"></script>
  488.  
  489. <meta name="roblox-tracer-meta-data"
  490.       data-access-token="S3EXjCZQQr6OixnmKu+hoa3OSfpvPP5qgU0esiWgwreFUUMBnPhEaoS5yIIrf9bdYlSgW0XKCb1So9Rhtj1eMzt/MJWcyKZ4TwIckHVj"
  491.       data-service-name="Web"
  492.       data-tracer-enabled="false"
  493.       data-api-sites-request-allow-list="friends.roblox.com,chat.roblox.com,thumbnails.roblox.com,games.roblox.com"
  494.       data-sample-rate="5"
  495.       data-is-instrument-page-performance-enabled="true"/><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/a168257175fe69cdb0762a3b8ca5d0a5fd625f77c027d5e4cef7f90a1602d704.js"></script>
  496.  
  497.    
  498.  
  499.    
  500.     <!--[if lt IE 9]>
  501.         <script src="//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  502.         <script src="//oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  503.     <![endif]-->
  504.  
  505. <script>
  506.     //Set if it browser's do not track flag is enabled
  507.     var Roblox = Roblox || {};
  508.     (function() {
  509.         var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
  510.         if (typeof window.external !== "undefined" &&
  511.             typeof window.external.msTrackingProtectionEnabled !== "undefined") {
  512.             dnt = dnt || window.external.msTrackingProtectionEnabled();
  513.         }
  514.         Roblox.browserDoNotTrack = dnt == "1" || dnt == "yes" || dnt === true;
  515.     })();
  516. </script>
  517.  
  518.  
  519.     <script type="text/javascript">
  520.  
  521.         var _gaq = _gaq || [];
  522.  
  523.                 window.GoogleAnalyticsDisableRoblox2 = true;
  524.         _gaq.push(['b._setAccount', 'UA-486632-1']);
  525.             _gaq.push(['b._setSampleRate', '10']);
  526.         _gaq.push(['b._setCampSourceKey', 'rbx_source']);
  527.         _gaq.push(['b._setCampMediumKey', 'rbx_medium']);
  528.         _gaq.push(['b._setCampContentKey', 'rbx_campaign']);
  529.  
  530.             _gaq.push(['b._setDomainName', 'roblox.com']);
  531.  
  532.             _gaq.push(['b._setCustomVar', 1, 'Visitor', 'Anonymous', 2]);
  533.                 _gaq.push(['b._setPageGroup', 1, 'Landing']);
  534.                
  535.                     var eventsArr = ['b._setCustomVar', 2, 'FirstTimeVisitor', 'true', 3];
  536.                     _gaq.push(eventsArr);
  537.                     $(function() {
  538.                         if(GoogleAnalyticsEvents) {
  539.                             GoogleAnalyticsEvents.Log(eventsArr);
  540.                         }
  541.                     });
  542.                
  543.             _gaq.push(['b._trackPageview']);
  544.  
  545.         _gaq.push(['c._setAccount', 'UA-26810151-2']);
  546.             _gaq.push(['c._setSampleRate', '1']);
  547.                     _gaq.push(['c._setDomainName', 'roblox.com']);
  548.                     _gaq.push(['c._setPageGroup', 1, 'Landing']);
  549.              </script>
  550.         <script async src='https://www.googletagmanager.com/gtag/js?id=AW-1065449093'></script>
  551.         <script type="text/javascript">
  552.             var accountCode = "AW-1065449093";
  553.             var signupConversionEventKey = "wmuJCO3CZBCF7YX8Aw";
  554.             var webPurchaseConversionEventKey = "XDQ_CJme6s0BEIXthfwD";
  555.             window.dataLayer = window.dataLayer || [];
  556.  
  557.             function gtag() { dataLayer.push(arguments); }
  558.             gtag.conversionEvents = {
  559.                 signupConversionEvent: accountCode + '/' + signupConversionEventKey,
  560.                 webPurchaseConversionEvent: accountCode + '/' + webPurchaseConversionEventKey
  561.             }
  562.             gtag ('set', 'allow_ad_personalization_signals', false) ;
  563.             gtag('js', new Date());
  564.             gtag('config', accountCode);
  565.         </script>
  566.  
  567.    
  568.             <script type="text/javascript">
  569.             if (Roblox && Roblox.EventStream) {
  570.                 Roblox.EventStream.Init("//ecsv2.roblox.com/www/e.png",
  571.                     "//ecsv2.roblox.com/www/e.png",
  572.                     "//ecsv2.roblox.com/pe?t=studio",
  573.                     "//ecsv2.roblox.com/pe?t=diagnostic");
  574.             }
  575.         </script>
  576.  
  577.  
  578.  
  579. <script type="text/javascript">
  580.     if (Roblox && Roblox.PageHeartbeatEvent) {
  581.         Roblox.PageHeartbeatEvent.Init([2,8,20,60]);
  582.     }
  583. </script>    
  584.     <script type="text/javascript">
  585. if (typeof(Roblox) === "undefined") { Roblox = {}; }
  586. Roblox.Endpoints = Roblox.Endpoints || {};
  587. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  588. Roblox.Endpoints.Urls['/asset/'] = 'https://assetgame.roblox.com/asset/';
  589. Roblox.Endpoints.Urls['/client-status/set'] = 'https://www.roblox.com/client-status/set';
  590. Roblox.Endpoints.Urls['/client-status'] = 'https://www.roblox.com/client-status';
  591. Roblox.Endpoints.Urls['/game/'] = 'https://assetgame.roblox.com/game/';
  592. Roblox.Endpoints.Urls['/game/edit.ashx'] = 'https://assetgame.roblox.com/game/edit.ashx';
  593. Roblox.Endpoints.Urls['/game/placelauncher.ashx'] = 'https://assetgame.roblox.com/game/placelauncher.ashx';
  594. Roblox.Endpoints.Urls['/game/preloader'] = 'https://assetgame.roblox.com/game/preloader';
  595. Roblox.Endpoints.Urls['/game/report-stats'] = 'https://assetgame.roblox.com/game/report-stats';
  596. Roblox.Endpoints.Urls['/game/report-event'] = 'https://assetgame.roblox.com/game/report-event';
  597. Roblox.Endpoints.Urls['/game/updateprerollcount'] = 'https://assetgame.roblox.com/game/updateprerollcount';
  598. Roblox.Endpoints.Urls['/login/default.aspx'] = 'https://www.roblox.com/login/default.aspx';
  599. Roblox.Endpoints.Urls['/my/avatar'] = 'https://www.roblox.com/my/avatar';
  600. Roblox.Endpoints.Urls['/my/money.aspx'] = 'https://www.roblox.com/my/money.aspx';
  601. Roblox.Endpoints.Urls['/navigation/userdata'] = 'https://www.roblox.com/navigation/userdata';
  602. Roblox.Endpoints.Urls['/chat/chat'] = 'https://www.roblox.com/chat/chat';
  603. Roblox.Endpoints.Urls['/chat/data'] = 'https://www.roblox.com/chat/data';
  604. Roblox.Endpoints.Urls['/friends/list'] = 'https://www.roblox.com/friends/list';
  605. Roblox.Endpoints.Urls['/navigation/getcount'] = 'https://www.roblox.com/navigation/getCount';
  606. Roblox.Endpoints.Urls['/regex/email'] = 'https://www.roblox.com/regex/email';
  607. Roblox.Endpoints.Urls['/catalog/browse.aspx'] = 'https://www.roblox.com/catalog/browse.aspx';
  608. Roblox.Endpoints.Urls['/catalog/html'] = 'https://search.roblox.com/catalog/html';
  609. Roblox.Endpoints.Urls['/catalog/json'] = 'https://search.roblox.com/catalog/json';
  610. Roblox.Endpoints.Urls['/catalog/contents'] = 'https://search.roblox.com/catalog/contents';
  611. Roblox.Endpoints.Urls['/catalog/lists.aspx'] = 'https://search.roblox.com/catalog/lists.aspx';
  612. Roblox.Endpoints.Urls['/catalog/items'] = 'https://search.roblox.com/catalog/items';
  613. Roblox.Endpoints.Urls['/asset-hash-thumbnail/image'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/image';
  614. Roblox.Endpoints.Urls['/asset-hash-thumbnail/json'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/json';
  615. Roblox.Endpoints.Urls['/asset-thumbnail-3d/json'] = 'https://assetgame.roblox.com/asset-thumbnail-3d/json';
  616. Roblox.Endpoints.Urls['/asset-thumbnail/image'] = 'https://assetgame.roblox.com/asset-thumbnail/image';
  617. Roblox.Endpoints.Urls['/asset-thumbnail/json'] = 'https://assetgame.roblox.com/asset-thumbnail/json';
  618. Roblox.Endpoints.Urls['/asset-thumbnail/url'] = 'https://assetgame.roblox.com/asset-thumbnail/url';
  619. Roblox.Endpoints.Urls['/asset/request-thumbnail-fix'] = 'https://assetgame.roblox.com/asset/request-thumbnail-fix';
  620. Roblox.Endpoints.Urls['/avatar-thumbnail-3d/json'] = 'https://www.roblox.com/avatar-thumbnail-3d/json';
  621. Roblox.Endpoints.Urls['/avatar-thumbnail/image'] = 'https://www.roblox.com/avatar-thumbnail/image';
  622. Roblox.Endpoints.Urls['/avatar-thumbnail/json'] = 'https://www.roblox.com/avatar-thumbnail/json';
  623. Roblox.Endpoints.Urls['/avatar-thumbnails'] = 'https://www.roblox.com/avatar-thumbnails';
  624. Roblox.Endpoints.Urls['/avatar/request-thumbnail-fix'] = 'https://www.roblox.com/avatar/request-thumbnail-fix';
  625. Roblox.Endpoints.Urls['/bust-thumbnail/json'] = 'https://www.roblox.com/bust-thumbnail/json';
  626. Roblox.Endpoints.Urls['/headshot-thumbnail/json'] = 'https://www.roblox.com/headshot-thumbnail/json';
  627. Roblox.Endpoints.Urls['/item-thumbnails'] = 'https://www.roblox.com/item-thumbnails';
  628. Roblox.Endpoints.Urls['/outfit-thumbnail/json'] = 'https://www.roblox.com/outfit-thumbnail/json';
  629. Roblox.Endpoints.Urls['/place-thumbnails'] = 'https://www.roblox.com/place-thumbnails';
  630. Roblox.Endpoints.Urls['/thumbnail/asset/'] = 'https://www.roblox.com/thumbnail/asset/';
  631. Roblox.Endpoints.Urls['/thumbnail/avatar-headshot'] = 'https://www.roblox.com/thumbnail/avatar-headshot';
  632. Roblox.Endpoints.Urls['/thumbnail/avatar-headshots'] = 'https://www.roblox.com/thumbnail/avatar-headshots';
  633. Roblox.Endpoints.Urls['/thumbnail/user-avatar'] = 'https://www.roblox.com/thumbnail/user-avatar';
  634. Roblox.Endpoints.Urls['/thumbnail/resolve-hash'] = 'https://www.roblox.com/thumbnail/resolve-hash';
  635. Roblox.Endpoints.Urls['/thumbnail/place'] = 'https://www.roblox.com/thumbnail/place';
  636. Roblox.Endpoints.Urls['/thumbnail/get-asset-media'] = 'https://www.roblox.com/thumbnail/get-asset-media';
  637. Roblox.Endpoints.Urls['/thumbnail/remove-asset-media'] = 'https://www.roblox.com/thumbnail/remove-asset-media';
  638. Roblox.Endpoints.Urls['/thumbnail/set-asset-media-sort-order'] = 'https://www.roblox.com/thumbnail/set-asset-media-sort-order';
  639. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails'] = 'https://www.roblox.com/thumbnail/place-thumbnails';
  640. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails-partial'] = 'https://www.roblox.com/thumbnail/place-thumbnails-partial';
  641. Roblox.Endpoints.Urls['/thumbnail_holder/g'] = 'https://www.roblox.com/thumbnail_holder/g';
  642. Roblox.Endpoints.Urls['/users/{id}/profile'] = 'https://www.roblox.com/users/{id}/profile';
  643. Roblox.Endpoints.Urls['/service-workers/push-notifications'] = 'https://www.roblox.com/service-workers/push-notifications';
  644. Roblox.Endpoints.Urls['/notification-stream/notification-stream-data'] = 'https://www.roblox.com/notification-stream/notification-stream-data';
  645. Roblox.Endpoints.Urls['/api/friends/acceptfriendrequest'] = 'https://www.roblox.com/api/friends/acceptfriendrequest';
  646. Roblox.Endpoints.Urls['/api/friends/declinefriendrequest'] = 'https://www.roblox.com/api/friends/declinefriendrequest';
  647. Roblox.Endpoints.Urls['/authentication/is-logged-in'] = 'https://www.roblox.com/authentication/is-logged-in';
  648. Roblox.Endpoints.addCrossDomainOptionsToAllRequests = true;
  649. </script>
  650.  
  651.     <script type="text/javascript">
  652. if (typeof(Roblox) === "undefined") { Roblox = {}; }
  653. Roblox.Endpoints = Roblox.Endpoints || {};
  654. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  655. </script>
  656.  
  657.     <script>
  658.     Roblox = Roblox || {};
  659.     Roblox.AbuseReportPVMeta = {
  660.         desktopEnabled: false,
  661.         phoneEnabled: false,
  662.         inAppEnabled: false
  663.     };
  664. </script>
  665.  
  666.  
  667. <meta name="thumbnail-meta-data"
  668.       data-is-webapp-cache-enabled="False"
  669.       data-webapp-cache-expirations-timespan="00:01:00"
  670.       data-request-min-cooldown="1000"
  671.       data-request-max-cooldown="30000"
  672.       data-request-max-retry-attempts="5"
  673.       data-request-batch-size="100"
  674.       data-thumbnail-metrics-sample-size="20"
  675.       data-concurrent-thumbnail-request-count="4"/>
  676.                          
  677.  
  678. </head>
  679. <body id="rbx-body"
  680.       class="rbx-body    gotham-font"
  681.       data-performance-relative-value="0.005"
  682.       data-internal-page-name="Landing"
  683.       data-send-event-percentage="0">
  684.    
  685.     <meta name="csrf-token" data-token="H1yen1M8F19P" />
  686.  
  687.     <div id="roblox-linkify" data-enabled="true" data-regex="(https?://)?(?:www.)?([a-z0-9-]{2,}.)*(((m|de|www|web|api|blog|wiki|corp|polls|bloxcon|developer|devforum|forum|status).roblox.com|robloxlabs.com)|(www.shoproblox.com)|(roblox.status.io)|(rblx.co)|help.roblox.com(?![A-Za-z0-9/.]*/attachments/))(?!/[A-Za-z0-9-+&@#/=~_|!:,.;]*%)((/[A-Za-z0-9-+&@#/%?=~_|!:,.;]*)|(?=s|b))" data-regex-flags="gm" data-as-http-regex="(([^.]help|polls).roblox.com)"></div>
  688.  
  689. <div id="image-retry-data"
  690.      data-image-retry-max-times="30"
  691.      data-image-retry-timer="500"
  692.      data-ga-logging-percent="10">
  693. </div>
  694. <div id="http-retry-data"
  695.      data-http-retry-max-timeout="0"
  696.      data-http-retry-base-timeout="0"
  697.      data-http-retry-max-times="1">
  698. </div>
  699.    
  700.    
  701.         <script src="https://roblox-api.arkoselabs.com/fc/api/?onload=reportFunCaptchaLoaded" async onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportResourceError('funcaptcha')"></script>
  702. <script type="text/javascript">
  703.     var Roblox = Roblox || {};
  704.     $(function () {
  705.         var funCaptcha = Roblox.FunCaptcha;
  706.         if (funCaptcha) {
  707.             var captchaTypes = [{"Type":"Signup","PublicKey":"A2A14B1D-1AF3-C791-9BBC-EE33CC7A0A6F","ApiUrl":"https://captcha.roblox.com/v1/funcaptcha/signup"},{"Type":"Login","PublicKey":"9F35E182-C93C-EBCC-A31D-CF8ED317B996","ApiUrl":"https://captcha.roblox.com/v1/funcaptcha/login/web"}];
  708.             funCaptcha.addCaptchaTypes(captchaTypes, true);
  709.             funCaptcha.setMaxRetriesOnTokenValidationFailure(0);
  710.             funCaptcha.setPerAppTypeLoggingEnabled(false);
  711.             funCaptcha.setRetryIntervalRange(500, 1500);
  712.         }
  713.     });
  714.  
  715.     // Necessary because of how FunCaptcha js executes callback
  716.     // i.e. window["{function name}"]
  717.     function reportFunCaptchaLoaded()
  718.     {
  719.         if (Roblox.BundleDetector)
  720.         {
  721.             Roblox.BundleDetector.reportResourceLoaded("funcaptcha");
  722.         }
  723.     }
  724. </script>
  725. <script>
  726.     var Roblox = Roblox || {};
  727.     Roblox.SignupMeta = {
  728.         isSinglePasswordFieldEnabled: true,
  729.         isNewUserLandingAbTestingEnabled: true,
  730.         newUserLandingPageAbTestName: "NewUser.LandingPage.HomePage",
  731.         timeoutOnAbtestingEnrollEndpoint: "30000",
  732.         isFbSignUpEnabled: false
  733.     };
  734. </script>
  735.  
  736. <div id="landing-page-container" landing-page-container
  737.      use-experimentation-platform-for-ftux="false"
  738.      is-ftux-avatar-enabled="false"
  739.      ftux-avatar-version="0"
  740.      ftux-context-version="0"
  741.      is-always-captcha-sign-up-enabled="false"
  742.      is-captcha-v2-component-for-sign-up-enabled="true"
  743.      is-korea-id-verification-enabled="false"
  744.      is-signup-form-dark-theme-enabled="true"
  745.      >
  746. </div>
  747.  
  748. <div class="dark-theme">
  749. <!--Bootstrap Footer React Component -->
  750.  
  751. <footer class="container-footer" id="footer-container"
  752.         data-is-giftcards-footer-enabled="True">
  753. </footer>
  754.  
  755.  
  756. </div>
  757.  
  758.  
  759.  
  760. <img src="/timg/rbx" style="position: absolute"/>
  761.  
  762.  
  763. <script type="application/ld+json">
  764.     {
  765.     "@context" : "http://schema.org",
  766.     "@type" : "Organization",
  767.     "name" : "Roblox",
  768.     "url" : "https://www.roblox.com/",
  769.     "logo": "https://images.rbxcdn.com/c69b74f49e785df33b732273fad9dbe0.png",
  770.     "sameAs" : [
  771.     "https://www.facebook.com/roblox/",
  772.     "https://twitter.com/roblox",
  773.     "https://www.linkedin.com/company/147977",
  774.     "https://www.instagram.com/roblox/",
  775.     "https://www.youtube.com/user/roblox",
  776.     "https://plus.google.com/+roblox",
  777.     "https://www.twitch.tv/roblox"
  778.     ]
  779.     }
  780. </script>
  781.  
  782.    
  783.  
  784.    
  785.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='intl-polyfill' type='text/javascript' src='https://js.rbxcdn.com/d44520f7da5ec476cfb1704d91bab327.js'></script>
  786.  
  787.  
  788.     <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/95044be3ff42e3dc429313faca1316cea62f328a39e29689ffeda9002f3a8bc6.js"></script>
  789.  
  790.     <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>
  791.  
  792.  
  793.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='leanbase' type='text/javascript' src='https://js.rbxcdn.com/e029276f0ff3f0c8287c7b1406487975.js'></script>
  794.  
  795.  
  796.     <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/49cf9976738c4f5791c14fb9f1ee9c84b3e45dd75af842a613a3216af0bd9ab0.js"></script>
  797.  
  798.     <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/09c0fe73025a49dbb397295b5ee57e7b5c7a20e7b74645178c037a7438d7f810.js"></script>
  799.  
  800.  
  801.  
  802.     <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/6beb1c5bcec1a4449303da9e523d45a1aa1652f9b42ae6c8a3ac347955ca3b3f.js"></script>
  803.  
  804.     <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/898cb6e9c467d15ad80a67d019f3815d35dbc6ff60c12ef7dd928e8fbaf02b0b.js"></script>
  805.  
  806.     <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/c65d6975bac58c3e22cd6f6ac6ed7c6da662106271a0107e06c3aaa2a1d85ef4.js"></script>
  807.  
  808.     <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/c756de2b0f5f2f05d62899a3b602b4a3b573ad3faa1adea789291ebe9c66a002.js"></script>
  809.  
  810.  
  811.    
  812.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='angular' type='text/javascript' src='https://js.rbxcdn.com/ae3d621886e736e52c97008e085fa286.js'></script>
  813.  
  814.     <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/81164cee2ed2b07903bf00968368213664e0e78bdbdf9418389c2d2a8512cccf.js"></script>
  815.  
  816.     <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/90f18784a43a70553e967191b948f70b0193df565f1605762c3c1e245ab4b55a.js"></script>
  817.  
  818.     <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/5cbced54f9f243ae5e05e7d00f87fc7b966e65b549cb20701b781d1b1b74f154.js"></script>
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825. <div id="presence-registration-bootstrap-data"
  826.      data-is-enabled="False"
  827.      data-interval="15000"></div><script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="PresenceRegistration" data-bundle-source="Main" src="https://js.rbxcdn.com/0a83202cf5f2310227e607928f73a26cdaa7d5c27f892b99ef51ec3b863a694d.js"></script>
  828.     <div ng-modules="baseTemplateApp">
  829.         <script type="text/javascript" src="https://js.rbxcdn.com/ffcc04436179c6b2a6668fdfcfbf62b1.js"></script>
  830.     </div>
  831.  
  832.     <div ng-modules="pageTemplateApp">
  833.         <!-- Template bundle: page -->
  834. <script type="text/javascript">
  835. "use strict"; angular.module("pageTemplateApp", []).run(['$templateCache', function($templateCache) {
  836.  
  837.  }]);
  838. </script>
  839.  
  840.     </div>
  841.  
  842. <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/77e7b5a83c50728043207196edb8679437757b6de6e82ca180d507a28f869c96.js"></script>
  843. <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/82eb8999eb91a55da1f2b14fc6ae366abc2c1e7ca2c2fa438fd1610ce5bd458c.js"></script>
  844. <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/faa7b128aa8b8755d9133354c1bb99c5a083914d5fd3afd57d9496be39c78ee6.js"></script>
  845. <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Navigation" data-bundle-source="Main" src="https://js.rbxcdn.com/8583cb8f16376b92298b8e452bd9d664bfa1b012c87f9e8b7a4255ff25063d4d.js"></script>
  846. <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/b39c1a4daccf2d05996f1aa95c6efa8fa4c8aa8b6b079c2d5e144d33a2d769bc.js"></script>
  847. <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/225e32821c8236a09a750eb621ac01ffd902538af3eaf018d5138beb78bb09ec.js"></script>
  848. <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ShopDialog" data-bundle-source="Unknown" src="https://js.rbxcdn.com/c0606e8d6eb4487cdc70d318e6de3d9aaeeb465ddb84acd95139011e56c5e5c6.js"></script>
  849. <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="DynamicLocalizationResourceScript_Feature.ShopDialog" data-bundle-source="Unknown" src="https://js.rbxcdn.com/95fdafe5af749e388de603b9ee7f67bb092c3c790badc572db4e2bca0c32b49a.js"></script>
  850. <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/8f06fef33a61a6c67e1e6d93829b9bb03476bc976102d7bcebe4bfe85a3d4328.js"></script>
  851. <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/03a64d3850925b52ee73bd27b41658f4a35a2b33b4a499fcb2ce72dcbd98020f.js"></script>
  852.  
  853.    
  854.  
  855.    
  856.     <script type='text/javascript'>Roblox.config.externalResources = [];Roblox.config.paths['Pages.Catalog'] = 'https://js.rbxcdn.com/0d2759e7f03a464f0b8c0909a28405c5.js';Roblox.config.paths['Pages.CatalogShared'] = 'https://js.rbxcdn.com/1b451357891fcc5351b20d20504aa8ad.js';Roblox.config.paths['Widgets.AvatarImage'] = 'https://js.rbxcdn.com/7d49ac94271bd506077acc9d0130eebb.js';Roblox.config.paths['Widgets.DropdownMenu'] = 'https://js.rbxcdn.com/da553e6b77b3d79bec37441b5fb317e7.js';Roblox.config.paths['Widgets.HierarchicalDropdown'] = 'https://js.rbxcdn.com/4a0af9989732810851e9e12809aeb8ad.js';Roblox.config.paths['Widgets.ItemImage'] = 'https://js.rbxcdn.com/61a0490ba23afa17f9ecca2a079a6a57.js';Roblox.config.paths['Widgets.PlaceImage'] = 'https://js.rbxcdn.com/a6df74a754523e097cab747621643c98.js';</script>
  857.  
  858.         <script>
  859.             $(function () {
  860.                 Roblox.DeveloperConsoleWarning.showWarning();
  861.             });
  862.         </script>
  863.    
  864.  
  865. <script type="text/javascript">
  866.     $(function(){
  867.         function trackReturns() {
  868.             function dayDiff(d1, d2) {
  869.                 return Math.floor((d1-d2)/86400000);
  870.             }
  871.             if (!localStorage) {
  872.                 return false;
  873.             }
  874.  
  875.             var cookieName = 'RBXReturn';
  876.             var cookieOptions = {expires:9001};
  877.             var cookieStr = localStorage.getItem(cookieName) || "";
  878.             var cookie = {};
  879.  
  880.             try {
  881.                 cookie = JSON.parse(cookieStr);
  882.             } catch (ex) {
  883.                 // busted cookie string from old previous version of the code
  884.             }
  885.  
  886.             try {
  887.                 if (typeof cookie.ts === "undefined" || isNaN(new Date(cookie.ts))) {
  888.                     localStorage.setItem(cookieName, JSON.stringify({ ts: new Date().toDateString() }));
  889.                     return false;
  890.                 }
  891.             } catch (ex) {
  892.                 return false;
  893.             }
  894.  
  895.             var daysSinceFirstVisit = dayDiff(new Date(), new Date(cookie.ts));
  896.             if (daysSinceFirstVisit == 1 && typeof cookie.odr === "undefined") {
  897.                 RobloxEventManager.triggerEvent('rbx_evt_odr', {});
  898.                 cookie.odr = 1;
  899.             }
  900.             if (daysSinceFirstVisit >= 1 && daysSinceFirstVisit <= 7 && typeof cookie.sdr === "undefined") {
  901.                 RobloxEventManager.triggerEvent('rbx_evt_sdr', {});
  902.                 cookie.sdr = 1;
  903.             }
  904.             try {
  905.                 localStorage.setItem(cookieName, JSON.stringify(cookie));
  906.             } catch (ex) {
  907.                 return false;
  908.             }
  909.         }
  910.  
  911.         GoogleListener.init();
  912.  
  913.  
  914.    
  915.         RobloxEventManager.initialize(true);
  916.         RobloxEventManager.triggerEvent('rbx_evt_pageview');
  917.         trackReturns();
  918.        
  919.  
  920.    
  921.         RobloxEventManager._idleInterval = 450000;
  922.         RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_start');
  923.         RobloxEventManager.registerCookieStoreEvent('rbx_evt_ftp');
  924.         RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_success');
  925.         RobloxEventManager.registerCookieStoreEvent('rbx_evt_fmp');
  926.         RobloxEventManager.startMonitor();
  927.        
  928.  
  929.     });
  930.  
  931. </script>
  932.  
  933.  
  934.    
  935.    
  936.  
  937. <script type="text/javascript">
  938.     var Roblox = Roblox || {};
  939.     Roblox.UpsellAdModal = Roblox.UpsellAdModal || {};
  940.  
  941.     Roblox.UpsellAdModal.Resources = {
  942.         title: "Remove Ads Like This",
  943.         body: "Builders Club members do not see external ads like these.",
  944.         accept: "Upgrade Now",
  945.         decline: "No, thanks"
  946.     };
  947. </script>
  948.  
  949.    
  950.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='page' type='text/javascript' src='https://js.rbxcdn.com/a3d8540712cc20751079517805fc1a80.js'></script>
  951.  
  952.  
  953.     <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/4888ca8b071d138013918b69709855c0d45e5ccb359104c0dd0f28b52c825c87.js"></script>
  954.  
  955. <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/310bda9a8ee2f36524a0c5e0e94c5f3801548431acdf617638feebf62eb1c5c2.js"></script>
  956.  
  957. <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="CrownPeakCookieBanner" data-bundle-source="Main" src="https://js.rbxcdn.com/5188106329cab2c7a265bd5d8182124dd5a48379bfd31965c98d1fd73418dfc0.js"></script>
  958. <script type="text/javascript" onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)" data-monitor="true" data-bundlename="Landing" data-bundle-source="Main" src="https://js.rbxcdn.com/0744fb2208509df21b551dd95876da10a16c51a8ff1a0f05943f861477171d2f.js"></script>
  959. <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/1a241d9144da8dbf8df6923786e07dbb12d496294c6e3619ee01a3f510445e52.js"></script>
  960.  
  961.  
  962.  
  963.  
  964.     <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/bf6ae6dfa7d79f9ffe1a0c1b3a22c25707722264d9afdd2fae5cc3e7f51e5d70.js"></script>
  965. <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/bed4301242a08489111ebfe8aad4034273c3aa8e267840f32f7d3f7af241ca78.js"></script>
  966. <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/9ac0c0bd0fbda0a0b718470ef85b5206c0997111f8735294c638812e8d3d615a.js"></script>
  967. <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/fe80ffd33d4a0e0b42a6789a523e4729177d7fea52bab0cea3485f24393cdb52.js"></script>
  968. <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/6852af8f7df15395ccb3d121a914ee7301a7162f5afb3395575c6075c617923f.js"></script>
  969. <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/f41ec06eeae79fa94e6ae9f435b0a1c6743085e898884eddb4d4025ca3af8a44.js"></script>
  970. <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/691a0c622f37b2b23073e7bf92f2d9d56db5f976fc95b3489b571f1b582af564.js"></script>
  971. <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/54f0f101be41e556d9994491f5cdc63a4e6f33c364590ebac87e1365e99c29ff.js"></script>
  972.  
  973.  
  974.    
  975.    
  976.    
  977.  
  978.  
  979.     <script onerror='Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)' data-monitor='true' data-bundlename='pageEnd' type='text/javascript' src='https://js.rbxcdn.com/f590323b08ff5420aebe30f38b10865e'></script>
  980.  
  981.  
  982. </body>
  983. </html>
  984.        
  985.  

Replies to Untitled rss

Title Name Language When
Re: Untitled Gray Hornbill text 2 Years ago.