<!doctypehtml><head data-machine-id=WEB459><title>
   Roblox
  </title><meta content=IE=edge,requiresActiveX=true http-equiv=X-UA-Compatible><meta charset=utf-8><meta content=width=device-width,initial-scale=1 name=viewport><meta content="Roblox Corporation"name=author><meta content="Roblox is a global platform that brings people together through play."name=description><meta content="free games, online games, building games, virtual worlds, free mmo, gaming cloud, physics engine"name=keywords><meta content=app-id=431946152 name=apple-itunes-app><script type=application/ld+json>
   {
    "@context" : "http://schema.org",
    "@type" : "Organization",
    "name" : "Roblox",
    "url" : "https://www.roblox.com/",
    "logo": "https://images.rbxcdn.com/c69b74f49e785df33b732273fad9dbe0.png",
    "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://plus.google.com/+roblox",
    "https://www.twitch.tv/roblox"
    ]
    }
  </script><meta data-language-code=en_us data-language-name=English name=locale-data><meta data-app-type=unknown data-device-type=computer data-is-amazon-app=false data-is-android-app=false data-is-android-device=false data-is-console=false data-is-desktop=true data-is-game-client-browser=false data-is-in-app=false data-is-ios-app=false data-is-ios-device=false data-is-phone=false data-is-studio=false data-is-tablet=false data-is-universal-app=false data-is-uwp-app=false data-is-win32-app=false data-is-xbox-app=false name=device-meta><meta data-is-testing-site=false name=environment-meta><meta data-enabled=false id=roblox-display-names><meta data-internal-page-name=Login name=page-meta><script>var Roblox = Roblox || {};

    Roblox.BundleVerifierConstants = {
        isMetricsApiEnabled: true,
        eventStreamUrl: "//ecsv2.roblox.com/pe?t=diagnostic",
        deviceType: "Computer",
        cdnLoggingEnabled: JSON.parse("true")
    };</script><script>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 eventTracker.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 esUrl = Roblox.BundleVerifierConstants.eventStreamUrl,
                currentPageUrl = encodeURIComponent(window.location.href);

            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/3b43a5c16ec359053fef735551716fc5.ico rel=icon><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=StyleGuide href=https://css.rbxcdn.com/9157afd5cee40eb7b436a6945743afc5a4e11f242379b22371e6a508f06bcc2d.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Thumbnails href=https://css.rbxcdn.com/9517d686dc47015c200496d77e2b18146ee37652d18e25ecf9e1ed230310ea13.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=VerificationUpsell href=https://css.rbxcdn.com/4cfc9413aaac922000f010ba651f264e59a200d6062d41f8196017ade0094116.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Navigation href=https://css.rbxcdn.com/b4acdc29672aaf9dec2081fb12cfd9f1c40ecfef7a80915c9e2377bdd251c8bc.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Footer href=https://css.rbxcdn.com/55b250e8473888792f885d898973a13692fb22157baf61aaffa62ce4545f3408.css rel=stylesheet><link href=https://www.roblox.com/newlogin rel=canonical><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"href=https://static.rbxcdn.com/css/leanbase___3678d89e5ec3f4d8c65d863691f31de2_m.css/fetch rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"href=https://static.rbxcdn.com/css/page___b9da2650977861b9ecd198f068f842c2_m.css/fetch rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Captcha href=https://css.rbxcdn.com/24a76e8ea70afb9462fad013faa3d22ff3e832e8327ddd764dafe328918bed90.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=RobuxIcon href=https://css.rbxcdn.com/2f599b9e9ca20ee3c155684adbf1cdcb7220bab681b55b4505123a0c34e81969.css rel=stylesheet><link onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Login href=https://css.rbxcdn.com/e0bcc553b7b9a1dd061c6ade9b1da1fcd7a10d3c86940c321b8823d97689038a.css rel=stylesheet><script>var Roblox = Roblox || {};
    Roblox.EnvironmentUrls = Roblox.EnvironmentUrls || {};
    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","apiProxyUrl":"https://api.roblox.com","assetDeliveryApi":"https://assetdelivery.roblox.com","authApi":"https://auth.roblox.com","authAppSite":"https://authsite.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","friendsAppSite":"https://friendsite.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"};

    // please keep the list in alphabetical order
    var additionalUrls = {
        amazonStoreLink: "https://www.amazon.com/Roblox-Corporation/dp/B00NUF4YOA",
        appProtocolUrl: "robloxmobile://",
        appStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
        googlePlayStoreLink: "https://play.google.com/store/apps/details?id=com.roblox.client&amp;hl=en",
        iosAppStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152",
        windowsStoreLink: "https://www.microsoft.com/en-us/store/games/roblox/9nblgggzm6wm",
        xboxStoreLink: "https://www.microsoft.com/en-us/p/roblox/bq1tn1t79v9k",
        amazonWebStoreLink: "https://www.amazon.com/roblox?&amp;_encoding=UTF8&amp;tag=r05d13-20&amp;linkCode=ur2&amp;linkId=4ba2e1ad82f781c8e8cc98329b1066d0&amp;camp=1789&amp;creative=9325"
    }

    for (var urlName in additionalUrls) {
        Roblox.EnvironmentUrls[urlName] = additionalUrls[urlName];
    }</script><script>var Roblox = Roblox || {};
    Roblox.GaEventSettings = {
        gaDFPPreRollEnabled: "false" === "true",
        gaLaunchAttemptAndLaunchSuccessEnabled: "false" === "true",
        gaPerformanceEventEnabled: "false" === "true"
    };</script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=headerinit data-monitor=true src=https://js.rbxcdn.com/7bee61aedcbb4773d878992153fa64e0.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Polyfill data-monitor=true src=https://js.rbxcdn.com/4340261c6f9296c0727dc8605acada61ac3db48cad8da1cf5b25f4ac3ab18d7b.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=HeaderScripts data-monitor=true src=https://js.rbxcdn.com/db5218c3fbccfaa300942c9c11f581d29079dcf3d27e2b69c410f10ba3aff8d4.js></script><meta data-dsn=https://6750adeb1b1348e4a10b13e726d5c10b@sentry.io/1539367 data-env-name=production data-sample-rate=0.01 name=sentry-meta><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Sentry data-monitor=true src=https://js.rbxcdn.com/edc66704bd1974195d8c60f4a163441bec82f1bcb11c492e7df07c43f45a4d49.js></script><meta data-access-token=S3EXjCZQQr6OixnmKu+hoa3OSfpvPP5qgU0esiWgwreFUUMBnPhEaoS5yIIrf9bdYlSgW0XKCb1So9Rhtj1eMzt/MJWcyKZ4TwIckHVj data-api-sites-request-allow-list=friends.roblox.com,chat.roblox.com,thumbnails.roblox.com,games.roblox.com data-is-instrument-page-performance-enabled=false data-sample-rate=0 data-service-name=Web data-tracer-enabled=false name=roblox-tracer-meta-data><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=RobloxTracer data-monitor=true src=https://js.rbxcdn.com/a168257175fe69cdb0762a3b8ca5d0a5fd625f77c027d5e4cef7f90a1602d704.js></script><meta content=width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0 name=viewport><script>var Roblox = Roblox || {};
    Roblox.AdsHelper = Roblox.AdsHelper || {};
    Roblox.AdsLibrary = Roblox.AdsLibrary || {};

    Roblox.AdsHelper.toggleAdsSlot = function (slotId, GPTRandomSlotIdentifier) {
        var gutterAdsEnabled = false;
        if (gutterAdsEnabled) {
            googletag.display(GPTRandomSlotIdentifier);
            return;
        }
        
        if (typeof slotId !== 'undefined' && slotId && slotId.length > 0) {
            var slotElm = $("#"+slotId);
            if (slotElm.is(":visible")) {
                googletag.display(GPTRandomSlotIdentifier);
            }else {
                var adParam = Roblox.AdsLibrary.adsParameters[slotId];
                if (adParam) {
                    adParam.template = slotElm.html();
                    slotElm.empty();
                }
            }
        }
    }</script><script>$(function () {
            RobloxEventManager.triggerEvent('rbx_evt_newuser', {});
        });</script><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>var _gaq = _gaq || [];

                window.GoogleAnalyticsDisableRoblox2 = true;
        _gaq.push(['b._setAccount', 'UA-486632-1']);
            _gaq.push(['b._setSampleRate', '10']);
        _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, 'Login']);
                
                    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, 'Login']);
                    
            (function() {
                if (!Roblox.browserDoNotTrack) {
                    var ga = document.createElement('script');
                    ga.type = 'text/javascript';
                    ga.async = true;
                    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                    var s = document.getElementsByTagName('script')[0];
                    s.parentNode.insertBefore(ga, s);
                }
        })();</script><script async src=https://www.googletagmanager.com/gtag/js?id=AW-1065449093></script><script>var accountCode = "AW-1065449093";
            var signupConversionEventKey = "wmuJCO3CZBCF7YX8Aw";
            var webPurchaseConversionEventKey = "XDQ_CJme6s0BEIXthfwD";
            window.dataLayer = window.dataLayer || [];

            function gtag() { dataLayer.push(arguments); }
            gtag.conversionEvents = {
                signupConversionEvent: accountCode + '/' + signupConversionEventKey,
                webPurchaseConversionEvent: accountCode + '/' + webPurchaseConversionEventKey
            }
            gtag('js', new Date());
            gtag('config', accountCode);</script><script>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>if (Roblox && Roblox.PageHeartbeatEvent) {
        Roblox.PageHeartbeatEvent.Init([2,8,20,60]);
    }</script><script>if (typeof(Roblox) === "undefined") { Roblox = {}; }
Roblox.Endpoints = Roblox.Endpoints || {};
Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
Roblox.Endpoints.Urls['/asset/'] = 'https://assetgame.roblox.com/asset/';
Roblox.Endpoints.Urls['/client-status/set'] = 'https://www.roblox.com/client-status/set';
Roblox.Endpoints.Urls['/client-status'] = 'https://www.roblox.com/client-status';
Roblox.Endpoints.Urls['/game/'] = 'https://assetgame.roblox.com/game/';
Roblox.Endpoints.Urls['/game/edit.ashx'] = 'https://assetgame.roblox.com/game/edit.ashx';
Roblox.Endpoints.Urls['/game/placelauncher.ashx'] = 'https://assetgame.roblox.com/game/placelauncher.ashx';
Roblox.Endpoints.Urls['/game/preloader'] = 'https://assetgame.roblox.com/game/preloader';
Roblox.Endpoints.Urls['/game/report-stats'] = 'https://assetgame.roblox.com/game/report-stats';
Roblox.Endpoints.Urls['/game/report-event'] = 'https://assetgame.roblox.com/game/report-event';
Roblox.Endpoints.Urls['/game/updateprerollcount'] = 'https://assetgame.roblox.com/game/updateprerollcount';
Roblox.Endpoints.Urls['/login/default.aspx'] = 'https://www.roblox.com/login/default.aspx';
Roblox.Endpoints.Urls['/my/avatar'] = 'https://www.roblox.com/my/avatar';
Roblox.Endpoints.Urls['/my/money.aspx'] = 'https://www.roblox.com/my/money.aspx';
Roblox.Endpoints.Urls['/navigation/userdata'] = 'https://www.roblox.com/navigation/userdata';
Roblox.Endpoints.Urls['/chat/chat'] = 'https://www.roblox.com/chat/chat';
Roblox.Endpoints.Urls['/chat/data'] = 'https://www.roblox.com/chat/data';
Roblox.Endpoints.Urls['/friends/list'] = 'https://www.roblox.com/friends/list';
Roblox.Endpoints.Urls['/navigation/getcount'] = 'https://www.roblox.com/navigation/getCount';
Roblox.Endpoints.Urls['/regex/email'] = 'https://www.roblox.com/regex/email';
Roblox.Endpoints.Urls['/catalog/browse.aspx'] = 'https://www.roblox.com/catalog/browse.aspx';
Roblox.Endpoints.Urls['/catalog/html'] = 'https://search.roblox.com/catalog/html';
Roblox.Endpoints.Urls['/catalog/json'] = 'https://search.roblox.com/catalog/json';
Roblox.Endpoints.Urls['/catalog/contents'] = 'https://search.roblox.com/catalog/contents';
Roblox.Endpoints.Urls['/catalog/lists.aspx'] = 'https://search.roblox.com/catalog/lists.aspx';
Roblox.Endpoints.Urls['/catalog/items'] = 'https://search.roblox.com/catalog/items';
Roblox.Endpoints.Urls['/asset-hash-thumbnail/image'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/image';
Roblox.Endpoints.Urls['/asset-hash-thumbnail/json'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/json';
Roblox.Endpoints.Urls['/asset-thumbnail-3d/json'] = 'https://assetgame.roblox.com/asset-thumbnail-3d/json';
Roblox.Endpoints.Urls['/asset-thumbnail/image'] = 'https://assetgame.roblox.com/asset-thumbnail/image';
Roblox.Endpoints.Urls['/asset-thumbnail/json'] = 'https://assetgame.roblox.com/asset-thumbnail/json';
Roblox.Endpoints.Urls['/asset-thumbnail/url'] = 'https://assetgame.roblox.com/asset-thumbnail/url';
Roblox.Endpoints.Urls['/asset/request-thumbnail-fix'] = 'https://assetgame.roblox.com/asset/request-thumbnail-fix';
Roblox.Endpoints.Urls['/avatar-thumbnail-3d/json'] = 'https://www.roblox.com/avatar-thumbnail-3d/json';
Roblox.Endpoints.Urls['/avatar-thumbnail/image'] = 'https://www.roblox.com/avatar-thumbnail/image';
Roblox.Endpoints.Urls['/avatar-thumbnail/json'] = 'https://www.roblox.com/avatar-thumbnail/json';
Roblox.Endpoints.Urls['/avatar-thumbnails'] = 'https://www.roblox.com/avatar-thumbnails';
Roblox.Endpoints.Urls['/avatar/request-thumbnail-fix'] = 'https://www.roblox.com/avatar/request-thumbnail-fix';
Roblox.Endpoints.Urls['/bust-thumbnail/json'] = 'https://www.roblox.com/bust-thumbnail/json';
Roblox.Endpoints.Urls['/group-thumbnails'] = 'https://www.roblox.com/group-thumbnails';
Roblox.Endpoints.Urls['/groups/getprimarygroupinfo.ashx'] = 'https://www.roblox.com/groups/getprimarygroupinfo.ashx';
Roblox.Endpoints.Urls['/headshot-thumbnail/json'] = 'https://www.roblox.com/headshot-thumbnail/json';
Roblox.Endpoints.Urls['/item-thumbnails'] = 'https://www.roblox.com/item-thumbnails';
Roblox.Endpoints.Urls['/outfit-thumbnail/json'] = 'https://www.roblox.com/outfit-thumbnail/json';
Roblox.Endpoints.Urls['/place-thumbnails'] = 'https://www.roblox.com/place-thumbnails';
Roblox.Endpoints.Urls['/thumbnail/asset/'] = 'https://www.roblox.com/thumbnail/asset/';
Roblox.Endpoints.Urls['/thumbnail/avatar-headshot'] = 'https://www.roblox.com/thumbnail/avatar-headshot';
Roblox.Endpoints.Urls['/thumbnail/avatar-headshots'] = 'https://www.roblox.com/thumbnail/avatar-headshots';
Roblox.Endpoints.Urls['/thumbnail/user-avatar'] = 'https://www.roblox.com/thumbnail/user-avatar';
Roblox.Endpoints.Urls['/thumbnail/resolve-hash'] = 'https://www.roblox.com/thumbnail/resolve-hash';
Roblox.Endpoints.Urls['/thumbnail/place'] = 'https://www.roblox.com/thumbnail/place';
Roblox.Endpoints.Urls['/thumbnail/get-asset-media'] = 'https://www.roblox.com/thumbnail/get-asset-media';
Roblox.Endpoints.Urls['/thumbnail/remove-asset-media'] = 'https://www.roblox.com/thumbnail/remove-asset-media';
Roblox.Endpoints.Urls['/thumbnail/set-asset-media-sort-order'] = 'https://www.roblox.com/thumbnail/set-asset-media-sort-order';
Roblox.Endpoints.Urls['/thumbnail/place-thumbnails'] = 'https://www.roblox.com/thumbnail/place-thumbnails';
Roblox.Endpoints.Urls['/thumbnail/place-thumbnails-partial'] = 'https://www.roblox.com/thumbnail/place-thumbnails-partial';
Roblox.Endpoints.Urls['/thumbnail_holder/g'] = 'https://www.roblox.com/thumbnail_holder/g';
Roblox.Endpoints.Urls['/users/{id}/profile'] = 'https://www.roblox.com/users/{id}/profile';
Roblox.Endpoints.Urls['/service-workers/push-notifications'] = 'https://www.roblox.com/service-workers/push-notifications';
Roblox.Endpoints.Urls['/notification-stream/notification-stream-data'] = 'https://www.roblox.com/notification-stream/notification-stream-data';
Roblox.Endpoints.Urls['/api/friends/acceptfriendrequest'] = 'https://www.roblox.com/api/friends/acceptfriendrequest';
Roblox.Endpoints.Urls['/api/friends/declinefriendrequest'] = 'https://www.roblox.com/api/friends/declinefriendrequest';
Roblox.Endpoints.Urls['/authentication/is-logged-in'] = 'https://www.roblox.com/authentication/is-logged-in';
Roblox.Endpoints.addCrossDomainOptionsToAllRequests = true;</script><script>if (typeof(Roblox) === "undefined") { Roblox = {}; }
Roblox.Endpoints = Roblox.Endpoints || {};
Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};</script><script>Roblox = Roblox || {};
    Roblox.AbuseReportPVMeta = {
        desktopEnabled: false,
        phoneEnabled: false,
        inAppEnabled: false
    };</script><meta data-is-webapp-cache-enabled=False data-request-batch-size=100 data-request-max-cooldown=30000 data-request-max-retry-attempts=5 data-request-min-cooldown=1000 data-thumbnail-metrics-sample-size=50 data-webapp-cache-expirations-timespan=00:01:00 name=thumbnail-meta-data><body class="rbx-body light-theme gotham-font"data-internal-page-name=Login data-performance-relative-value=0.005 data-send-event-percentage=0 id=rbx-body><div data-as-http-regex=(([^.]help|polls)\.roblox\.com) 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 id=roblox-linkify></div><div data-ga-logging-percent=10 data-image-retry-max-times=30 data-image-retry-timer=500 id=image-retry-data></div><div data-http-retry-base-timeout=0 data-http-retry-max-timeout=0 data-http-retry-max-times=1 id=http-retry-data></div><div id=fb-root></div><div class="wrap no-gutter-ads logged-out"data-gutter-ads-enabled=false id=wrap><div class="light-theme gotham-font"id=navigation-container><div class="navbar-fixed-top rbx-header"id=header role=navigation><div class=container-fluid><div class=rbx-navbar-header><div class=rbx-nav-collapse id=header-menu-icon role=button tabindex=0><span class=icon-nav-menu> </span></div><div class=navbar-header><a class=navbar-brand href=/home> <span class=icon-logo> </span> <span class=icon-logo-r> </span> </a></div></div><ul class="nav rbx-navbar hidden-xs hidden-sm col-md-5 col-lg-4"><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/games> Games </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/catalog> Avatar Shop </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/develop> Create </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/robux?ctx-nav> Robux </a></ul><ul class="nav rbx-navbar hidden-md hidden-lg col-xs-12"><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/games> Games </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/catalog> Avatar Shop </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/develop> Create </a><li class=cursor-pointer><a class="font-header-2 nav-menu-title text-header"href=/robux?ctx=nav> Robux </a></ul><div id=right-navigation-header></div></div></div><div id=left-navigation-container></div><div id=verificationUpsell-container><div verificationupsell-container></div></div></div><script>var Roblox = Roblox || {};
    (function () {
        if (Roblox && Roblox.Performance) {
            Roblox.Performance.setPerformanceMark("navigation_end");
        }
    })();</script><div class=container-main id=container-main><script>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><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportResourceError('funcaptcha')"async src=https://roblox-api.arkoselabs.com/fc/api/?onload=reportFunCaptchaLoaded></script><script>var Roblox = Roblox || {};
    $(function () {
        var funCaptcha = Roblox.FunCaptcha;
        if (funCaptcha) {
            var captchaTypes = [{"Type":"Login","PublicKey":"9F35E182-C93C-EBCC-A31D-CF8ED317B996","ApiUrl":"https://captcha.roblox.com/v1/funcaptcha/login/web"}];
            funCaptcha.addCaptchaTypes(captchaTypes, true);
            funCaptcha.setMaxRetriesOnTokenValidationFailure(0);
            funCaptcha.setPerAppTypeLoggingEnabled(false);
            funCaptcha.setRetryIntervalRange(500, 1500);
        }
    });

    // Necessary because of how FunCaptcha js executes callback
    // i.e. window["{function name}"]
    function reportFunCaptchaLoaded()
    {
        if (Roblox.BundleDetector)
        {
            Roblox.BundleDetector.reportResourceLoaded("funcaptcha");
        }
    }</script><div class=login-container id=login-container><div is-always-captcha-login-enabled=false is-bedev2-captcha-for-web-login-enabled=true is-facebook-sign-in-enabled=true is-login-fun-captcha-enabled=true login-base></div></div><script>var Roblox = Roblox || {};
    Roblox.LoginMeta = {
        signupUrl: "https://www.roblox.com/account/signupredir",
        forgotCredentialsUrl: "https://www.roblox.com/login/forgot-password-or-username",
        homeUrl: "https://www.roblox.com/home",
        securityNotificationUrl: "https://www.roblox.com/login/securitynotification",
        apiProxyUrl: "https://api.roblox.com",
        fbSignInUrl: "",
        loginPageUrl: "https://www.roblox.com/newlogin",
        isLoginWithEmailEnabled: true,
        isLoginWithPhoneEnabled: true,
        isPromptUnverifiedEmailsEnabled: true
    };</script><script async defer src=https://cdns.gigya.com/js/gigya.js?apiKey=3_OsvmtBbTg6S_EUbwTPtbbmoihFY5ON6v6hbVrTbuqpBs7SyF_LQaJwtwKJ60sY1p>{
                bypassCookiePolicy: 'never'
            }</script><div data-context=loginPage data-rbx-login-redirect-url=/social/postlogin id=SocialIdentitiesInformation></div></div></div><footer class=container-footer data-is-giftcards-footer-enabled=True id=footer-container></footer></div><script>function urchinTracker() {}</script><script>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&#39;re moments away from getting into the game!</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/33a10b486241d85e46df442eb2134371.svg' width='95' height='95' alt='R' /><p>Get started creating your own games!</p>",
                buttonText: "Download Studio"
            }
        },
        ProtocolHandlerStartingDialog: {
            play: {
                content: robloxIcon + "<p>Roblox is now loading. Get ready to play!</p>"
            },
            studio: {
                content: "<img src='https://images.rbxcdn.com/33a10b486241d85e46df442eb2134371.svg' width='95' height='95' alt='R' /><p>Checking for Roblox Studio...</p>"
            },
            loader: "<span class='spinner spinner-default'></span>"
        }
    };</script><div data-event-stream-for-plugin-enabled=True data-event-stream-for-protocol-enabled=True data-is-game-launch-interface-enabled=True data-is-protocol-handler-launch-enabled=True data-is-user-logged-in=False data-new-plugin-events-enabled=True data-os-name=Unknown data-protocol-avatar-parameter-enabled=false data-protocol-channel-name=LIVE data-protocol-detection-enabled=true data-protocol-game-locale=en_us data-protocol-name-for-client=roblox-player data-protocol-name-for-studio=roblox-studio data-protocol-roblox-locale=en_us data-protocol-separate-script-parameters-enabled=true data-protocol-url-includes-launchtime=true id=PlaceLauncherStatusPanel style=display:none;width:300px><div class="modalPopup blueAndWhite PlaceLauncherModal"style="min-height: 160px"><div style="padding:20px 0;"class=Spinner id=Spinner><img alt=Progress data-delaysrc=https://images.rbxcdn.com/e998fb4c03e8c2e30792f2f3436e9416.gif height=32 width=32></div><div style="min-height:40px;text-align:center;margin:5px 20px"id=status><div class="PlaceLauncherStatus MadStatusStarting"id=Starting style=display:block>Starting Roblox...</div><div class="PlaceLauncherStatus MadStatusField"id=Waiting>Connecting to Players...</div><div class="PlaceLauncherStatus PlaceLauncherStatusBackBuffer MadStatusBackBuffer"id=StatusBackBuffer></div></div><div style=text-align:center;margin-top:1em><input class="Button CancelPlaceLauncherButton translate"type=button value=Cancel></div></div></div><div class=ph-clickalwaysallowed id=ProtocolHandlerClickAlwaysAllowed style=display:none;><p class=larger-font-size><span class=icon-moreinfo> </span> Check <strong> Remember my choice </strong> and click <strong> OK </strong> in the dialog box above to join games faster in the future!</div><script>function checkRobloxInstall() {
             window.location = 'https://www.roblox.com/unsupported?osx=10.5'; return false;
}</script><div class=style2016 id=InstallationInstructions 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 playing Roblox</h5></div><div class=modal-content-container><div class=ph-installinstructions-body><ul class=modal-col-5><li class=step1-of-5><h2>1</h2> <p class=larger-font-size>Click <strong> Save File </strong> when the download window pops up</p> <img data-delaysrc=https://images.rbxcdn.com/06b51c8849130f46e38bfa01f0e5c8d2.png><li class=2-of-5><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/62b8b3f6c856acd74ff7ea49dab56889.png><li class=step3-of-5><h2>3</h2> <p class=larger-font-size>Click <strong> Run </strong></p> <img data-delaysrc=https://images.rbxcdn.com/aee74021bb3ba2a4956449b62cd35405.png><li class=step4-of-5><h2>4</h2> <p class=larger-font-size>Once installed, click <strong> Play </strong> to join the action!</p> <div class="VisitButton VisitButtonContinueGLI"><a class="btn btn-primary-lg disabled btn-full-width"> Play </a></div><li class=step5-of-5><h2>5</h2> <p class=larger-font-size>Click <strong> Ok </strong> when the alert pops up</p> <img data-delaysrc=https://images.rbxcdn.com/9168d6c2974f4bd80e741b31257b4fc9.png></ul></div></div><div class=xsmall>The Roblox installer should download shortly. If it doesn’t, start the <a class=text-link href=# id=GameLaunchManualInstallLink> download now. </a><script>if (Roblox.ProtocolHandlerClientInterface && typeof Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink === 'function') {
                           Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink();
                       }</script></div></div></div><div class=InstallInstructionsImage data-modalwidth=970 style=display:none;></div><div style="height:1px;width:1px;visibility:hidden;position: absolute;top: 0;"id=pluginObjDiv></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-bundlename=clientinstaller data-monitor=true src=https://js.rbxcdn.com/17af7ddc78e9257b126bfee033fdf688.js></script><script>Roblox.Client._skip = '/unsupported';
    Roblox.Client._CLSID = '';
    Roblox.Client._installHost = '';
    Roblox.Client.ImplementsProxy = false;
    Roblox.Client._silentModeEnabled = false;
    Roblox.Client._bringAppToFrontEnabled = false;
    Roblox.Client._currentPluginVersion = '';
    Roblox.Client._eventStreamLoggingEnabled = false;

        
        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-click data-no-overlays><img alt="generic image"class=GenericModalImage></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>Roblox = Roblox || {};
        Roblox.Resources = Roblox.Resources || {};
        
        //<sl:translate>
        Roblox.Resources.GenericConfirmation = {
            yes: "Yes",
            No: "No",
            Confirm: "Confirm",
            Cancel: "Cancel"
        };
        //</sl:translate></script></div><div class=modal-confirmation data-modal-type=confirmation id=modal-confirmation><div class=modal-dialog id=modal-dialog><div class=modal-content><div class=modal-header><button class=close data-dismiss=modal type=button><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-click data-no-overlays><img alt="generic image"class=modal-thumb></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 alt=Processing... class=loading-default src=https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif></div></div><div class="modal-footer text-footer"></div></div></div></div><script>var Roblox = Roblox || {};
    Roblox.jsConsoleEnabled = false;</script><script>$(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-bundlename=intl-polyfill data-monitor=true src=https://js.rbxcdn.com/d44520f7da5ec476cfb1704d91bab327.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=InternationalCore data-monitor=true src=https://js.rbxcdn.com/ff3308aa2e909de0f9fcd5da7b529db247f69fe9b4072cbbc267749800a4d9e6.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=TranslationResources data-monitor=true src=https://js.rbxcdn.com/83d836a661ff433d5b7ce719c489e43af590ff75ab39ccc6d393546fe91b766a.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=leanbase data-monitor=true src=https://js.rbxcdn.com/63c7df988cef893b4f0e4bc471c56fff.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=CoreUtilities data-monitor=true src=https://js.rbxcdn.com/87b9b16a0d1a864212b26d5b49931b5ff0515406af81d3492726af19e742fe4c.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=CoreRobloxUtilities data-monitor=true src=https://js.rbxcdn.com/1a4c5425659ff46d4fa255e4ed3e06de75cdc801bd22c3f25426414e95b39d65.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=React data-monitor=true src=https://js.rbxcdn.com/6beb1c5bcec1a4449303da9e523d45a1aa1652f9b42ae6c8a3ac347955ca3b3f.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=ReactUtilities data-monitor=true src=https://js.rbxcdn.com/898cb6e9c467d15ad80a67d019f3815d35dbc6ff60c12ef7dd928e8fbaf02b0b.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=ReactStyleGuide data-monitor=true src=https://js.rbxcdn.com/253dbc984ab23858a24067ed2cab303c4e8f3dbbaf8c37914bfd19d12dd0b161.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=angular data-monitor=true src=https://js.rbxcdn.com/ae3d621886e736e52c97008e085fa286.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=AngularJsUtilities data-monitor=true src=https://js.rbxcdn.com/847917a7f1bbf64acfe083d81e073fc520f9d942383854f4db42a2a7f9701444.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=InternationalAngularJs data-monitor=true src=https://js.rbxcdn.com/95f7afb5fcb3c8ae379d51661e32c54ea8d8b823ace7574bd0b7fab9275cba6b.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Thumbnails data-monitor=true src=https://js.rbxcdn.com/ed49a01b602c4b87904bd61317bf8be809837473372bfafc163f566a30430a31.js></script><div data-interval=15000 data-is-enabled=False id=presence-registration-bootstrap-data></div><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=PresenceRegistration data-monitor=true src=https://js.rbxcdn.com/0a83202cf5f2310227e607928f73a26cdaa7d5c27f892b99ef51ec3b863a694d.js></script><div ng-modules=baseTemplateApp><script src=https://js.rbxcdn.com/ffcc04436179c6b2a6668fdfcfbf62b1.js></script></div><div ng-modules=pageTemplateApp><script src=https://js.rbxcdn.com/3e544c8e724dcdc296258b0ca69401a9.js></script></div><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=VerificationUpsell data-monitor=true src=https://js.rbxcdn.com/e0e2e148e78e19718612d14ad54f0c10095f6aa0dc4a75de654c446307118d5c.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.VerificationUpsell data-monitor=true src=https://js.rbxcdn.com/d9a5ba0db415cf3ff23ee004d7c8202c6cd5cbfbf0687fa11f733681130b6ead.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.VerificationUpsell data-monitor=true src=https://js.rbxcdn.com/2ced9fed9ee4a614a2a9f8d79d5f860c723c75876bce7ecf3befd5bf12053566.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Navigation data-monitor=true src=https://js.rbxcdn.com/b67b2e32841610cc0781c0d45fcddaec17e4fa159f24c101f5556932e39f7d85.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_CommonUI.Features data-monitor=true src=https://js.rbxcdn.com/8e39f38b3ae6afcba0966973e3f4668a6a94f7b52313d8c39afa50d2355ac323.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_CommonUI.Features data-monitor=true src=https://js.rbxcdn.com/a492c6d3ab5263357ae94288a7fc4889ee69c8a88bf052cc39938255170ece90.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.ShopDialog data-monitor=true src=https://js.rbxcdn.com/8ebb208e1b2c23f46627545bc6894d839e3d9eb908cf51ecd1c15ecd7d3b4c7f.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.ShopDialog data-monitor=true src=https://js.rbxcdn.com/105382fb4805646c67046c1b6f04aceee474a189df0a550bf00d861814d45964.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Common.AlertsAndOptions data-monitor=true src=https://js.rbxcdn.com/3d030f28e4fa9c53d817622ecfe6e0f76bc19dd3fa33560a338fca7a7e6bbf77.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Common.AlertsAndOptions data-monitor=true src=https://js.rbxcdn.com/f695805852a5f20018961e13fac5c7b23dd467cfdcea114c3d99584f7d046e2d.js></script><script>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.GroupImage'] = 'https://js.rbxcdn.com/8ad41e45c4ac81f7d8c44ec542a2da0a.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><script>Roblox.XsrfToken.setToken('r6Y0/+iS2wMe');</script><script>$(function () {
                Roblox.DeveloperConsoleWarning.showWarning();
            });</script><script>$(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');
        RobloxEventManager.startMonitor();
        

    });</script><script>var Roblox = Roblox || {};
    Roblox.UpsellAdModal = Roblox.UpsellAdModal || {};

    Roblox.UpsellAdModal.Resources = {
        //<sl:translate>
        title: "Remove Ads Like This",
        body: "Builders Club members do not see external ads like these.",
        accept: "Upgrade Now",
        decline: "No, thanks"
        //</sl:translate>
    };</script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=page data-monitor=true src=https://js.rbxcdn.com/2eed93b5686c23c22698c67b386d8813.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=StyleGuide data-monitor=true src=https://js.rbxcdn.com/8bb22a3ed20988464e1c1fae9c271c1892f117c4d9dfac63eeafc5e7877d4143.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Footer data-monitor=true src=https://js.rbxcdn.com/5fbe4bf3cd758289553a511c4208511ebaeaf37add48e7f10820893557c65e01.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Captcha data-monitor=true src=https://js.rbxcdn.com/deab62f90403171bd8d08e45dcc4f2f30bbf57056d71fc1ac8511340000f15d8.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=GameLaunch data-monitor=true src=https://js.rbxcdn.com/b61681d2e9cc1d3af7b03675f3656ba5bb4fa83c57fe3205b6c001e767dc9af4.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.GameLaunchGuestMode data-monitor=true src=https://js.rbxcdn.com/b6f7e0e090bb44e092c19eb7e714473be92bd8b26eb53b693e03179658950b69.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Feature.GameLaunchGuestMode data-monitor=true src=https://js.rbxcdn.com/75d691f0d9840862e1341c56663ab6a620bed97a721809dce6ef85c68b3b0c5b.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Common.VisitGame data-monitor=true src=https://js.rbxcdn.com/8970b46e46bddd4380edbc66639b5b333720b2633a9105d4cde2c31ba2878d97.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Common.VisitGame data-monitor=true src=https://js.rbxcdn.com/0ea369a7496bf1e32d7a3834a06b42b1eeea4720c6a4b5fd719792d082eba641.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=SystemFeedback data-monitor=true src=https://js.rbxcdn.com/aac542106f7f77697cbc3b36ab3cf0619bf9b69a1af0983e59dfeb6c36652d3b.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=Login data-monitor=true src=https://js.rbxcdn.com/7afcf5087cef632c1c842d4dbe7b95a0ecc24345e6423b7af1f7954584c36a5a.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Authentication.Captcha data-monitor=true src=https://js.rbxcdn.com/03acbfb65ca7969f51d31e6ae449812c120535f4ad657e007c1d8d0c0be551e9.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Authentication.Captcha data-monitor=true src=https://js.rbxcdn.com/c90a75ce07429d762b224d1350d1c5de47da85b61c2e64bbc82b1eb8aeebf4a9.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Authentication.Login data-monitor=true src=https://js.rbxcdn.com/66dc08397854643271c5a1fd343beaecf48850f693de3dba267de3a817659e81.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=DynamicLocalizationResourceScript_Authentication.Login data-monitor=true src=https://js.rbxcdn.com/4c2225eae9f70967ce70215134008431e65cbe7bd0d8ca9abd276e970d59db13.js></script><script onerror="Roblox.BundleDetector && Roblox.BundleDetector.reportBundleError(this)"data-bundlename=pageEnd data-monitor=true src=https://js.rbxcdn.com/c45b59aa42178bf89972a410842bfbe1.js></script>