Advertisement
Guest User

this is the roblox catalog paste |idk|

a guest
May 22nd, 2019
10,098
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.71 KB | None | 0 0
  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=WEB2209>
  7. <title>Catalog - Roblox</title>
  8. <meta http-equiv=X-UA-Compatible content="IE=edge">
  9. <meta charset=UTF-8>
  10. <meta name=viewport content="width=device-width, initial-scale=1">
  11. <meta name=author content="Roblox Corporation">
  12. <meta name=description content="Customize your avatar with a never-ending variety of clothing options, accessories, gear, and more!">
  13. <meta name=keywords content="free games,online games,building games,virtual worlds,free mmo,gaming cloud,physics engine">
  14. <meta name=apple-itunes-app content="app-id=431946152">
  15. <meta name=google-site-verification content=KjufnQUaDv5nXJogvDMey4G-Kb7ceUVxTdzcMaP9pCY>
  16. <script type=application/ld+json>
  17. {
  18. "@context" : "http://schema.org",
  19. "@type" : "Organization",
  20. "name" : "Roblox",
  21. "url" : "https://www.roblox.com/",
  22. "logo": "https://images.rbxcdn.com/c69b74f49e785df33b732273fad9dbe0.png",
  23. "sameAs" : [
  24. "https://www.facebook.com/ROBLOX/",
  25. "https://twitter.com/roblox",
  26. "https://www.linkedin.com/company/147977",
  27. "https://www.instagram.com/roblox/",
  28. "https://www.youtube.com/user/roblox",
  29. "https://plus.google.com/+roblox",
  30. "https://www.twitch.tv/roblox"
  31. ]
  32. }
  33. </script>
  34. <meta property=og:site_name content=ROBLOX>
  35. <meta property=og:title content="Catalog - Roblox">
  36. <meta property=og:type content=catalog>
  37. <meta property=og:url content=https://www.roblox.com/catalog>
  38. <meta property=og:description content="Customize your avatar with a never-ending variety of clothing options, accessories, gear, and more!">
  39. <meta property=og:image content=https://images.rbxcdn.com/d66ae37d46e00a1ecacfe9531986690a.jpg>
  40. <meta property=fb:app_id content=190191627665278>
  41. <meta name=twitter:card>
  42. <meta name=twitter:site>
  43. <meta name=twitter:title content=Roblox>
  44. <meta name=twitter:description content="Customize your avatar with a never-ending variety of clothing options, accessories, gear, and more!">
  45. <meta name=twitter:creator>
  46. <meta name=twitter:image1 content=https://images.rbxcdn.com/98d711725b1a4e84666b34315d5454f0.jpg>
  47. <meta name=twitter:app:country content=US>
  48. <meta name=twitter:app:name:iphone content="ROBLOX Mobile">
  49. <meta name=twitter:app:id:iphone content=431946152>
  50. <meta name=twitter:app:url:iphone>
  51. <meta name=twitter:app:name:ipad content="ROBLOX Mobile">
  52. <meta name=twitter:app:id:ipad content=431946152>
  53. <meta name=twitter:app:url:ipad>
  54. <meta name=twitter:app:name:googleplay content=ROBLOX>
  55. <meta name=twitter:app:id:googleplay content=com.roblox.client>
  56. <meta name=twitter:app:url:googleplay>
  57. <meta name=locale-data data-language-code=en_us data-language-name=English data-locale-api-url=https://locale.roblox.com>
  58. <meta name=device-meta data-device-type=computer data-is-in-app=false data-is-desktop=true data-is-phone=false data-is-tablet=false data-is-console=false data-is-android-app=false data-is-ios-app=false data-is-uwp-app=false data-is-xbox-app=false data-is-amazon-app=false data-is-studio=false data-app-type=unknown>
  59. <meta name=page-meta data-internal-page-name=Catalog>
  60. <script>
  61. var Roblox = Roblox || {};
  62. Roblox.BundleVerifierConstants = { isMetricsApiEnabled: true, eventStreamUrl: "//ecsv2.roblox.com/pe?t=diagnostic", deviceType: "Computer", cdnLoggingEnabled: JSON.parse("true") };
  63. </script>
  64. <script>
  65. var Roblox = Roblox || {};
  66. Roblox.BundleDetector = (function () {
  67. var isMetricsApiEnabled = Roblox.BundleVerifierConstants && Roblox.BundleVerifierConstants.isMetricsApiEnabled;
  68. var loadStates = { loadSuccess: "loadSuccess", loadFailure: "loadFailure", executionFailure: "executionFailure" };
  69. var bundleContentTypes = { javascript: "javascript", css: "css" };
  70. var ephemeralCounterNames = { cdnPrefix: "CDNBundleError_", unknown: "CDNBundleError_unknown", cssError: "CssBundleError", jsError: "JavascriptBundleError", jsFileError: "JsFileExecutionError", resourceError: "ResourcePerformance_Error", resourceLoaded: "ResourcePerformance_Loaded" };
  71. return { jsBundlesLoaded: {}, bundlesReported: {}, counterNames: ephemeralCounterNames, loadStates: loadStates, bundleContentTypes: bundleContentTypes, timing: undefined, setTiming: function (windowTiming) {
  72. this.timing = windowTiming;
  73. }, getLoadTime: function () {
  74. if (this.timing && this.timing.domComplete) {
  75. return this.getCurrentTime() - this.timing.domComplete;
  76. }
  77. }, getCurrentTime: function () {
  78. return new Date().getTime();
  79. }, getCdnProviderName: function (bundleUrl, callBack) {
  80. if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  81. var xhr = new XMLHttpRequest();
  82. xhr.open('GET', bundleUrl, true);
  83. xhr.onreadystatechange = function () {
  84. if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  85. try {
  86. var headerValue = xhr.getResponseHeader("rbx-cdn-provider");
  87. if (headerValue) {
  88. callBack(headerValue);
  89. }
  90. else {
  91. callBack();
  92. }
  93. }
  94. catch (e) {
  95. callBack();
  96. }
  97. }
  98. };
  99. xhr.onerror = function () {
  100. callBack();
  101. };
  102. xhr.send();
  103. }
  104. else {
  105. callBack();
  106. }
  107. }, getCdnProviderAndReportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType) {
  108. this.getCdnProviderName(bundleUrl, function (cdnProviderName) {
  109. Roblox.BundleDetector.reportMetrics(bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName);
  110. });
  111. }, reportMetrics: function (bundleUrl, bundleName, loadState, bundleContentType, cdnProviderName) {
  112. if (!isMetricsApiEnabled || !bundleUrl || !loadState || !loadStates.hasOwnProperty(loadState) || !bundleContentType || !bundleContentTypes.hasOwnProperty(bundleContentType)) {
  113. return;
  114. }
  115. var xhr = new XMLHttpRequest();
  116. var metricsApiUrl = (Roblox.EnvironmentUrls && Roblox.EnvironmentUrls.metricsApi) || "https://metrics.roblox.com";
  117. xhr.open("POST", metricsApiUrl + "/v1/bundle-metrics/report", true);
  118. xhr.setRequestHeader("Content-Type", "application/json");
  119. xhr.withCredentials = true;
  120. xhr.send(JSON.stringify({ bundleUrl: bundleUrl, bundleName: bundleName || "", bundleContentType: bundleContentType, loadState: loadState, cdnProviderName: cdnProviderName, loadTimeInMilliseconds: this.getLoadTime() || 0 }));
  121. }, logToEphemeralStatistics: function (sequenceName, value) {
  122. var deviceType = Roblox.BundleVerifierConstants.deviceType;
  123. sequenceName += "_" + deviceType;
  124. var xhr = new XMLHttpRequest();
  125. xhr.open('POST', '/game/report-stats?name=' + sequenceName + "&value=" + value, true);
  126. xhr.withCredentials = true;
  127. xhr.send();
  128. }, logToEphemeralCounter: function (ephemeralCounterName) {
  129. var deviceType = Roblox.BundleVerifierConstants.deviceType;
  130. ephemeralCounterName += "_" + deviceType;
  131. var xhr = new XMLHttpRequest();
  132. xhr.open('POST', '/game/report-event?name=' + ephemeralCounterName, true);
  133. xhr.withCredentials = true;
  134. xhr.send();
  135. }, logToEventStream: function (failedBundle, ctx, cdnProvider, status) {
  136. var esUrl = Roblox.BundleVerifierConstants.eventStreamUrl, currentPageUrl = encodeURIComponent(window.location.href);
  137. var deviceType = Roblox.BundleVerifierConstants.deviceType;
  138. ctx += "_" + deviceType;
  139. var duration = 0;
  140. if (window.performance) {
  141. var perfTiming = window.performance.getEntriesByName(failedBundle);
  142. if (perfTiming.length > 0) {
  143. var data = perfTiming[0];
  144. duration = data.duration || 0;
  145. }
  146. }
  147. var params = "&evt=webBundleError&url=" + currentPageUrl + "&ctx=" + ctx + "&fileSourceUrl=" + encodeURIComponent(failedBundle) + "&cdnName=" + (cdnProvider || "unknown") + "&statusCode=" + (status || "unknown") + "&loadDuration=" + Math.floor(duration);
  148. var img = new Image();
  149. img.src = esUrl + params;
  150. }, getCdnInfo: function (failedBundle, ctx, fileType) {
  151. if (Roblox.BundleVerifierConstants.cdnLoggingEnabled) {
  152. var xhr = new XMLHttpRequest();
  153. var counter = this.counterNames;
  154. xhr.open('GET', failedBundle, true);
  155. var cdnProvider;
  156. xhr.onreadystatechange = function () {
  157. if (xhr.readyState === xhr.HEADERS_RECEIVED) {
  158. cdnProvider = xhr.getResponseHeader("rbx-cdn-provider");
  159. if (cdnProvider && cdnProvider.length > 0) {
  160. Roblox.BundleDetector.logToEphemeralCounter(counter.cdnPrefix + cdnProvider + "_" + fileType);
  161. }
  162. else {
  163. Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  164. }
  165. }
  166. else if (xhr.readyState === xhr.DONE) {
  167. Roblox.BundleDetector.logToEventStream(failedBundle, ctx, cdnProvider, xhr.status);
  168. }
  169. };
  170. xhr.onerror = function () {
  171. Roblox.BundleDetector.logToEphemeralCounter(counter.unknown + "_" + fileType);
  172. Roblox.BundleDetector.logToEventStream(failedBundle, ctx, counter.unknown);
  173. };
  174. xhr.send();
  175. }
  176. else {
  177. this.logToEventStream(failedBundle, ctx);
  178. }
  179. }, reportResourceError: function (resourceName) {
  180. var ephemeralCounterName = this.counterNames.resourceError + "_" + resourceName;
  181. this.logToEphemeralCounter(ephemeralCounterName);
  182. }, reportResourceLoaded: function (resourceName) {
  183. var loadTimeInMs = this.getLoadTime();
  184. if (loadTimeInMs) {
  185. var sequenceName = this.counterNames.resourceLoaded + "_" + resourceName;
  186. this.logToEphemeralStatistics(sequenceName, loadTimeInMs);
  187. }
  188. }, reportBundleError: function (bundleTag) {
  189. var ephemeralCounterName, failedBundle, ctx, contentType;
  190. if (bundleTag.rel && bundleTag.rel === "stylesheet") {
  191. ephemeralCounterName = this.counterNames.cssError;
  192. failedBundle = bundleTag.href;
  193. ctx = "css";
  194. contentType = bundleContentTypes.css;
  195. }
  196. else {
  197. ephemeralCounterName = this.counterNames.jsError;
  198. failedBundle = bundleTag.src;
  199. ctx = "js";
  200. contentType = bundleContentTypes.javascript;
  201. }
  202. this.bundlesReported[failedBundle] = true;
  203. this.logToEphemeralCounter(ephemeralCounterName);
  204. this.getCdnInfo(failedBundle, ctx, ctx);
  205. var bundleName;
  206. if (bundleTag.dataset) {
  207. bundleName = bundleTag.dataset.bundlename;
  208. }
  209. else {
  210. bundleName = bundleTag.getAttribute('data-bundlename');
  211. }
  212. this.getCdnProviderAndReportMetrics(failedBundle, bundleName, loadStates.loadFailure, contentType);
  213. }, bundleDetected: function (bundleName) {
  214. this.jsBundlesLoaded[bundleName] = true;
  215. }, verifyBundles: function (document) {
  216. var ephemeralCounterName = this.counterNames.jsFileError, eventContext = ephemeralCounterName;
  217. var scripts = (document && document.scripts) || window.document.scripts;
  218. var errorsList = [];
  219. var bundleName;
  220. var monitor;
  221. for (var i = 0; i < scripts.length; i++) {
  222. var item = scripts[i];
  223. if (item.dataset) {
  224. bundleName = item.dataset.bundlename;
  225. monitor = item.dataset.monitor;
  226. }
  227. else {
  228. bundleName = item.getAttribute('data-bundlename');
  229. monitor = item.getAttribute('data-monitor');
  230. }
  231. if (item.src && monitor && bundleName) {
  232. if (!Roblox.BundleDetector.jsBundlesLoaded.hasOwnProperty(bundleName)) {
  233. errorsList.push(item);
  234. }
  235. }
  236. }
  237. if (errorsList.length > 0) {
  238. for (var j = 0; j < errorsList.length; j++) {
  239. var script = errorsList[j];
  240. if (!this.bundlesReported[script.src]) {
  241. this.logToEphemeralCounter(ephemeralCounterName);
  242. this.getCdnInfo(script.src, eventContext, 'js');
  243. if (script.dataset) {
  244. bundleName = script.dataset.bundlename;
  245. }
  246. else {
  247. bundleName = script.getAttribute('data-bundlename');
  248. }
  249. this.getCdnProviderAndReportMetrics(script.src, bundleName, loadStates.executionFailure, bundleContentTypes.javascript);
  250. }
  251. }
  252. }
  253. } };
  254. })();
  255. window.addEventListener("load", function (evt) {
  256. Roblox.BundleDetector.verifyBundles();
  257. });
  258. Roblox.BundleDetector.setTiming(window.performance.timing);
  259. </script>
  260. <link href=https://images.rbxcdn.com/23421382939a9f4ae8bbe60dbe2a3e7e.ico.gzip rel=icon>
  261. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet data-bundlename=StyleGuide href=https://static.rbxcdn.com/css/ebc2e0cd4fd792d4ea2a582ca4bdbba00b95d6bb48db2f9471602e60e95d8399.css/fetch>
  262. <link rel=canonical href="https://www.roblox.com/catalog/">
  263. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet href=https://static.rbxcdn.com/css/leanbase___ff133b52109316f487f16c98b4019475_m.css/fetch>
  264. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet href=https://static.rbxcdn.com/css/page___6762bb33933ded1ee634380986d70261_m.css/fetch>
  265. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet data-bundlename=Captcha href=https://static.rbxcdn.com/css/1b4a454048320339d1a8e7459370f628af99f171c07767bf505492f5650c3b4d.css/fetch>
  266. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet data-bundlename=Catalog href=https://static.rbxcdn.com/css/9c51d3c9497074d1817efa3ebdde68e1cbfae0671f8bbed8422e850ee18bc2b7.css/fetch>
  267. <link onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) rel=stylesheet href=https://authsite.roblox.com/login/1cf74a20-621b-455c-9b3a-36e285b1e939/get-css-bundle>
  268. <script>
  269. var Roblox = Roblox || {};
  270. Roblox.EnvironmentUrls = Roblox.EnvironmentUrls || {};
  271. Roblox.EnvironmentUrls = { abtestingApiSite: "https://abtesting.roblox.com", accountSettingsApi: "https://accountsettings.roblox.com", amazonStoreLink: "http://amzn.com/B00NUF4YOA", apiProxyUrl: "https://api.roblox.com", appProtocolUrl: "robloxmobile://", appStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152", authApi: "https://auth.roblox.com", authAppSite: "https://authsite.roblox.com", avatarApi: "https://avatar.roblox.com", avatarAppSite: "https://avatarsite.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", developApi: "https://develop.roblox.com", domain: "roblox.com", economyApi: "https://economy.roblox.com", followingsApi: "https://followings.roblox.com", friendsApi: "https://friends.roblox.com", friendsAppSite: "https://friendsite.roblox.com", gamesApi: "https://games.roblox.com", gamesAppSite: "https://gamesite.roblox.com", gameInternationalizationApi: "https://gameinternationalization.roblox.com", googlePlayStoreLink: "https://play.google.com/store/apps/details?id=com.roblox.client&amp;hl=en", groupsApi: "https://groups.roblox.com", iosAppStoreLink: "https://itunes.apple.com/us/app/roblox-mobile/id431946152", localeApi: "https://locale.roblox.com", localizationTablesApi: "https://localizationtables.roblox.com", membershipAppSite: "https://membershipsite.roblox.com", metricsApi: "https://metrics.roblox.com", midasApi: "https://midas.roblox.com", notificationApi: "https://notifications.roblox.com", notificationAppSite: "https://notificationsite.roblox.com", premiumFeaturesApi: "https://premiumfeatures.roblox.com", presenceApi: "https://presence.roblox.com", publishApi: "https://publish.roblox.com", surveysAppSite: "https://surveyssite.roblox.com", thumbnailsApi: "https://thumbnails.roblox.com", translationRolesApi: "https://translationroles.roblox.com", websiteUrl: "https://www.roblox.com", windowsStoreLink: "https://www.microsoft.com/en-us/store/games/roblox/9nblgggzm6wm", xboxStoreLink: "https://www.microsoft.com/en-us/p/roblox/bq1tn1t79v9k" };
  272. </script>
  273. <script>
  274. var Roblox = Roblox || {};
  275. Roblox.GaEventSettings = { gaDFPPreRollEnabled: "false" === "true", gaLaunchAttemptAndLaunchSuccessEnabled: "false" === "true", gaPerformanceEventEnabled: "false" === "true" };
  276. </script>
  277. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=headerinit src=https://js.rbxcdn.com/3390fbb7077fc60646914705590b43fc.js.gzip></script>
  278. <meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
  279. <script>
  280. var Roblox = Roblox || {};
  281. Roblox.AdsHelper = Roblox.AdsHelper || {};
  282. Roblox.AdsLibrary = Roblox.AdsLibrary || {};
  283. Roblox.AdsHelper.toggleAdsSlot = function (slotId, GPTRandomSlotIdentifier) {
  284. var gutterAdsEnabled = false;
  285. if (gutterAdsEnabled) {
  286. googletag.display(GPTRandomSlotIdentifier);
  287. return;
  288. }
  289. if (typeof slotId !== 'undefined' && slotId && slotId.length > 0) {
  290. var slotElm = $("#" + slotId);
  291. if (slotElm.is(":visible")) {
  292. googletag.display(GPTRandomSlotIdentifier);
  293. }
  294. else {
  295. var adParam = Roblox.AdsLibrary.adsParameters[slotId];
  296. if (adParam) {
  297. adParam.template = slotElm.html();
  298. slotElm.empty();
  299. }
  300. }
  301. }
  302. };
  303. </script>
  304. <script>
  305. $(function () {
  306. Roblox.JSErrorTracker.initialize({ 'suppressConsoleError': true });
  307. });
  308. </script>
  309. <script>
  310. $(function () {
  311. RobloxEventManager.triggerEvent('rbx_evt_newuser', {});
  312. });
  313. </script>
  314. <!--[if lt IE 9]><script src=//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js></script><script src=//oss.maxcdn.com/respond/1.4.2/respond.min.js></script><![endif]-->
  315. <script>
  316. var Roblox = Roblox || {};
  317. (function () {
  318. var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
  319. if (typeof window.external !== "undefined" && typeof window.external.msTrackingProtectionEnabled !== "undefined") {
  320. dnt = dnt || window.external.msTrackingProtectionEnabled();
  321. }
  322. Roblox.browserDoNotTrack = dnt == "1" || dnt == "yes" || dnt === true;
  323. })();
  324. </script>
  325. <script>
  326. var _gaq = _gaq || [];
  327. window.GoogleAnalyticsDisableRoblox2 = true;
  328. _gaq.push(['b._setAccount', 'UA-486632-1']);
  329. _gaq.push(['b._setSampleRate', '10']);
  330. _gaq.push(['b._setCampSourceKey', 'rbx_source']);
  331. _gaq.push(['b._setCampMediumKey', 'rbx_medium']);
  332. _gaq.push(['b._setCampContentKey', 'rbx_campaign']);
  333. _gaq.push(['b._setDomainName', 'roblox.com']);
  334. _gaq.push(['b._setCustomVar', 1, 'Visitor', 'Anonymous', 2]);
  335. _gaq.push(['b._setPageGroup', 1, 'Catalog']);
  336. var eventsArr = ['b._setCustomVar', 2, 'FirstTimeVisitor', 'true', 3];
  337. _gaq.push(eventsArr);
  338. $(function () {
  339. if (GoogleAnalyticsEvents) {
  340. GoogleAnalyticsEvents.Log(eventsArr);
  341. }
  342. });
  343. _gaq.push(['b._trackPageview']);
  344. _gaq.push(['c._setAccount', 'UA-26810151-2']);
  345. _gaq.push(['c._setSampleRate', '1']);
  346. _gaq.push(['c._setDomainName', 'roblox.com']);
  347. _gaq.push(['c._setPageGroup', 1, 'Catalog']);
  348. (function () {
  349. if (!Roblox.browserDoNotTrack) {
  350. var ga = document.createElement('script');
  351. ga.type = 'text/javascript';
  352. ga.async = true;
  353. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  354. var s = document.getElementsByTagName('script')[0];
  355. s.parentNode.insertBefore(ga, s);
  356. }
  357. })();
  358. </script>
  359. <script>
  360. if (Roblox && Roblox.EventStream) {
  361. 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");
  362. }
  363. </script>
  364. <script>
  365. if (Roblox && Roblox.PageHeartbeatEvent) {
  366. Roblox.PageHeartbeatEvent.Init([2, 8, 20, 60]);
  367. }
  368. </script>
  369. <script>
  370. if (typeof (Roblox) === "undefined") {
  371. Roblox = {};
  372. }
  373. Roblox.Endpoints = Roblox.Endpoints || {};
  374. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  375. Roblox.Endpoints.Urls['/api/item.ashx'] = 'https://www.roblox.com/api/item.ashx';
  376. Roblox.Endpoints.Urls['/asset/'] = 'https://assetgame.roblox.com/asset/';
  377. Roblox.Endpoints.Urls['/client-status/set'] = 'https://www.roblox.com/client-status/set';
  378. Roblox.Endpoints.Urls['/client-status'] = 'https://www.roblox.com/client-status';
  379. Roblox.Endpoints.Urls['/game/'] = 'https://assetgame.roblox.com/game/';
  380. Roblox.Endpoints.Urls['/game-auth/getauthticket'] = 'https://www.roblox.com/game-auth/getauthticket';
  381. Roblox.Endpoints.Urls['/game/edit.ashx'] = 'https://assetgame.roblox.com/game/edit.ashx';
  382. Roblox.Endpoints.Urls['/game/getauthticket'] = 'https://assetgame.roblox.com/game/getauthticket';
  383. Roblox.Endpoints.Urls['/game/get-hash'] = 'https://assetgame.roblox.com/game/get-hash';
  384. Roblox.Endpoints.Urls['/game/placelauncher.ashx'] = 'https://assetgame.roblox.com/game/placelauncher.ashx';
  385. Roblox.Endpoints.Urls['/game/preloader'] = 'https://assetgame.roblox.com/game/preloader';
  386. Roblox.Endpoints.Urls['/game/report-stats'] = 'https://assetgame.roblox.com/game/report-stats';
  387. Roblox.Endpoints.Urls['/game/report-event'] = 'https://assetgame.roblox.com/game/report-event';
  388. Roblox.Endpoints.Urls['/game/updateprerollcount'] = 'https://assetgame.roblox.com/game/updateprerollcount';
  389. Roblox.Endpoints.Urls['/login/default.aspx'] = 'https://www.roblox.com/login/default.aspx';
  390. Roblox.Endpoints.Urls['/my/avatar'] = 'https://www.roblox.com/my/avatar';
  391. Roblox.Endpoints.Urls['/my/money.aspx'] = 'https://www.roblox.com/my/money.aspx';
  392. Roblox.Endpoints.Urls['/navigation/userdata'] = 'https://www.roblox.com/navigation/userdata';
  393. Roblox.Endpoints.Urls['/chat/chat'] = 'https://www.roblox.com/chat/chat';
  394. Roblox.Endpoints.Urls['/chat/data'] = 'https://www.roblox.com/chat/data';
  395. Roblox.Endpoints.Urls['/presence/users'] = 'https://www.roblox.com/presence/users';
  396. Roblox.Endpoints.Urls['/presence/user'] = 'https://www.roblox.com/presence/user';
  397. Roblox.Endpoints.Urls['/friends/list'] = 'https://www.roblox.com/friends/list';
  398. Roblox.Endpoints.Urls['/navigation/getcount'] = 'https://www.roblox.com/navigation/getCount';
  399. Roblox.Endpoints.Urls['/regex/email'] = 'https://www.roblox.com/regex/email';
  400. Roblox.Endpoints.Urls['/catalog/browse.aspx'] = 'https://www.roblox.com/catalog/browse.aspx';
  401. Roblox.Endpoints.Urls['/catalog/html'] = 'https://search.roblox.com/catalog/html';
  402. Roblox.Endpoints.Urls['/catalog/json'] = 'https://search.roblox.com/catalog/json';
  403. Roblox.Endpoints.Urls['/catalog/contents'] = 'https://search.roblox.com/catalog/contents';
  404. Roblox.Endpoints.Urls['/catalog/lists.aspx'] = 'https://search.roblox.com/catalog/lists.aspx';
  405. Roblox.Endpoints.Urls['/catalog/items'] = 'https://search.roblox.com/catalog/items';
  406. Roblox.Endpoints.Urls['/asset-hash-thumbnail/image'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/image';
  407. Roblox.Endpoints.Urls['/asset-hash-thumbnail/json'] = 'https://assetgame.roblox.com/asset-hash-thumbnail/json';
  408. Roblox.Endpoints.Urls['/asset-thumbnail-3d/json'] = 'https://assetgame.roblox.com/asset-thumbnail-3d/json';
  409. Roblox.Endpoints.Urls['/asset-thumbnail/image'] = 'https://assetgame.roblox.com/asset-thumbnail/image';
  410. Roblox.Endpoints.Urls['/asset-thumbnail/json'] = 'https://assetgame.roblox.com/asset-thumbnail/json';
  411. Roblox.Endpoints.Urls['/asset-thumbnail/url'] = 'https://assetgame.roblox.com/asset-thumbnail/url';
  412. Roblox.Endpoints.Urls['/asset/request-thumbnail-fix'] = 'https://assetgame.roblox.com/asset/request-thumbnail-fix';
  413. Roblox.Endpoints.Urls['/avatar-thumbnail-3d/json'] = 'https://www.roblox.com/avatar-thumbnail-3d/json';
  414. Roblox.Endpoints.Urls['/avatar-thumbnail/image'] = 'https://www.roblox.com/avatar-thumbnail/image';
  415. Roblox.Endpoints.Urls['/avatar-thumbnail/json'] = 'https://www.roblox.com/avatar-thumbnail/json';
  416. Roblox.Endpoints.Urls['/avatar-thumbnails'] = 'https://www.roblox.com/avatar-thumbnails';
  417. Roblox.Endpoints.Urls['/avatar/request-thumbnail-fix'] = 'https://www.roblox.com/avatar/request-thumbnail-fix';
  418. Roblox.Endpoints.Urls['/bust-thumbnail/json'] = 'https://www.roblox.com/bust-thumbnail/json';
  419. Roblox.Endpoints.Urls['/group-thumbnails'] = 'https://www.roblox.com/group-thumbnails';
  420. Roblox.Endpoints.Urls['/groups/getprimarygroupinfo.ashx'] = 'https://www.roblox.com/groups/getprimarygroupinfo.ashx';
  421. Roblox.Endpoints.Urls['/headshot-thumbnail/json'] = 'https://www.roblox.com/headshot-thumbnail/json';
  422. Roblox.Endpoints.Urls['/item-thumbnails'] = 'https://www.roblox.com/item-thumbnails';
  423. Roblox.Endpoints.Urls['/outfit-thumbnail/json'] = 'https://www.roblox.com/outfit-thumbnail/json';
  424. Roblox.Endpoints.Urls['/place-thumbnails'] = 'https://www.roblox.com/place-thumbnails';
  425. Roblox.Endpoints.Urls['/thumbnail/asset/'] = 'https://www.roblox.com/thumbnail/asset/';
  426. Roblox.Endpoints.Urls['/thumbnail/avatar-headshot'] = 'https://www.roblox.com/thumbnail/avatar-headshot';
  427. Roblox.Endpoints.Urls['/thumbnail/avatar-headshots'] = 'https://www.roblox.com/thumbnail/avatar-headshots';
  428. Roblox.Endpoints.Urls['/thumbnail/user-avatar'] = 'https://www.roblox.com/thumbnail/user-avatar';
  429. Roblox.Endpoints.Urls['/thumbnail/resolve-hash'] = 'https://www.roblox.com/thumbnail/resolve-hash';
  430. Roblox.Endpoints.Urls['/thumbnail/place'] = 'https://www.roblox.com/thumbnail/place';
  431. Roblox.Endpoints.Urls['/thumbnail/get-asset-media'] = 'https://www.roblox.com/thumbnail/get-asset-media';
  432. Roblox.Endpoints.Urls['/thumbnail/remove-asset-media'] = 'https://www.roblox.com/thumbnail/remove-asset-media';
  433. Roblox.Endpoints.Urls['/thumbnail/set-asset-media-sort-order'] = 'https://www.roblox.com/thumbnail/set-asset-media-sort-order';
  434. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails'] = 'https://www.roblox.com/thumbnail/place-thumbnails';
  435. Roblox.Endpoints.Urls['/thumbnail/place-thumbnails-partial'] = 'https://www.roblox.com/thumbnail/place-thumbnails-partial';
  436. Roblox.Endpoints.Urls['/thumbnail_holder/g'] = 'https://www.roblox.com/thumbnail_holder/g';
  437. Roblox.Endpoints.Urls['/users/{id}/profile'] = 'https://www.roblox.com/users/{id}/profile';
  438. Roblox.Endpoints.Urls['/service-workers/push-notifications'] = 'https://www.roblox.com/service-workers/push-notifications';
  439. Roblox.Endpoints.Urls['/notification-stream/notification-stream-data'] = 'https://www.roblox.com/notification-stream/notification-stream-data';
  440. Roblox.Endpoints.Urls['/api/friends/acceptfriendrequest'] = 'https://www.roblox.com/api/friends/acceptfriendrequest';
  441. Roblox.Endpoints.Urls['/api/friends/declinefriendrequest'] = 'https://www.roblox.com/api/friends/declinefriendrequest';
  442. Roblox.Endpoints.Urls['/authentication/is-logged-in'] = 'https://www.roblox.com/authentication/is-logged-in';
  443. Roblox.Endpoints.addCrossDomainOptionsToAllRequests = true;
  444. </script>
  445. <script>
  446. if (typeof (Roblox) === "undefined") {
  447. Roblox = {};
  448. }
  449. Roblox.Endpoints = Roblox.Endpoints || {};
  450. Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
  451. </script>
  452. <script>
  453. Roblox = Roblox || {};
  454. Roblox.AbuseReportPVMeta = { desktopEnabled: false, phoneEnabled: false, inAppEnabled: false };
  455. </script>
  456. <body id=rbx-body class="rbx-body gotham-font" data-performance-relative-value=0.005 data-internal-page-name=Catalog data-send-event-percentage=0>
  457. <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)\.roblox\.com|robloxlabs\.com)|(www\.shoproblox\.com)|help\.roblox\.com(?![A-Za-z0-9\/.]*\/attachments\/))(?!\/[A-Za-z0-9-+&amp;@#\/=~_|!:,.;]*%)((\/[A-Za-z0-9-+&amp;@#\/%?=~_|!:,.;]*)|(?=\s|\b))" data-regex-flags=gm data-as-http-regex=(([^.]help|polls)\.roblox\.com)></div>
  458. <div id=image-retry-data data-image-retry-max-times=10 data-image-retry-timer=1500 data-ga-logging-percent=10></div>
  459. <div id=http-retry-data data-http-retry-max-timeout=0 data-http-retry-base-timeout=0 data-http-retry-max-times=1></div>
  460. <div id=fb-root></div>
  461. <div id=wrap class="wrap no-gutter-ads logged-out" data-gutter-ads-enabled=false>
  462. <div id=SocialIdentitiesInformation data-rbx-login-redirect-url=/social/postlogin data-context=loginDropdown></div>
  463. <script src="https://roblox-api.arkoselabs.com/fc/api/?onload=reportFunCaptchaLoaded" async onerror="Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportResourceError('funcaptcha')"></script>
  464. <script>
  465. var Roblox = Roblox || {};
  466. $(function () {
  467. var funCaptcha = Roblox.FunCaptcha;
  468. if (funCaptcha) {
  469. var captchaTypes = [{ "Type": "Login", "PublicKey": "9F35E182-C93C-EBCC-A31D-CF8ED317B996", "ApiUrl": "https://captcha.roblox.com/v1/funcaptcha/login/web" }];
  470. funCaptcha.addCaptchaTypes(captchaTypes, true);
  471. funCaptcha.setMaxRetriesOnTokenValidationFailure(1);
  472. funCaptcha.setPerAppTypeLoggingEnabled(false);
  473. funCaptcha.setRetryIntervalRange(500, 1500);
  474. }
  475. });
  476. function reportFunCaptchaLoaded() {
  477. if (Roblox.BundleDetector) {
  478. Roblox.BundleDetector.reportResourceLoaded("funcaptcha");
  479. }
  480. }
  481. </script>
  482. <div id=header class="navbar-fixed-top rbx-header gotham-font" data-isauthenticated=false role=navigation>
  483. <div class=container-fluid>
  484. <div class=rbx-navbar-header>
  485. <div data-behavior=nav-notification class=rbx-nav-collapse onselectstart="return false"></div>
  486. <div class=navbar-header>
  487. <a class=navbar-brand href="https://www.roblox.com/"><span class=icon-logo></span><span class=icon-logo-r></span></a>
  488. </div>
  489. </div>
  490. <ul class="nav rbx-navbar hidden-xs hidden-sm col-md-4 col-lg-3">
  491. <li class=cursor-pointer>
  492. <a class="font-header-2 nav-menu-title text-header" href=https://www.roblox.com/games>Games</a>
  493. <li class=cursor-pointer>
  494. <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/catalog/">Catalog</a>
  495. <li class=cursor-pointer>
  496. <a class="font-header-2 nav-menu-title text-header" href=https://www.roblox.com/develop>Create</a>
  497. <li class=cursor-pointer>
  498. <a class="font-header-2 buy-robux nav-menu-title text-header" href="https://www.roblox.com/upgrades/robux?ctx=nav">Robux</a>
  499. </ul>
  500. <div id=navbar-universal-search class="navbar-left rbx-navbar-search col-xs-5 col-sm-6 col-md-3" data-behavior=univeral-search role=search>
  501. <div class=input-group>
  502. <input id=navbar-search-input class="form-control input-field" type=text placeholder=Search maxlength=120>
  503. <div class=input-group-btn>
  504. <button id=navbar-search-btn class=input-addon-btn type=submit><span class=icon-nav-search></span></button>
  505. </div>
  506. </div>
  507. <ul data-toggle=dropdown-menu class=dropdown-menu role=menu>
  508. <li class="rbx-navbar-search-option rbx-clickable-li selected" data-searchurl="https://www.roblox.com/catalog/browse.aspx?CatalogContext=1&amp;Keyword=">
  509. <a class=rbx-navbar-search-anchor href="https://www.roblox.com/catalog/browse.aspx?CatalogContext=1&amp;Keyword="><span class=rbx-navbar-search-text>Search "<span class=rbx-navbar-search-string></span>" in Catalog</span></a>
  510. <li class="rbx-navbar-search-option rbx-clickable-li" data-searchurl="https://www.roblox.com/search/users?keyword=">
  511. <a class=rbx-navbar-search-anchor href="https://www.roblox.com/search/users?keyword="><span class=rbx-navbar-search-text>Search "<span class=rbx-navbar-search-string></span>" in Players</span></a>
  512. <li class="rbx-navbar-search-option rbx-clickable-li" data-searchurl="https://www.roblox.com/games/?Keyword=">
  513. <a class=rbx-navbar-search-anchor href="https://www.roblox.com/games/?Keyword="><span class=rbx-navbar-search-text>Search "<span class=rbx-navbar-search-string></span>" in Games</span></a>
  514. <li class="rbx-navbar-search-option rbx-clickable-li" data-searchurl="https://www.roblox.com/search/groups?keyword=">
  515. <a class=rbx-navbar-search-anchor href="https://www.roblox.com/search/groups?keyword="><span class=rbx-navbar-search-text>Search "<span class=rbx-navbar-search-string></span>" in Groups</span></a>
  516. <li class="rbx-navbar-search-option rbx-clickable-li" data-searchurl="https://www.roblox.com/develop/library?CatalogContext=2&amp;Category=6&amp;Keyword=">
  517. <a class=rbx-navbar-search-anchor href="https://www.roblox.com/develop/library?CatalogContext=2&amp;Category=6&amp;Keyword="><span class=rbx-navbar-search-text>Search "<span class=rbx-navbar-search-string></span>" in Library</span></a>
  518. </ul>
  519. </div>
  520. <div class="navbar-right rbx-navbar-right">
  521. <ul class="nav navbar-right rbx-navbar-right-nav" data-display-opened=False>
  522. <li class=signup-button-container>
  523. <a id=sign-up-button class="rbx-navbar-signup nav-menu-title signup-button" href=https://www.roblox.com/account/signupredir>Sign Up</a>
  524. <li class=login-action>
  525. <a class="roblox-popover rbx-navbar-login nav-menu-title rbx-menu-item" data-bind=login-dropdown data-container=login-dropdown-container>Log In</a>
  526. <div id=login-dropdown class="roblox-popover-content bottom hidden login-dropdown">
  527. <div id=login-dropdown-container class="roblox-popover-container login-dropdown-container">
  528. <div class=arrow></div>
  529. <div id=login-container class=login-container>
  530. <div login-form context=loginDropdown is-facebook-sign-in-enabled=true use-facebook-redirect=true redirect-to-login-page-when-username-is-required=true is-login-fun-captcha-enabled=true is-always-captcha-login-enabled=false is-captcha-v2-component-for-login-enabled=true></div>
  531. </div>
  532. </div>
  533. </div>
  534. <li class=rbx-navbar-right-search data-toggle=toggle-search>
  535. <a class=rbx-menu-icon><span class=icon-nav-search-white></span></a>
  536. </ul>
  537. </div>
  538. <ul class="nav rbx-navbar hidden-md hidden-lg col-xs-12">
  539. <li class=cursor-pointer>
  540. <a class="font-header-2 nav-menu-title text-header" href=https://www.roblox.com/games>Games</a>
  541. <li class=cursor-pointer>
  542. <a class="font-header-2 nav-menu-title text-header" href="https://www.roblox.com/catalog/">Catalog</a>
  543. <li class=cursor-pointer>
  544. <a class="font-header-2 nav-menu-title text-header" href=https://www.roblox.com/develop>Create</a>
  545. <li class=cursor-pointer>
  546. <a class="font-header-2 buy-robux nav-menu-title" href="https://www.roblox.com/upgrades/robux?ctx=nav">Robux</a>
  547. </ul>
  548. </div>
  549. </div>
  550. <div id=i18nForAmazonShopSwitch data-is-i18n-enabled-for-shop-amazon-dialog=true data-amazon-store-url="https://www.amazon.com/roblox?&amp;_encoding=UTF8&amp;tag=r05d13-20&amp;linkCode=ur2&amp;linkId=4ba2e1ad82f781c8e8cc98329b1066d0&amp;camp=1789&amp;creative=9325" style=display:none></div>
  551. <script>
  552. var Roblox = Roblox || {};
  553. (function () {
  554. if (Roblox && Roblox.Performance) {
  555. Roblox.Performance.setPerformanceMark("navigation_end");
  556. }
  557. })();
  558. </script>
  559. <div class=container-main>
  560. <script>
  561. if (top.location != self.location) {
  562. top.location = self.location.href;
  563. }
  564. </script>
  565. <div class=alert-container>
  566. <noscript>
  567. <div>
  568. <div class=alert-info role=alert>
  569. Please enable Javascript to use all the features on this site.
  570. </div>
  571. </div>
  572. </noscript>
  573. </div>
  574. <div class=content>
  575. <div id=Leaderboard-Abp class="abp leaderboard-abp">
  576. <iframe name=Roblox_U13_Direct_728x90 allowtransparency=true frameborder=0 height=110 scrolling=no data-src="" src=https://www.roblox.com/user-sponsorship/1 width=728 data-js-adtype=iframead data-ad-slot=Roblox_U13_Direct_728x90></iframe>
  577. </div>
  578. <div class=catalog-container>
  579. <div id=catalog-container ng-controller=catalogController ng-init="init('True',
  580. 2,
  581. 'False',
  582. 'False',
  583. 'False',
  584. 'False',
  585. 'True')" ng-cloak>
  586. <div catalog-page></div>
  587. </div>
  588. </div>
  589. </div>
  590. </div>
  591. <footer class=container-footer>
  592. <div class=footer>
  593. <ul class="row footer-links">
  594. <li class=footer-link>
  595. <a href="https://www.roblox.com/info/about-us?locale=en_us" class="text-footer-nav roblox-interstitial" target=_blank>About Us</a>
  596. <li class=footer-link>
  597. <a href="https://www.roblox.com/info/jobs?locale=en_us" class="text-footer-nav roblox-interstitial" target=_blank>Jobs</a>
  598. <li class=footer-link>
  599. <a href="https://www.roblox.com/info/blog?locale=en_us" class=text-footer-nav target=_blank>Blog</a>
  600. <li class=footer-link>
  601. <a href="https://www.roblox.com/info/parents?locale=en_us" class="text-footer-nav roblox-interstitial" target=_blank>Parents</a>
  602. <li class=footer-link>
  603. <a href="https://www.roblox.com/info/help?locale=en_us" class="text-footer-nav roblox-interstitial" target=_blank>Help</a>
  604. <li class=footer-link>
  605. <a href="https://www.roblox.com/info/terms?locale=en_us" class=text-footer-nav target=_blank>Terms</a>
  606. <li class=footer-link>
  607. <a href="https://www.roblox.com/info/privacy?locale=en_us" class="text-footer-nav privacy" target=_blank>Privacy</a>
  608. </ul>
  609. <p class="text-footer footer-note">
  610. &#169;2019 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.
  611. </div>
  612. </footer>
  613. </div>
  614. <script>
  615. function urchinTracker() {
  616. }
  617. </script>
  618. <script>
  619. if (typeof Roblox === "undefined") {
  620. Roblox = {};
  621. }
  622. if (typeof Roblox.PlaceLauncher === "undefined") {
  623. Roblox.PlaceLauncher = {};
  624. }
  625. Roblox.PlaceLauncher.Resources = { RefactorEnabled: "True", IsProtocolHandlerBaseUrlParamEnabled: "False", ProtocolHandlerAreYouInstalled: { play: { content: "<img src='https://images.rbxcdn.com/6304dfebadecbb3b338a79a6a528936c.svg.gzip' width='90' height='90' alt='R'/><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/3da410727fa2670dcb4f31316643138a.svg.gzip' width='95' height='95' alt='R' /><p>Get started creating your own games!</p>", buttonText: "Download Studio" } }, ProtocolHandlerStartingDialog: { play: { content: "<img src='https://images.rbxcdn.com/6304dfebadecbb3b338a79a6a528936c.svg.gzip' width='90' height='90' alt='R'/><p>Roblox is now loading. Get ready to play!</p>" }, studio: { content: "<img src='https://images.rbxcdn.com/3da410727fa2670dcb4f31316643138a.svg.gzip' width='95' height='95' alt='R' /><p>Checking for Roblox Studio...</p>" }, loader: "<span class='spinner spinner-default'></span>" } };
  626. </script>
  627. <div id=PlaceLauncherStatusPanel style=display:none;width:300px data-new-plugin-events-enabled=True data-event-stream-for-plugin-enabled=True data-event-stream-for-protocol-enabled=True data-is-game-launch-interface-enabled=True data-is-protocol-handler-launch-enabled=True data-is-user-logged-in=False data-os-name=Windows data-protocol-name-for-client=roblox-player data-protocol-name-for-studio=roblox-studio data-protocol-roblox-locale=en_us data-protocol-game-locale=en_us data-protocol-url-includes-launchtime=true data-protocol-detection-enabled=true data-protocol-separate-script-parameters-enabled=true data-protocol-avatar-parameter-enabled=false data-protocol-sending-locales-enabled=true>
  628. <div class="modalPopup blueAndWhite PlaceLauncherModal" style=min-height:160px>
  629. <div id=Spinner class=Spinner style="padding:20px 0">
  630. <img data-delaysrc=https://images.rbxcdn.com/e998fb4c03e8c2e30792f2f3436e9416.gif height=32 width=32 alt=Progress>
  631. </div>
  632. <div id=status style="min-height:40px;text-align:center;margin:5px 20px">
  633. <div id=Starting class="PlaceLauncherStatus MadStatusStarting" style=display:block>
  634. Starting Roblox...
  635. </div>
  636. <div id=Waiting class="PlaceLauncherStatus MadStatusField">
  637. Connecting to Players...
  638. </div>
  639. <div id=StatusBackBuffer class="PlaceLauncherStatus PlaceLauncherStatusBackBuffer MadStatusBackBuffer"></div>
  640. </div>
  641. <div style=text-align:center;margin-top:1em>
  642. <input type=button class="Button CancelPlaceLauncherButton translate" value=Cancel>
  643. </div>
  644. </div>
  645. </div>
  646. <div id=ProtocolHandlerClickAlwaysAllowed class=ph-clickalwaysallowed data-hide-remember-overlay style=display:none>
  647. <p class=larger-font-size>
  648. <span class=icon-moreinfo></span>Check<strong>Remember my choice</strong>and click<img data-delaysrc=https://images.rbxcdn.com/7c8d7a39b4335931221857cca2b5430b.png alt="Launch Application">in the dialog box above to join games faster in the future!
  649. </div>
  650. <div id=videoPrerollPanel style=display:none>
  651. <div id=videoPrerollTitleDiv>
  652. Gameplay sponsored by:
  653. </div>
  654. <div id=content>
  655. <video id=contentElement style=width:0;height:0>
  656. </div>
  657. <div id=videoPrerollMainDiv></div>
  658. <div id=videoPrerollCompanionAd></div>
  659. <div id=videoPrerollLoadingDiv>
  660. Loading<span id=videoPrerollLoadingPercent>0%</span>-<span id=videoPrerollMadStatus class=MadStatusField>Starting game...</span><span id=videoPrerollMadStatusBackBuffer class=MadStatusBackBuffer></span>
  661. <div id=videoPrerollLoadingBar>
  662. <div id=videoPrerollLoadingBarCompleted></div>
  663. </div>
  664. </div>
  665. <div id=videoPrerollJoinBC>
  666. <span>Get more with Builders Club!</span><a href="https://www.roblox.com/premium/membership?ctx=preroll" target=_blank class="btn-medium btn-primary" id=videoPrerollJoinBCButton>Join Builders Club</a>
  667. </div>
  668. </div>
  669. <script>
  670. $(function () {
  671. var videoPreRollDFP = Roblox.VideoPreRollDFP;
  672. if (videoPreRollDFP) {
  673. var customTargeting = Roblox.VideoPreRollDFP.customTargeting;
  674. videoPreRollDFP.showVideoPreRoll = false;
  675. videoPreRollDFP.loadingBarMaxTime = 33000;
  676. videoPreRollDFP.videoLoadingTimeout = 11000;
  677. videoPreRollDFP.videoPlayingTimeout = 41000;
  678. videoPreRollDFP.videoLogNote = "";
  679. videoPreRollDFP.logsEnabled = true;
  680. videoPreRollDFP.adUnit = "/1015347/VideoPrerollUnder13";
  681. videoPreRollDFP.adTime = 15;
  682. videoPreRollDFP.includedPlaceIds = "707652019,447452406,461482416,2563455047,2056459358";
  683. videoPreRollDFP.isSwfPreloaderEnabled = false;
  684. videoPreRollDFP.isPrerollShownEveryXMinutesEnabled = true;
  685. videoPreRollDFP.isAgeTargetingEnabled = true;
  686. videoPreRollDFP.isAgeOrSegmentTargetingEnabled = true;
  687. videoPreRollDFP.isCompanionAdRenderedByGoogleTag = true;
  688. customTargeting.userAge = "Unknown";
  689. customTargeting.userAgeOrSegment = "Unknown";
  690. customTargeting.userGender = "Unknown";
  691. customTargeting.gameGenres = "";
  692. customTargeting.environment = "Production";
  693. customTargeting.adTime = "15";
  694. customTargeting.PLVU = false;
  695. $(videoPreRollDFP.checkEligibility);
  696. }
  697. });
  698. </script>
  699. <script>
  700. function checkRobloxInstall() {
  701. window.location = 'https://www.roblox.com/install/download.aspx';
  702. return false;
  703. }
  704. </script>
  705. <div id=InstallationInstructions style=display:none>
  706. <div class=ph-installinstructions>
  707. <div class=ph-modal-header>
  708. <span class="icon-close simplemodal-close"></span>
  709. <h3 class=title>
  710. Thanks for playing Roblox
  711. </h3>
  712. </div>
  713. <div class=modal-content-container>
  714. <div class=ph-installinstructions-body>
  715. <ul class=modal-col-3>
  716. <li class=step1-of-3>
  717. <h2>
  718. 1
  719. </h2>
  720. <p class=larger-font-size>
  721. Click<strong>Run</strong>to install Roblox after the download finishes
  722. </p>
  723. <img data-delaysrc=https://images.rbxcdn.com/edeae7e237fdd9472e86e47c63bb0d03.png>
  724. <li class=step2-of-3>
  725. <h2>
  726. 2
  727. </h2>
  728. <p class=larger-font-size>
  729. Click<strong>Ok</strong>to finish installing Roblox
  730. </p>
  731. <img data-delaysrc=https://images.rbxcdn.com/8e280999b53bd74d4cde1084389ed40e.png>
  732. <li class=step3-of-3>
  733. <h2>
  734. 3
  735. </h2>
  736. <p class=larger-font-size>
  737. Click the<strong>Play</strong>button to join the action!
  738. <div class="VisitButton VisitButtonContinueGLI">
  739. <a class="btn btn-primary-lg disabled btn-full-width" data-isedge=true>Play</a>
  740. </div>
  741. </ul>
  742. </div>
  743. </div>
  744. <div class=xsmall>
  745. The Roblox installer should download shortly. If it doesnโ€™t, start the<a id=GameLaunchManualInstallLink href=# class=text-link>download now.</a>
  746. <script>
  747. if (Roblox.ProtocolHandlerClientInterface && typeof Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink === 'function') {
  748. Roblox.ProtocolHandlerClientInterface.attachManualDownloadToLink();
  749. }
  750. </script>
  751. </div>
  752. </div>
  753. </div>
  754. <div class=InstallInstructionsImage data-modalwidth=970 style=display:none></div>
  755. <div id=pluginObjDiv style=height:1px;width:1px;visibility:hidden;position:absolute;top:0></div>
  756. <iframe id=downloadInstallerIFrame name=downloadInstallerIFrame style=visibility:hidden;height:0;width:1px;position:absolute></iframe>
  757. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=clientinstaller src=https://js.rbxcdn.com/3f2a863e0026fe90136944e1837e13df.js.gzip></script>
  758. <script>
  759. Roblox.Client._skip = '/install/download.aspx';
  760. Roblox.Client._CLSID = '';
  761. Roblox.Client._installHost = '';
  762. Roblox.Client.ImplementsProxy = false;
  763. Roblox.Client._silentModeEnabled = false;
  764. Roblox.Client._bringAppToFrontEnabled = false;
  765. Roblox.Client._currentPluginVersion = '';
  766. Roblox.Client._eventStreamLoggingEnabled = false;
  767. Roblox.Client._installSuccess = function () {
  768. if (GoogleAnalyticsEvents) {
  769. GoogleAnalyticsEvents.ViewVirtual('InstallSuccess');
  770. GoogleAnalyticsEvents.FireEvent(['Plugin', 'Install Success']);
  771. if (Roblox.Client._eventStreamLoggingEnabled && typeof Roblox.GamePlayEvents != "undefined") {
  772. Roblox.GamePlayEvents.SendInstallSuccess(Roblox.Client._launchMode, play_placeId);
  773. }
  774. }
  775. };
  776. </script>
  777. <div class="ConfirmationModal modalPopup unifiedModal smallModal" data-modal-handle=confirmation style=display:none>
  778. <a class="genericmodal-close ImageButton closeBtnCircle_20h"></a>
  779. <div class=Title></div>
  780. <div class=GenericModalBody>
  781. <div class=TopBody>
  782. <div class="ImageContainer roblox-item-image" data-image-size=small data-no-overlays data-no-click>
  783. <img class=GenericModalImage alt="generic image">
  784. </div>
  785. <div class=Message></div>
  786. </div>
  787. <div class="ConfirmationModalButtonContainer GenericModalButtonContainer">
  788. <a href="" id=roblox-confirm-btn><span></span></a>
  789. <a href="" id=roblox-decline-btn><span></span></a>
  790. </div>
  791. <div class=ConfirmationModalFooter></div>
  792. </div>
  793. <script>
  794. Roblox = Roblox || {};
  795. Roblox.Resources = Roblox.Resources || {};
  796. Roblox.Resources.GenericConfirmation = { yes: "Yes", No: "No", Confirm: "Confirm", Cancel: "Cancel" };
  797. </script>
  798. </div>
  799. <div id=modal-confirmation class=modal-confirmation data-modal-type=confirmation>
  800. <div id=modal-dialog class=modal-dialog>
  801. <div class=modal-content>
  802. <div class=modal-header>
  803. <button type=button class=close data-dismiss=modal><span aria-hidden=true><span class=icon-close></span></span><span class=sr-only>Close</span></button>
  804. <h5 class=modal-title></h5>
  805. </div>
  806. <div class=modal-body>
  807. <div class=modal-top-body>
  808. <div class=modal-message></div>
  809. <div class="modal-image-container roblox-item-image" data-image-size=medium data-no-overlays data-no-click>
  810. <img class=modal-thumb alt="generic image">
  811. </div>
  812. <div class="modal-checkbox checkbox">
  813. <input id=modal-checkbox-input type=checkbox><label for=modal-checkbox-input></label>
  814. </div>
  815. </div>
  816. <div class=modal-btns>
  817. <a href="" id=confirm-btn><span></span></a>
  818. <a href="" id=decline-btn><span></span></a>
  819. </div>
  820. <div class="loading modal-processing">
  821. <img class=loading-default src=https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif alt=Processing...>
  822. </div>
  823. </div>
  824. <div class="modal-footer text-footer"></div>
  825. </div>
  826. </div>
  827. </div>
  828. <script>
  829. var Roblox = Roblox || {};
  830. Roblox.jsConsoleEnabled = false;
  831. </script>
  832. <script>
  833. $(function () {
  834. Roblox.CookieUpgrader.domain = 'roblox.com';
  835. Roblox.CookieUpgrader.upgrade("GuestData", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
  836. Roblox.CookieUpgrader.upgrade("RBXSource", { expires: function (cookie) {
  837. return Roblox.CookieUpgrader.getExpirationFromCookieValue("rbx_acquisition_time", cookie);
  838. } });
  839. Roblox.CookieUpgrader.upgrade("RBXViralAcquisition", { expires: function (cookie) {
  840. return Roblox.CookieUpgrader.getExpirationFromCookieValue("time", cookie);
  841. } });
  842. Roblox.CookieUpgrader.upgrade("RBXMarketing", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
  843. Roblox.CookieUpgrader.upgrade("RBXSessionTracker", { expires: Roblox.CookieUpgrader.fourHoursFromNow });
  844. Roblox.CookieUpgrader.upgrade("RBXEventTrackerV2", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
  845. });
  846. </script>
  847. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=intl-polyfill src=https://js.rbxcdn.com/5e8ba1e14b01f7c9c40ae452450f29e0.js.gzip></script>
  848. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=InternationalCore src=https://js.rbxcdn.com/bf1a516b7e0ad82cf69de3302c1954c94a3521a08add0ac025ca08936181f0fa.js></script>
  849. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=leanbase src=https://js.rbxcdn.com/20e338f0274e00f83f137ea859708a77.js.gzip></script>
  850. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=angular src=https://js.rbxcdn.com/832c506e112c847b4b2b56bd94276d47.js.gzip></script>
  851. <div ng-modules=baseTemplateApp>
  852. <script src=https://js.rbxcdn.com/cbd9a121217c4887264ffe32686ecd52.js.gzip></script>
  853. </div>
  854. <div ng-modules=pageTemplateApp>
  855. <script src=https://js.rbxcdn.com/b4a7332d2eb693210b274a3a74007943.js.gzip></script>
  856. </div>
  857. <script>
  858. Roblox.config.externalResources = [];
  859. Roblox.config.paths['Pages.Catalog'] = 'https://js.rbxcdn.com/baa0c90950583c77f295ecd0748e32ce.js.gzip';
  860. Roblox.config.paths['Pages.CatalogShared'] = 'https://js.rbxcdn.com/fac702cb852bab6006d426d83c56f8ab.js.gzip';
  861. Roblox.config.paths['Widgets.AvatarImage'] = 'https://js.rbxcdn.com/76e30b0ae6a1be83cbf018579681b891.js.gzip';
  862. Roblox.config.paths['Widgets.DropdownMenu'] = 'https://js.rbxcdn.com/c948a7edd36e01db699c8cf19303376d.js.gzip';
  863. Roblox.config.paths['Widgets.GroupImage'] = 'https://js.rbxcdn.com/3afc03adcc2aaca01500baaf69b52d9c.js.gzip';
  864. Roblox.config.paths['Widgets.HierarchicalDropdown'] = 'https://js.rbxcdn.com/c90aea1e430a241776db6775e98c3e03.js.gzip';
  865. Roblox.config.paths['Widgets.ItemImage'] = 'https://js.rbxcdn.com/de56e6c24a3e70ee7d1ec900c24042e8.js.gzip';
  866. Roblox.config.paths['Widgets.PlaceImage'] = 'https://js.rbxcdn.com/6003f8790df31d5445169faea5c04fd7.js.gzip';
  867. </script>
  868. <script>
  869. Roblox.XsrfToken.setToken('/C2f4D0Rfp/E');
  870. </script>
  871. <script>
  872. $(function () {
  873. Roblox.DeveloperConsoleWarning.showWarning();
  874. });
  875. </script>
  876. <script>
  877. $(function () {
  878. Roblox.JSErrorTracker.initialize({ 'suppressConsoleError': true });
  879. });
  880. </script>
  881. <script>
  882. $(function () {
  883. function trackReturns() {
  884. function dayDiff(d1, d2) {
  885. return Math.floor((d1 - d2) / 86400000);
  886. }
  887. if (!localStorage) {
  888. return false;
  889. }
  890. var cookieName = 'RBXReturn';
  891. var cookieOptions = { expires: 9001 };
  892. var cookieStr = localStorage.getItem(cookieName) || "";
  893. var cookie = {};
  894. try {
  895. cookie = JSON.parse(cookieStr);
  896. }
  897. catch (ex) {
  898. }
  899. try {
  900. if (typeof cookie.ts === "undefined" || isNaN(new Date(cookie.ts))) {
  901. localStorage.setItem(cookieName, JSON.stringify({ ts: new Date().toDateString() }));
  902. return false;
  903. }
  904. }
  905. catch (ex) {
  906. return false;
  907. }
  908. var daysSinceFirstVisit = dayDiff(new Date(), new Date(cookie.ts));
  909. if (daysSinceFirstVisit == 1 && typeof cookie.odr === "undefined") {
  910. RobloxEventManager.triggerEvent('rbx_evt_odr', {});
  911. cookie.odr = 1;
  912. }
  913. if (daysSinceFirstVisit >= 1 && daysSinceFirstVisit <= 7 && typeof cookie.sdr === "undefined") {
  914. RobloxEventManager.triggerEvent('rbx_evt_sdr', {});
  915. cookie.sdr = 1;
  916. }
  917. try {
  918. localStorage.setItem(cookieName, JSON.stringify(cookie));
  919. }
  920. catch (ex) {
  921. return false;
  922. }
  923. }
  924. GoogleListener.init();
  925. RobloxEventManager.initialize(true);
  926. RobloxEventManager.triggerEvent('rbx_evt_pageview');
  927. trackReturns();
  928. RobloxEventManager._idleInterval = 450000;
  929. RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_start');
  930. RobloxEventManager.registerCookieStoreEvent('rbx_evt_ftp');
  931. RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_success');
  932. RobloxEventManager.registerCookieStoreEvent('rbx_evt_fmp');
  933. RobloxEventManager.startMonitor();
  934. });
  935. </script>
  936. <script>
  937. var Roblox = Roblox || {};
  938. Roblox.UpsellAdModal = Roblox.UpsellAdModal || {};
  939. Roblox.UpsellAdModal.Resources = { title: "Remove Ads Like This", body: "Builders Club members do not see external ads like these.", accept: "Upgrade Now", decline: "No, thanks" };
  940. </script>
  941. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=page src=https://js.rbxcdn.com/e7db92b888aaa09161ce780ebb09f296.js.gzip></script>
  942. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=StyleGuide src=https://js.rbxcdn.com/335917f5542f4ac43a66871aed3d678933a23cf0677cc0d543bc81f594cf4ebe.js></script>
  943. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=Captcha src=https://js.rbxcdn.com/51ad6cf0e375c1d0c0e379793d72171f6c9ab7bff5d93e278fe44a0dd491a82a.js></script>
  944. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=Catalog src=https://js.rbxcdn.com/ccef576f77456e072270fdb1867f7854fb1763cb924c4c4401bc7fdf00c28044.js></script>
  945. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) src=https://authsite.roblox.com/login/1cf74a20-621b-455c-9b3a-36e285b1e939/en_us/get-language-resources-bundle></script>
  946. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) src=https://authsite.roblox.com/login/1cf74a20-621b-455c-9b3a-36e285b1e939/get-html-bundle></script>
  947. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) src=https://authsite.roblox.com/login/1cf74a20-621b-455c-9b3a-36e285b1e939/get-javascript-bundle></script>
  948. <script>
  949. var _comscore = _comscore || [];
  950. _comscore.push({ c1: "2", c2: "6035605", c3: "", c4: "", c15: "" });
  951. (function () {
  952. var s = document.createElement("script"), el = document.getElementsByTagName("script")[0];
  953. s.async = true;
  954. s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
  955. el.parentNode.insertBefore(s, el);
  956. })();
  957. </script>
  958. <noscript>
  959. <img src="http://b.scorecardresearch.com/p?c1=2&amp;c2=&amp;c3=&amp;c4=&amp;c5=&amp;c6=&amp;c15=&amp;cv=2.0&amp;cj=1">
  960. </noscript>
  961. <script onerror=Roblox.BundleDetector&amp;&amp;Roblox.BundleDetector.reportBundleError(this) data-monitor=true data-bundlename=pageEnd src=https://js.rbxcdn.com/718c7adc3e708d004a83308a23ab2b7c.js.gzip></script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement