Skip to content

Instantly share code, notes, and snippets.

@jtrent238
Created September 9, 2016 21:58
Show Gist options
  • Save jtrent238/471650c858c3257efdc22d218bf52c55 to your computer and use it in GitHub Desktop.
Save jtrent238/471650c858c3257efdc22d218bf52c55 to your computer and use it in GitHub Desktop.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"><head><style type="text/css">@charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}.ng-hide-add-active,.ng-hide-remove{display:block!important;}</style>
<!-- MachineID: WEB333 -->
<title>ROBLOX.com</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,requiresActiveX=true">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="ROBLOX Corporation">
<meta name="description" content="ROBLOX is powered by a growing community of over 300,000 creators who produce an infinite variety of highly immersive experiences. These experiences range from 3D multiplayer games and competitions, to interactive adventures where friends can take on new personas imagining what it would be like to be a dinosaur, a miner in a quarry or an astronaut on a space exploration.">
<meta name="keywords" content="free games, online games, building games, virtual worlds, free mmo, gaming cloud, physics engine">
<meta name="apple-itunes-app" content="app-id=431946152">
<meta name="google-site-verification" content="KjufnQUaDv5nXJogvDMey4G-Kb7ceUVxTdzcMaP9pCY">
<link rel="canonical" href="https://www.roblox.com/Upgrades/PaymentMethods?ap=21&amp;page=grid&amp;nl=true">
<link rel="manifest" href="https://www.roblox.com/push-notifications/chrome-manifest" crossorigin="use-credentials">
<link href="https://images.rbxcdn.com/9c0e562131139fc909c6fbb3d691c249.ico.gzip" rel="icon">
<link rel="stylesheet" href="https://static.rbxcdn.com/css/MainCSS___a5ef51dcf26c43d108febf5849492d24_m.css/fetch">
<link rel="stylesheet" href="https://static.rbxcdn.com/css/page___9f841baa1fd00cb527a2cf12dea44770_m.css/fetch">
<script async="" src="https://sb.scorecardresearch.com/beacon.js"></script><script src="https://pagead2.googlesyndication.com/pagead/show_companion_ad.js"></script><script async="" type="text/javascript" src="https://www.googletagservices.com/tag/js/gpt.js"></script><script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script><script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script>
<script type="text/javascript">window.jQuery || document.write("<script type='text/javascript' src='/js/jquery/jquery-1.11.1.js'><\/script>")</script>
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.migrate/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">window.jQuery || document.write("<script type='text/javascript' src='/js/jquery/jquery-migrate-1.2.1.js'><\/script>")</script>
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script>
<script type="text/javascript">window.Sys || document.write("<script type='text/javascript' src='/js/Microsoft/MicrosoftAjax.js'><\/script>")</script>
<script type="text/javascript">
var _gaq = _gaq || [];
window.GoogleAnalyticsDisableRoblox2 = true;
_gaq.push(['b._setAccount', 'UA-486632-1']);
_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', 'Member', 2]);
_gaq.push(['b._trackPageview']);
_gaq.push(['c._setAccount', 'UA-26810151-2']);
_gaq.push(['c._setDomainName', 'roblox.com']);
(function () {
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 type="text/javascript" src="https://js.rbxcdn.com/12b34f3fd033732239df72dea8062018.js.gzip"></script>
<script type="text/javascript">
if (Roblox && Roblox.EventStream) {
Roblox.EventStream.Init("//ecsv2.roblox.com/www/e.png",
"//ecsv2.roblox.com/www/e.png",
"//ecsv2.roblox.com/pe?t=studio",
"//ecsv2.roblox.com/pe?t=diagnostic");
}
</script>
<script type="text/javascript">
if (Roblox && Roblox.PageHeartbeatEvent) {
Roblox.PageHeartbeatEvent.Init([2,8,20,60]);
}
</script> <script type="text/javascript" src="https://js.rbxcdn.com/782dc5d05901330d8ac3187c2c4afbaa.js.gzip"></script>
<script type="text/javascript">Roblox.config.externalResources = [];Roblox.config.paths['Pages.Catalog'] = 'https://js.rbxcdn.com/165e89fea66b7c146c7a723c33ca7108.js.gzip';Roblox.config.paths['Pages.CatalogShared'] = 'https://js.rbxcdn.com/2c184f0c9c042d5309458c45dddf6d4e.js.gzip';Roblox.config.paths['Widgets.AvatarImage'] = 'https://js.rbxcdn.com/823c7d686e6b3d8321275740fe498f9d.js.gzip';Roblox.config.paths['Widgets.DropdownMenu'] = 'https://js.rbxcdn.com/5cf0eb71249768c86649bbf0c98591b0.js.gzip';Roblox.config.paths['Widgets.GroupImage'] = 'https://js.rbxcdn.com/556af22c86bce192fb12defcd4d2121c.js.gzip';Roblox.config.paths['Widgets.HierarchicalDropdown'] = 'https://js.rbxcdn.com/7689b2fd3f7467640cda2d19e5968409.js.gzip';Roblox.config.paths['Widgets.ItemImage'] = 'https://js.rbxcdn.com/c2aa2fcc2b1e8ec82e1bacfdb9dfffea.js.gzip';Roblox.config.paths['Widgets.PlaceImage'] = 'https://js.rbxcdn.com/52ff803e77bb661839e8b2c93bb5ba27.js.gzip';Roblox.config.paths['Widgets.SurveyModal'] = 'https://js.rbxcdn.com/56ad7af86ee4f8bc82af94269ed50148.js.gzip';</script>
<script type="text/javascript" src="https://js.rbxcdn.com/4fbd08d5caca132771737ffb3e8d76ec.js.gzip"></script>
<script type="text/javascript" src="https://js.rbxcdn.com/e86e69edffc2e0ba7c1fa43fe1e70813.js.gzip"></script>
<script type="text/javascript" src="https://js.rbxcdn.com/584925ddbb1026c47d7ccaef6e20ba84.js.gzip"></script>
<script type="text/javascript" src="https://js.rbxcdn.com/43ffbbbf7195ad8f843e2b03b84ebb17.js.gzip"></script>
<script type="text/javascript">
$(function () {
Roblox.JSErrorTracker.initialize({ 'suppressConsoleError': true});
});
</script>
<script type="text/javascript">
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 type="text/javascript">
Roblox.XsrfToken.setToken('I6nMj723Z5dV');
</script>
<script type="text/javascript">
Roblox.FixedUI.gutterAdsEnabled = false;
</script>
<script type="text/javascript">
var Roblox = Roblox || {};
Roblox.jsConsoleEnabled = false;
</script>
<script>
$(function () {
Roblox.DeveloperConsoleWarning.showWarning();
});
</script>
<script type="text/javascript">
if (typeof(Roblox) === "undefined") { Roblox = {}; }
Roblox.Endpoints = Roblox.Endpoints || {};
Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
Roblox.Endpoints.Urls['/api/item.ashx'] = 'https://www.roblox.com/api/item.ashx';
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-auth/getauthticket'] = 'https://www.roblox.com/game-auth/getauthticket';
Roblox.Endpoints.Urls['/game/edit.ashx'] = 'https://assetgame.roblox.com/game/edit.ashx';
Roblox.Endpoints.Urls['/game/getauthticket'] = 'https://assetgame.roblox.com/game/getauthticket';
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/character.aspx'] = 'https://www.roblox.com/my/character.aspx';
Roblox.Endpoints.Urls['/my/money.aspx'] = 'https://www.roblox.com/my/money.aspx';
Roblox.Endpoints.Urls['/chat/chat'] = 'https://www.roblox.com/chat/chat';
Roblox.Endpoints.Urls['/presence/users'] = 'https://www.roblox.com/presence/users';
Roblox.Endpoints.Urls['/presence/user'] = 'https://www.roblox.com/presence/user';
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['/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['/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.addCrossDomainOptionsToAllRequests = true;
</script>
<script type="text/javascript">
if (typeof(Roblox) === "undefined") { Roblox = {}; }
Roblox.Endpoints = Roblox.Endpoints || {};
Roblox.Endpoints.Urls = Roblox.Endpoints.Urls || {};
Roblox.Endpoints.Urls['/authentication/is-logged-in'] = 'https://www.roblox.com/authentication/is-logged-in';
</script>
<script src="https://partner.googleadservices.com/gpt/pubads_impl_95.js" async=""></script><link rel="prefetch" href="https://tpc.googlesyndication.com/safeframe/1-0-4/html/container.html"></head>
<body id="rbx-body" class="" data-performance-relative-value="0.005" data-internal-page-name="" data-send-event-percentage="0.01">
<div id="roblox-linkify" data-enabled="true" data-regex="(https?\:\/\/)?(?:www\.)?([a-z0-9\-]{2,}\.)*(((m|de|www|web|api|blog|wiki|help|corp|polls|bloxcon|developer|devforum|forum)\.roblox\.com|robloxlabs\.com)|(www\.shoproblox\.com))((\/[A-Za-z0-9-+&amp;@#\/%?=~_|!:,.;]*)|(\b|\s))" data-regex-flags="gm" data-as-http-regex="((blog|wiki|[^.]help|corp|polls|bloxcon|developer|devforum)\.roblox\.com|robloxlabs\.com)"></div>
<div id="image-retry-data" data-image-retry-max-times="10" data-image-retry-timer="1500">
</div>
<div id="http-retry-data" data-http-retry-max-timeout="8000" data-http-retry-base-timeout="1000">
</div>
<div id="fb-root"></div>
<div class="nav-container no-gutter-ads">
<div id="header" class="navbar-fixed-top rbx-header" role="navigation">
<div class="container-fluid">
<div class="rbx-navbar-header">
<div data-behavior="nav-notification" class="rbx-nav-collapse" onselectstart="return false;">
<span class="icon-nav-menu"></span>
<div class="notification-red " title="6">
6
</div>
</div>
<div class="navbar-header">
<a class="navbar-brand" href="https://www.roblox.com/">
<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-4 col-lg-3">
<li>
<a class="nav-menu-title" href="https://www.roblox.com/games">Games</a>
</li>
<li>
<a class="nav-menu-title" href="https://www.roblox.com/catalog">Catalog</a>
</li>
<li>
<a class="nav-menu-title" href="https://www.roblox.com/develop">Develop</a>
</li>
<li>
<a class="buy-robux nav-menu-title" href="https://www.roblox.com/upgrades/robux?ctx=nav">ROBUX</a>
</li>
</ul><!--rbx-navbar-->
<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">
<div class="input-group">
<input id="navbar-search-input" class="form-control input-field" type="text" placeholder="Search" maxlength="120">
<div class="input-group-btn">
<button id="navbar-search-btn" class="input-addon-btn" type="submit">
<span class="icon-nav-search"></span>
</button>
</div>
</div>
<ul data-toggle="dropdown-menu" class="dropdown-menu" role="menu">
<li class="rbx-navbar-search-option selected" data-searchurl="https://www.roblox.com/search/users?keyword=">
<span class="rbx-navbar-search-text">Search <span class="rbx-navbar-search-string"></span> in People</span>
</li>
<li class="rbx-navbar-search-option" data-searchurl="https://www.roblox.com/games/?Keyword=">
<span class="rbx-navbar-search-text">Search <span class="rbx-navbar-search-string"></span> in Games</span>
</li>
<li class="rbx-navbar-search-option" data-searchurl="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>
</li>
<li class="rbx-navbar-search-option" data-searchurl="https://www.roblox.com/groups/search.aspx?val=">
<span class="rbx-navbar-search-text">Search <span class="rbx-navbar-search-string"></span> in Groups</span>
</li>
<li class="rbx-navbar-search-option" data-searchurl="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>
</li>
</ul>
</div><!--rbx-navbar-search-->
<div class="navbar-right rbx-navbar-right col-xs-4 col-sm-3">
<ul class="nav navbar-right rbx-navbar-icon-group">
<li class="navbar-icon-item">
<a class="rbx-menu-item" data-toggle="popover" data-bind="popover-setting" data-viewport="#header" data-original-title="" title="">
<span class="icon-nav-settings" id="nav-settings"></span>
<span class="xsmall nav-setting-highlight hidden">0</span>
</a>
<div class="rbx-popover-content" data-toggle="popover-setting">
<ul class="dropdown-menu" role="menu">
<li>
<a class="rbx-menu-item" href="https://www.roblox.com/my/account">
Settings
<span class="xsmall nav-setting-highlight hidden">0</span>
</a>
</li>
<li><a class="rbx-menu-item" href="https://www.roblox.com/Help/Builderman.aspx" target="_blank">Help</a></li>
<li><a class="rbx-menu-item" data-behavior="logout" data-bind="https://www.roblox.com/authentication/logout">Logout</a></li>
</ul>
</div>
</li>
<li class="navbar-icon-item">
<a id="nav-robux-icon" class="rbx-menu-item" data-toggle="popover" data-bind="popover-robux" data-original-title="" title="">
<span class="icon-nav-robux" id="nav-robux"></span>
<span class="rbx-text-navbar-right" id="nav-robux-amount">99999999999999999999999</span>
</a>
<div class="rbx-popover-content" data-toggle="popover-robux">
<ul class="dropdown-menu" role="menu">
<li><a href="https://www.roblox.com/My/Money.aspx#/#Summary_tab" id="nav-robux-balance" class="rbx-menu-item">1 ROBUX</a></li>
<li><a href="https://www.roblox.com/upgrades/robux?ctx=navpopover" class="rbx-menu-item">Buy ROBUX</a></li>
</ul>
</div>
</li>
<li class="rbx-navbar-right-search" data-toggle="toggle-search">
<a class="rbx-menu-icon rbx-menu-item">
<span class="icon-nav-search-white"></span>
</a>
</li>
</ul> </div><!-- navbar right-->
<ul class="nav rbx-navbar hidden-md hidden-lg col-xs-12">
<li>
<a class="nav-menu-title" href="https://www.roblox.com/games">Games</a>
</li>
<li>
<a class="nav-menu-title" href="https://www.roblox.com/catalog/">Catalog</a>
</li>
<li>
<a class="nav-menu-title" href="https://www.roblox.com/develop">Develop</a>
</li>
<li>
<a class="buy-robux nav-menu-title" href="https://www.roblox.com/upgrades/robux?ctx=nav">ROBUX</a>
</li>
</ul><!--rbx-navbar-->
</div>
</div>
<!-- LEFT NAV MENU -->
<div id="navigation" class="rbx-left-col" data-behavior="left-col">
<ul>
<li class="text-lead">
<a class="text-overflow" href="https://www.roblox.com/users/56247936/profile">jtrent238</a>
</li>
<li class="rbx-divider"></li>
</ul>
<div class="rbx-scrollbar mCustomScrollbar _mCS_1" data-toggle="scrollbar" onselectstart="return false;"><div id="mCSB_1" class="mCustomScrollBox mCS-light mCSB_vertical mCSB_inside" tabindex="0" style="max-height: 655px;"><div id="mCSB_1_container" class="mCSB_container" style="position:relative; top:0; left:0;" dir="ltr">
<ul>
<li><a href="https://www.roblox.com/home" id="nav-home"><span class="icon-nav-home"></span><span>Home</span></a></li>
<li><a href="https://www.roblox.com/users/56247936/profile" id="nav-profile"><span class="icon-nav-profile"></span><span>Profile</span></a></li>
<li>
<a href="https://www.roblox.com/my/messages/#!/inbox" id="nav-message" data-count="4">
<span class="icon-nav-message"></span><span>Messages</span>
<span class="notification-blue " title="4">4</span>
</a>
</li>
<li>
<a href="https://www.roblox.com/users/56247936/friends#!/friend-requests" id="nav-friends" data-count="2">
<span class="icon-nav-friends"></span><span>Friends</span>
<span class="notification-blue " title="2">2</span>
</a>
</li>
<li>
<a href="https://www.roblox.com/my/character.aspx" id="nav-character">
<span class="icon-nav-charactercustomizer"></span><span>Avatar</span>
</a>
</li>
<li>
<a href="https://www.roblox.com/users/56247936/inventory" id="nav-inventory">
<span class="icon-nav-inventory"></span><span>Inventory</span>
</a>
</li>
<li>
<a href="https://www.roblox.com/my/money.aspx#/#TradeItems_tab" id="nav-trade">
<span class="icon-nav-trade"></span><span>Trade</span>
</a>
</li>
<li>
<a href="https://www.roblox.com/my/groups.aspx" id="nav-group">
<span class="icon-nav-group"></span><span>Groups</span>
</a>
</li>
<li>
<a href="https://forum.roblox.com/forum/" id="nav-forum">
<span class="icon-nav-forum"></span><span>Forum</span>
</a>
</li>
<li>
<a href="http://blog.roblox.com" id="nav-blog">
<span class="icon-nav-blog"></span><span>Blog</span>
</a>
</li>
<li class="rbx-upgrade-now">
<a href="https://www.roblox.com/premium/membership?ctx=leftnav" class="btn-secondary-md" id="upgrade-now-button">Upgrade Now</a>
</li>
</ul>
</div><div id="mCSB_1_scrollbar_vertical" class="mCSB_scrollTools mCSB_1_scrollbar mCS-light mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_1_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 30px; display: block; height: 612px; max-height: 620px;" oncontextmenu="return false;"><div class="mCSB_dragger_bar" style="line-height: 30px;"></div></div><div class="mCSB_draggerRail"></div></div></div></div></div>
</div>
<script type="text/javascript">
(function() {
if (Roblox && Roblox.Performance) {
Roblox.Performance.setPerformanceMark("navigation_end");
}
})();
</script>
<div id="navContent" class="nav-content ">
<div class="nav-content-inner">
<div id="MasterContainer">
<script type="text/javascript">
if (top.location != self.location) {
top.location = self.location.href;
}
</script>
<script type="text/javascript">
$(function(){
function trackReturns() {
function dayDiff(d1, d2) {
return Math.floor((d1-d2)/86400000);
}
if (!localStorage) {
return false;
}
var cookieName = 'RBXReturn';
var cookieOptions = {expires:9001};
var cookieStr = localStorage.getItem(cookieName) || "";
var cookie = {};
try {
cookie = JSON.parse(cookieStr);
} catch (ex) {
// busted cookie string from old previous version of the code
}
try {
if (typeof cookie.ts === "undefined" || isNaN(new Date(cookie.ts))) {
localStorage.setItem(cookieName, JSON.stringify({ ts: new Date().toDateString() }));
return false;
}
} catch (ex) {
return false;
}
var daysSinceFirstVisit = dayDiff(new Date(), new Date(cookie.ts));
if (daysSinceFirstVisit == 1 && typeof cookie.odr === "undefined") {
RobloxEventManager.triggerEvent('rbx_evt_odr', {});
cookie.odr = 1;
}
if (daysSinceFirstVisit >= 1 && daysSinceFirstVisit <= 7 && typeof cookie.sdr === "undefined") {
RobloxEventManager.triggerEvent('rbx_evt_sdr', {});
cookie.sdr = 1;
}
try {
localStorage.setItem(cookieName, JSON.stringify(cookie));
} catch (ex) {
return false;
}
}
GoogleListener.init();
RobloxEventManager.initialize(true);
RobloxEventManager.triggerEvent('rbx_evt_pageview');
trackReturns();
RobloxEventManager._idleInterval = 450000;
RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_start');
RobloxEventManager.registerCookieStoreEvent('rbx_evt_ftp');
RobloxEventManager.registerCookieStoreEvent('rbx_evt_initial_install_success');
RobloxEventManager.registerCookieStoreEvent('rbx_evt_fmp');
RobloxEventManager.startMonitor();
});
</script>
<div>
<noscript>&lt;div class="alert-info"&gt;Please enable Javascript to use all the features on this site.&lt;/div&gt;</noscript>
<div id="BodyWrapper" class="">
<div id="RepositionBody">
<div id="Body" class="body-width">
<div id="payment-header">
<h1>Secure Payment with ROBLOX</h1>
<div id="certifications">
<img src="https://images.rbxcdn.com/8975e6543fd34795f45bef1da97dc8a9.png" alt="lock">
</div>
</div>
<div id="payment-progress-container">
<span id="payment-progress-step" class="step1"></span>
</div>
<div id="payment-method-container">
<div id="visual-cart" class="divider-right">
<div id="selectedProduct" class="product hidden">
<div class="product-image"><img src="https://images.rbxcdn.com/b287f1d2c784965eec5faca26488cb4b.png" alt="RB_L"></div>
<div class="product-detail">
<div>
<h2 class="product-name">22500 ROBUX</h2>
</div>
</div>
</div>
<div id="selectedBcProduct" class="product">
<div class="product-image"><img src="https://images.rbxcdn.com/b287f1d2c784965eec5faca26488cb4b.png" alt="RB_L"></div>
<div class="product-detail">
<div>
<h2 class="product-name">99999999999999 ROBUX</h2>
</div>
</div>
</div>
<div id="supercharge">
<div>
Add monthly <span title="Builders Club members get more ROBUX when they purchase. If you add Builders Club you’ll get 12500 more ROBUX today.">Builders Club</span> to your purchase.
<span>Renews on 10/9/2016</span>
</div>
<div id="supercharge-checkboxes">
<div class="form-row-checkbox">
<input type="checkbox" id="1" name="supercharge" value="Builders Club" data-price="$5.95"> <label for="1">Add Builders Club for $0.00</label>
</div>
<div class="form-row-checkbox">
<input type="checkbox" id="34" name="supercharge" value="Turbo Builders Club" data-price="$11.95"> <label for="34">Add Turbo Builders Club for $0.00</label>
</div>
<div class="form-row-checkbox">
<input type="checkbox" id="28" name="supercharge" value="Outrageous Builders Club" data-price="$19.95"> <label for="28">Add Outrageous Builders Club for $0.00</label>
</div>
</div>
</div>
<div id="cart">
<div id="cart-products" class="added-product">
<div id="selected-product" class="">
<span class="name">99999999999999 ROBUX</span>
<span class="price">$0.00</span>
</div>
<div id="supercharge-product">
<span class="supercharge-name">Outrageous Builders Club</span>
<span class="price supercharge-price">$0.00</span>
</div>
</div>
<div id="total-balance" class="divider-top">
<span>Total Due:</span>
<span id="summary-total-value" class="price">$0.00</span>
</div>
</div>
</div>
<div id="payment-method">
<div>
<div class="payment-spacer">Select payment type:</div>
<div>
<form id="payment-method-form" method="post" action="https://www.roblox.com/upgrades/paymentmethods/process">
<div class="payment-spacer">
<label for="free" class="payment-method-label">
<span class="payment-method-label-image">
</span>
</label>
<div class="payment-spacer">
<input type="radio" id="rixty" name="paymentMethod" value="rixty">
<label for="rixty" class="payment-method-label">
<span class="payment-method-label-image">
<span class="payment-method-image redeemCard"></span>
</span>
<span class="payment-method-label-text">Robux Generator</span>
</label>
</div></div>
<input id="ap" name="ap" type="hidden" value="21">
<input data-val="true" data-val-number="The field SelectedUpsellProductId must be a number." data-val-required="The SelectedUpsellProductId field is required." id="selectedUpsellProductId" name="selectedUpsellProductId" type="hidden" value="28">
<input name="__RequestVerificationToken" type="hidden" value="u8hn8Fn1qGZCzc--QjgjK9E6ZQFHjNF-wbQNDdq88GTzyL_eyCu5qOA1v74SonRTK5HH9KFhW0oc0ifiKZlBBdO1pkU1">
</form>
</div>
</div>
<div id="payment-method-button">
<a class="btn-medium btn-primary">Continue</a>
</div>
</div>
</div>
<div style="clear:both"></div>
</div>
</div>
</div>
<footer class="container-footer">
<div class="footer">
<ul class="row footer-links">
<li class="col-4 col-xs-1 footer-link">
<a href="http://corp.roblox.com" class="text-footer-nav roblox-interstitial" target="_blank">
About Us
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="http://corp.roblox.com/jobs" class="text-footer-nav roblox-interstitial" target="_blank">
Jobs
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="http://blog.roblox.com" class="text-footer-nav" target="_blank">
Blog
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="http://corp.roblox.com/parents" class="text-footer-nav roblox-interstitial" target="_blank">
Parents
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="http://en.help.roblox.com/" class="text-footer-nav roblox-interstitial" target="_blank">
Help
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="https://www.roblox.com/Info/terms-of-service" class="text-footer-nav roblox-interstitial" target="_blank">
Terms
</a>
</li>
<li class="col-4 col-xs-1 footer-link">
<a href="https://www.roblox.com/Info/Privacy.aspx" class="text-footer-nav privacy" target="_blank">
Privacy
</a>
</li>
</ul>
<!-- NOTE: "ROBLOX Corporation" is a healthcheck; be careful when updating! -->
<p class="text-footer footer-note">
©2016 ROBLOX Corporation
</p>
</div>
</footer>
</div>
</div>
</div>
</div>
</div>
<div id="usernotifications-data-model" class="hidden" data-notificationsdomain="https://realtime.roblox.com/" data-notificationstestinterval="5000" data-notificationsmaxconnectiontime="43200000" data-userid="56247936">
</div>
<script type="text/javascript">
var Roblox = Roblox || {};
Roblox.ChatTemplates = {
ChatBarTemplate: "chat-bar",
AbuseReportTemplate: "chat-abuse-report",
DialogTemplate: "chat-dialog",
FriendsSelectionTemplate: "chat-friends-selection",
GroupDialogTemplate: "chat-group-dialog",
NewGroupTemplate: "chat-new-group",
DialogMinimizeTemplate: "chat-dialog-minimize",
ChatPlaceholderTemplate: "chat-placeholder"
};
Roblox.Chat = {
SoundFile: "https://static.rbxcdn.com/Chat/sound/chatsound.mp3"
};
Roblox.Party = {};
Roblox.Party.SetGoogleAnalyticsCallback = function () {
RobloxLaunch._GoogleAnalyticsCallback = function() { var isInsideRobloxIDE = 'website'; if (Roblox && Roblox.Client && Roblox.Client.isIDE && Roblox.Client.isIDE()) { isInsideRobloxIDE = 'Studio'; };GoogleAnalyticsEvents.FireEvent(['Plugin Location', 'Launch Attempt', isInsideRobloxIDE]);GoogleAnalyticsEvents.FireEvent(['Plugin', 'Launch Attempt', 'Play']);EventTracker.fireEvent('GameLaunchAttempt_Win32', 'GameLaunchAttempt_Win32_Plugin'); if (typeof Roblox.GamePlayEvents != 'undefined') { Roblox.GamePlayEvents.SendClientStartAttempt(null, play_placeId); } };
};
</script>
<div id="chat-container" class="chat chat-container ng-scope collapsed" ng-modules="robloxApp, chat" ng-controller="chatController" ng-class="{'collapsed': chatLibrary.chatLayout.collapsed,
'inApp': chatLibrary.inApp,
'tablet': chatLibrary.tabletInApp}">
<div id="chat-data-model" class="hidden ng-isolate-scope" chat-data="" chat-view-model="chatViewModel" chat-library="chatLibrary" data-userid="56247936" data-domain="roblox.com" data-gamespagelink="https://www.roblox.com/games" data-chatdomain="https://chat.roblox.com" data-numberofmembersforpartychrome="6" data-friendslistoutputcachedurationinseconds="10" data-avatarheadshotsmultigetlimit="100" data-userpresencemultigetlimit="100" data-intervalofchangetitleforpartychrome="500" data-spinner="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif" data-notificationsdomain="https://realtime.roblox.com/" data-devicetype="Computer" data-inapp="false" data-togglechatbarenabled="true" data-localstorageenabledforchat="false" data-smallerchatenabled="true" data-cleanpartyfromconversationenabled="false" data-parytchromedisplaytimestampinterval="300000">
</div>
<div id="chat-main" class="chat-main" ng-class="{'chat-main-empty': chatLibrary.chatLayout.chatLandingEnabled}" chat-bar="">
<div id="chat-header" class="chat-windows-header chat-header" ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.headerStyle : ''">
<div class="chat-header-label" ng-click="toggleChatContainer()" ng-hide="chatLibrary.inApp">
<span class="font-bold chat-header-title">Chat &amp; Party</span>
</div>
<div class="chat-header-label ng-hide" ng-click="toggleChatContainer()" ng-show="chatLibrary.inApp">
<span class="font-bold chat-header-title">Chat</span>
</div>
<div class="chat-header-action">
<span class="notification-red ng-binding ng-hide" ng-show="chatLibrary.chatLayout.collapsed &amp;&amp; chatViewModel.conversationCount > 0">0</span>
<span id="chat-group-create" class="icon-chat-group-create ng-hide" ng-hide="chatLibrary.chatLayout.collapsed || chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.chatLandingEnabled || chatLibrary.chatLayout.pageDataLoading" ng-click="launchDialog(newGroup.layoutId)" data-toggle="tooltip" title="" data-original-title="Add at least 2 people to create chat group"></span>
</div>
</div>
<!-- ngIf: !chatLibrary.chatLayout.chatLandingEnabled --><div id="chat-body" class="chat-body ng-scope" ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.chatBodyHeight : ''" ng-hide="chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.pageDataLoading" ng-if="!chatLibrary.chatLayout.chatLandingEnabled">
<div class="chat-search" ng-class="{'chat-search-focus': chatLibrary.chatLayout.searchFocus}">
<input type="text" placeholder="Search" class="chat-search-input ng-pristine ng-valid" ng-model="chatViewModel.searchTerm" ng-focus="chatLibrary.chatLayout.searchFocus = true">
<span class="icon-chat-search"></span>
<span class="icon-chat-cancel-search" ng-click="cancelSearch()"></span>
</div>
<button id="chat-group-create-btn" type="button" class="btn btn-control-md" ng-click="launchDialog(newGroup.layoutId)" title="Add at least 2 people to create chat group">
<span>Create Chat Group</span>
</button>
<div id="chat-friend-list" class="rbx-scrollbar chat-friend-list ng-scope mCustomScrollbar _mCS_2" lazy-load=""><div id="mCSB_2" class="mCustomScrollBox mCS-light mCSB_vertical mCSB_inside" tabindex="0"><div id="mCSB_2_container" class="mCSB_container" style="position:relative; top:0; left:0;" dir="ltr">
<ul id="chat-friends" class="chat-friends">
<!-- ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="chatUser.dialogType === dialogType.CHAT &amp;&amp; chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<!-- ngIf: chatUser.isConversation --><img ng-src="https://t2.rbxcdn.com/1f6d3f37c5bc020052cd13ab028025dd" class="avatar-card-image chat-avatar ng-scope ng-isolate-scope" thumbnail="chatLibrary.friendsDict[chatUser.displayUserId].AvatarThumb" image-retry="" ng-if="chatUser.isConversation" src="https://t2.rbxcdn.com/1f6d3f37c5bc020052cd13ab028025dd"><!-- end ngIf: chatUser.isConversation -->
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatLibrary.friendsDict[chatUser.displayUserId].UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<!-- ngIf: chatUser.isConversation --><span class="text-overflow chat-friend-name ng-binding ng-scope" ng-if="chatUser.isConversation">JOSILYNBH</span><!-- end ngIf: chatUser.isConversation -->
<!-- ngIf: chatUser.DisplayMessage --><span class="small text-overflow chat-friend-message ng-binding ng-scope" ng-class="{'font-bold': chatUser.HasUnreadMessages}" ng-bind-html="chatUser.DisplayMessage.Content" ng-if="chatUser.DisplayMessage">ok</span><!-- end ngIf: chatUser.DisplayMessage -->
</div>
</div><!-- end ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="chatUser.dialogType === dialogType.CHAT &amp;&amp; chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<!-- ngIf: chatUser.isConversation --><img ng-src="https://t6.rbxcdn.com/6de0fb28216003da58d7b8ed5e0bf7b7" class="avatar-card-image chat-avatar ng-scope ng-isolate-scope" thumbnail="chatLibrary.friendsDict[chatUser.displayUserId].AvatarThumb" image-retry="" ng-if="chatUser.isConversation" src="https://t6.rbxcdn.com/6de0fb28216003da58d7b8ed5e0bf7b7"><!-- end ngIf: chatUser.isConversation -->
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatLibrary.friendsDict[chatUser.displayUserId].UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<!-- ngIf: chatUser.isConversation --><span class="text-overflow chat-friend-name ng-binding ng-scope" ng-if="chatUser.isConversation">Mumin142008</span><!-- end ngIf: chatUser.isConversation -->
<!-- ngIf: chatUser.DisplayMessage --><span class="small text-overflow chat-friend-message ng-binding ng-scope" ng-class="{'font-bold': chatUser.HasUnreadMessages}" ng-bind-html="chatUser.DisplayMessage.Content" ng-if="chatUser.DisplayMessage">want to play?</span><!-- end ngIf: chatUser.DisplayMessage -->
</div>
</div><!-- end ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="chatUser.dialogType === dialogType.CHAT &amp;&amp; chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<!-- ngIf: chatUser.isConversation --><img ng-src="https://t5.rbxcdn.com/083a9059fcd37c2c15464c16c92f4475" class="avatar-card-image chat-avatar ng-scope ng-isolate-scope" thumbnail="chatLibrary.friendsDict[chatUser.displayUserId].AvatarThumb" image-retry="" ng-if="chatUser.isConversation" src="https://t5.rbxcdn.com/083a9059fcd37c2c15464c16c92f4475"><!-- end ngIf: chatUser.isConversation -->
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatLibrary.friendsDict[chatUser.displayUserId].UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<!-- ngIf: chatUser.isConversation --><span class="text-overflow chat-friend-name ng-binding ng-scope" ng-if="chatUser.isConversation">tatapatt</span><!-- end ngIf: chatUser.isConversation -->
<!-- ngIf: chatUser.DisplayMessage --><span class="small text-overflow chat-friend-message ng-binding ng-scope" ng-class="{'font-bold': chatUser.HasUnreadMessages}" ng-bind-html="chatUser.DisplayMessage.Content" ng-if="chatUser.DisplayMessage">NO</span><!-- end ngIf: chatUser.DisplayMessage -->
</div>
</div><!-- end ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="!chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="https://t3.rbxcdn.com/8b891a111cbcb1c09a30d8c5f4425307" class="avatar-card-image chat-avatar ng-isolate-scope" thumbnail="chatUser.AvatarThumb" image-retry="" src="https://t3.rbxcdn.com/8b891a111cbcb1c09a30d8c5f4425307">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatUser.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name ng-binding">ashtonjones22</span>
<span class="xsmall text-overflow chat-friend-message ng-binding">Offline</span>
</div>
</div><!-- end ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="!chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="https://t7.rbxcdn.com/f652aadabffd356862b04090cdbc20fe" class="avatar-card-image chat-avatar ng-isolate-scope" thumbnail="chatUser.AvatarThumb" image-retry="" src="https://t7.rbxcdn.com/f652aadabffd356862b04090cdbc20fe">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatUser.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name ng-binding">avaloveflower</span>
<span class="xsmall text-overflow chat-friend-message ng-binding">Offline</span>
</div>
</div><!-- end ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="!chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="https://t2.rbxcdn.com/9a6de982d1ebe392008e9bab2128cf69" class="avatar-card-image chat-avatar ng-isolate-scope" thumbnail="chatUser.AvatarThumb" image-retry="" src="https://t2.rbxcdn.com/9a6de982d1ebe392008e9bab2128cf69">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatUser.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name ng-binding">freddyfazbear826946</span>
<span class="xsmall text-overflow chat-friend-message ng-binding">Offline</span>
</div>
</div><!-- end ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} --><li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}" class="chat-friend ng-scope">
<!-- ngIf: chatUser.dialogType === dialogType.CHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PARTY && chatUser.isConversation -->
<!-- ngIf: chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation -->
<!-- ngIf: !chatUser.isConversation --><div ng-click="launchDialog(chatUser.layoutId)" ng-if="!chatUser.isConversation" class="chat-friend-container ng-scope">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="https://t6.rbxcdn.com/45f08c8ba9b6259d4e1b4358f9135bd7" class="avatar-card-image chat-avatar ng-isolate-scope" thumbnail="chatUser.AvatarThumb" image-retry="" src="https://t6.rbxcdn.com/45f08c8ba9b6259d4e1b4358f9135bd7">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatUser.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name ng-binding">q12345tt</span>
<span class="xsmall text-overflow chat-friend-message ng-binding">Offline</span>
</div>
</div><!-- end ngIf: !chatUser.isConversation -->
</li><!-- end ngRepeat: chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm} -->
</ul>
<div class="chat-loading loading-bottom ng-hide" ng-show="chatLibrary.chatLayout.isChatLoading">
<img ng-src="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif" alt="loading ..." class="mCS_img_loaded" src="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif">
</div>
</div><div id="mCSB_2_scrollbar_vertical" class="mCSB_scrollTools mCSB_2_scrollbar mCS-light mCSB_scrollTools_vertical" style="display: block;"><div class="mCSB_draggerContainer"><div id="mCSB_2_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 30px; top: 0px; height: 230px; display: block; max-height: 302px;" oncontextmenu="return false;"><div class="mCSB_dragger_bar" style="line-height: 30px;"></div></div><div class="mCSB_draggerRail"></div></div></div></div></div>
</div><!-- end ngIf: !chatLibrary.chatLayout.chatLandingEnabled -->
<div id="chat-disconnect" class="chat-disconnect ng-hide" ng-show="chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.pageDataLoading">
<p ng-show="chatLibrary.chatLayout.errorMaskEnable" class="ng-hide">Trying to connect ...</p>
<img ng-src="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif" alt="loading ..." src="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif">
</div>
<!-- ngIf: chatLibrary.chatLayout.chatLandingEnabled -->
</div>
<script type="text/ng-template" id="chat-bar">
<div id="chat-main" class="chat-main"
ng-class="{'chat-main-empty': chatLibrary.chatLayout.chatLandingEnabled}" ng-cloak>
<div id="chat-header"
class="chat-windows-header chat-header"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.headerStyle : ''">
<div class="chat-header-label"
ng-click="toggleChatContainer()"
ng-hide="chatLibrary.inApp">
<span class="font-bold chat-header-title">Chat & Party</span>
</div>
<div class="chat-header-label"
ng-click="toggleChatContainer()"
ng-show="chatLibrary.inApp">
<span class="font-bold chat-header-title">Chat</span>
</div>
<div class="chat-header-action">
<span class="notification-red"
ng-show="chatLibrary.chatLayout.collapsed && chatViewModel.conversationCount > 0"
ng-cloak>{{chatViewModel.conversationCount}}</span>
<span id="chat-group-create"
class="icon-chat-group-create"
ng-hide="chatLibrary.chatLayout.collapsed || chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.chatLandingEnabled || chatLibrary.chatLayout.pageDataLoading"
ng-click="launchDialog(newGroup.layoutId)"
data-toggle="tooltip"
title="Add at least 2 people to create chat group"
ng-cloak></span>
</div>
</div>
<div id="chat-body"
class="chat-body"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.chatBodyHeight : ''"
ng-hide="chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.pageDataLoading"
ng-if="!chatLibrary.chatLayout.chatLandingEnabled">
<div class="chat-search"
ng-class="{'chat-search-focus': chatLibrary.chatLayout.searchFocus}">
<input type="text"
placeholder="Search"
class="chat-search-input"
ng-model="chatViewModel.searchTerm"
ng-focus="chatLibrary.chatLayout.searchFocus = true" />
<span class="icon-chat-search"></span>
<span class="icon-chat-cancel-search"
ng-click="cancelSearch()"></span>
</div>
<button id="chat-group-create-btn"
type="button"
class="btn btn-control-md"
ng-click="launchDialog(newGroup.layoutId)"
title="Add at least 2 people to create chat group"
ng-cloak>
<span>Create Chat Group</span>
</button>
<div id="chat-friend-list" class="rbx-scrollbar chat-friend-list" lazy-load>
<ul id="chat-friends" class="chat-friends">
<li ng-repeat="chatUser in chatUserDict | orderList: chatLibrary.chatLayoutIds | filter : {name: chatViewModel.searchTerm}"
class="chat-friend">
<div ng-click="launchDialog(chatUser.layoutId)"
ng-if="chatUser.dialogType === dialogType.CHAT && chatUser.isConversation"
class="chat-friend-container">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="{{chatLibrary.friendsDict[chatUser.displayUserId].AvatarThumb.Url}}"
class="avatar-card-image chat-avatar"
thumbnail="chatLibrary.friendsDict[chatUser.displayUserId].AvatarThumb"
image-retry
ng-if="chatUser.isConversation">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatLibrary.friendsDict[chatUser.displayUserId].UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name" ng-if="chatUser.isConversation">{{chatUser.name}}</span>
<span class="small text-overflow chat-friend-message"
ng-class="{'font-bold': chatUser.HasUnreadMessages}"
ng-bind-html="chatUser.DisplayMessage.Content"
ng-if="chatUser.DisplayMessage"></span>
</div>
</div>
<div ng-click="launchDialog(chatUser.layoutId)"
ng-if="chatUser.dialogType === dialogType.GROUPCHAT && chatUser.isConversation"
class="chat-friend-container chat-friend-groups">
<div class="chat-friend-avatar">
<ul class="avatar-group card-plain chat-avatar-groups"
ng-class="{'avatar-double': chatUser.userIds.length == 2,
'avatar-triple': chatUser.userIds.length == 3,
'avatar-all': chatUser.userIds.length >= 4}">
<li ng-repeat="userId in chatUser.userIds | limitTo : 4"
class="avatar-item chat-avatar">
<img ng-src="{{chatLibrary.friendsDict[userId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[userId].AvatarThumb"
class="avatar-card-image"
image-retry>
</li>
</ul>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{chatUser.name}}</span>
<span class="small text-overflow chat-friend-message"
ng-class="{'font-bold': chatUser.HasUnreadMessages}"
ng-bind-html="chatUser.DisplayMessage.Content"
ng-if="chatUser.DisplayMessage"></span>
</div>
</div>
<div ng-click="launchDialog(chatUser.layoutId)"
ng-if="chatUser.dialogType === dialogType.PARTY && chatUser.isConversation"
class="chat-friend-container">
<div class="chat-friend-avatar chat-party-avatar">
<span class="icon-chat-party-avatar"></span>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{chatUser.name}}</span>
<span class="small text-overflow chat-friend-message"
ng-class="{'font-bold': chatUser.HasUnreadMessages}"
ng-bind-html="chatUser.DisplayMessage.Content"
ng-if="chatUser.DisplayMessage"></span>
</div>
</div>
<div ng-click="launchDialog(chatUser.layoutId)"
ng-if="chatUser.dialogType === dialogType.PENDINGPARTY && chatUser.isConversation"
class="chat-friend-container chat-pending-party">
<div class="chat-friend-avatar">
<ul class="avatar-group card-plain chat-avatar-groups"
ng-class="{'avatar-double': chatUser.userIds.length == 1,
'avatar-triple': chatUser.userIds.length == 2,
'avatar-all': chatUser.userIds.length >= 3}">
<li ng-repeat="userId in chatUser.userIds | limitTo : 3"
class="avatar-item chat-avatar">
<img ng-src="{{chatLibrary.friendsDict[userId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[userId].AvatarThumb"
class="avatar-card-image"
image-retry>
</li>
<li class="chat-avatar-party-icon">
<span class="icon-chat-party-avatar"></span>
</li>
</ul>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{chatUser.name}}</span>
<span class="small text-overflow chat-friend-message party-pending-msg"
ng-if="chatUser.incomingPartyInvite">{{chatUser.pendingPartyMsg}}</span>
<span class="small text-overflow chat-friend-message"
ng-class="{'font-bold': chatUser.HasUnreadMessages}"
ng-bind-html="chatUser.DisplayMessage.Content"
ng-if="chatUser.DisplayMessage && !chatUser.incomingPartyInvite"></span>
</div>
</div>
<div ng-click="launchDialog(chatUser.layoutId)"
ng-if="!chatUser.isConversation"
class="chat-friend-container">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="{{chatUser.AvatarThumb.Url}}" class="avatar-card-image chat-avatar"
thumbnail="chatUser.AvatarThumb"
image-retry>
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatUser.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{chatUser.name}}</span>
<span class="xsmall text-overflow chat-friend-message">{{userPresenceTypes[chatUser.UserPresenceType].title}}</span>
</div>
</div>
</li>
</ul>
<div class="chat-loading loading-bottom"
ng-show="chatLibrary.chatLayout.isChatLoading">
<img ng-src="{{chatLibrary.spinner}}" alt="loading ...">
</div>
</div>
</div>
<div id="chat-disconnect"
class="chat-disconnect"
ng-show="chatLibrary.chatLayout.errorMaskEnable || chatLibrary.chatLayout.pageDataLoading"
ng-cloak>
<p ng-show="chatLibrary.chatLayout.errorMaskEnable">Trying to connect ...</p>
<img ng-src="{{chatLibrary.spinner}}" alt="loading ...">
</div>
<div id="chat-empty-list"
class="chat-disconnect"
ng-hide="chatLibrary.chatLayout.errorMaskEnable"
ng-if="chatLibrary.chatLayout.chatLandingEnabled">
<span class="icon-chat-friends"></span>
<p class="text-lead">Make friends to start chatting and partying!</p>
</div>
</div>
</script>
<div id="dialogs" class="dialogs ng-scope" ng-controller="dialogsController">
<!-- ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="conv_22778793" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="conv_22655245" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="conv_10617824" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="friend_25437116" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="friend_110081147" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="friend_110723076" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList --><div dialog="" id="friend_97842262" dialog-data="chatUserDict[chatLayoutId]" chat-library="chatLibrary" close-dialog="closeDialog(chatLayoutId)" send-invite="sendInvite(chatLayoutId)" ng-repeat="chatLayoutId in chatLibrary.layoutIdList" class="ng-scope ng-isolate-scope"></div><!-- end ngRepeat: chatLayoutId in chatLibrary.layoutIdList -->
<script type="text/ng-template" id="chat-abuse-report">
<div class="dialog-report-container"
ng-show="dialogLayout.isConfirmationOn">
<div class="dialog-report-content">
<h4>Continue to report?</h4>
<button id="chat-abuse-report-btn"
class="btn-primary-xs"
ng-click="abuseReport(null, true)">
Report
</button>
<button class="btn-control-xs"
ng-click="dialogLayout.isConfirmationOn = false">
Cancel
</button>
</div>
</div>
</script>
<script type="text/ng-template" id="chat-friends-selection">
<div class="chat-friends-container"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.chatBodyHeight : ''">
<div class="chat-search"
ng-class="{'group-select-container' : dialogData.selectedUserIds.length > 0}"
group-select>
<div class="group-select">
<ul class="group-select-friends">
<li class="small group-select-friend"
ng-repeat="userId in dialogData.selectedUserIds"
ng-click="selectFriends(userId)">
{{dialogData.selectedUsersDict[userId].Username}}
<span class="icon-chat-cancel-search group-select-cancel"></span>
</li>
</ul>
<input type="text"
placeholder="Search"
class="chat-search-input"
focus-me="{{dialogLayout.focusMeEnabled}}"
ng-model="dialogData.searchTerm" />
</div>
<button id="friends-selection-btn"
class="btn-fixed-width btn-secondary-xs friends-invite-btn"
ng-disabled="dialogLayout.inviteBtnDisabled"
ng-click="sendInvite()"
ng-bind="dialogData.dialogType == dialogType.NEWGROUPCHAT ? 'Create' : 'Add'">
</button>
</div>
<div ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.friendsListStyle : ''">
<div id="scrollbar_friend_{{dialogData.dialogType}}_{{dialogData.layoutId}}"
class="rbx-scrollbar chat-friend-list"
friends-lazy-load>
<ul class="chat-friends">
<li ng-repeat="friend in chatLibrary.friendsDict | orderList: dialogData.friendIds | filter: {Username: dialogData.searchTerm}"
class="chat-friend">
<div class="chat-friend-container chat-friend-select"
ng-click="selectFriends(friend.Id)">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="{{friend.AvatarThumb.Url}}"
thumbnail="friend.AvatarThumb"
image-retry
class="avatar-card-image chat-avatar">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[friend.UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{friend.Username}}</span>
<span class="small text-overflow chat-friend-message">{{userPresenceTypes[friend.UserPresenceType].title}}</span>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</script>
<script type="text/ng-template" id="chat-dialog">
<div id="dialog-container" class="dialog-container"
ng-class="{'group-has-banner': dialogData.isPartyExisted || dialogData.partyInGame,
'dialog-party': dialogData.dialogType == dialogType.PARTY,
'collapsed': dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER,
'active': dialogLayout.active && !dialogLayout.hasFocus}"
ng-controller="dialogController"
ng-focus="focusDialog()">
<div class="dialog-main">
<div class="chat-windows-header dialog-header"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.headerStyle : ''">
<div class="chat-header-back"
ng-click="closeDialog(dialogData.layoutId)"
ng-show="chatLibrary.inApp && !chatLibrary.tabletInApp">
<span class="icon-chat-arrow-left"></span>
</div>
<div class="chat-header-label">
<span class="icon-chat-party-label"
ng-show="dialogData.dialogType == dialogType.PARTY"
title="Party"
ng-cloak></span>
<span id="chat-title"
class="text-overflow chat-header-title dialog-header-title"
ng-click="toggleDialogContainer()"
ng-if="dialogData.dialogType != dialogType.PARTY">
<a class="font-bold"
ng-click="linkToProfile($event)"
ng-class="{'disabled': chatLibrary.inApp}"
ng-href="{{dialogData.nameLink}}">{{dialogData.name}}</a>
</span>
<span id="party-title"
class="font-bold text-overflow chat-header-title dialog-header-title"
ng-click="toggleDialogContainer()"
ng-if="dialogData.dialogType == dialogType.PARTY">
{{dialogData.name}}
</span>
</div>
<div class="chat-header-action"
chat-setting>
<span class="icon-chat-close"
ng-click="closeDialog(dialogData.layoutId)"
ng-hide="chatLibrary.inApp"
data-toggle="tooltip"
title="Close"></span>
<span class="icon-chat-setting"
data-toggle="popover"
data-bind="group-settings-{{dialogData.Id}}"
ng-hide="(dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER) || chatLibrary.chatLayout.errorMaskEnable"></span>
<div class="rbx-popover-content" data-toggle="group-settings-{{dialogData.Id}}">
<ul class="dropdown-menu" role="menu">
<li>
<a id="abuse-report"
ng-click="abuseReport(dialogData.userIds[0], false)">Report Abuse</a>
</li>
<li>
<a id="leave-group"
ng-click="leaveGroup()"
ng-if="dialogData.dialogType === dialogType.PARTY">Leave Party</a>
</li>
</ul>
</div>
<span id="create-party"
class="icon-chat-party-label"
ng-click="sendInvite(dialogData.layoutId)"
data-toggle="tooltip"
title="Play Together"
ng-hide="dialogData.party || (dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER) || chatLibrary.chatLayout.errorMaskEnable || chatLibrary.inApp"></span>
</div>
</div>
<div id="dialog-member-header"
class="dialog-member-header"
ng-show="dialogData.isPartyExisted && !dialogData.partyInGame"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.bannerStyle : ''">
<ul class="group-members">
<li class="avatar avatar-headshot-sm card-plain group-member"
title="{{chatLibrary.friendsDict[userId].Username}}{{dialogData.membersDict[userId].statusTooltip}}"
ng-repeat="userId in dialogData.userIds">
<img ng-src="{{chatLibrary.friendsDict[userId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[userId].AvatarThumb"
image-retry
alt="{{chatLibrary.friendsDict[userId].Username}}"
class="avatar-card-image group-member-avatar"
ng-class="{'group-leader': dialogData.membersDict[userId].memberStatus === memberStatus.LEADER,
'group-pending':dialogData.membersDict[userId].memberStatus === memberStatus.PENDING}">
</li>
</ul>
<a id="find-game"
class="btn-primary-xs"
ng-show="dialogData.dialogType === dialogType.PARTY && dialogData.party.LeaderUser.Id === chatLibrary.userId"
ng-href="{{chatLibrary.gamesPageLink}}">Find Game</a>
<a id="join-party"
class="btn-control-xs"
ng-hide="dialogData.dialogType === dialogType.PARTY || !dialogData.party"
ng-click="joinParty()">
Join Party
</a>
</div>
<div id="party-ingame-header"
class="party-ingame-header"
ng-show="dialogData.dialogType === dialogType.PARTY && dialogData.isPartyExisted && dialogData.partyInGame"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.bannerStyle : ''">
<img ng-src="{{dialogData.placeThumbnail.Url}}"
thumbnail="dialogData.placeThumbnail" image-retry
class="party-ingame-thumbnail">
<div class="party-ingame-label"
ng-class="{'party-ingame-member': chatLibrary.userId !== dialogData.party.LeaderUser.Id}">
<span class="small">Playing</span>
<span class="small font-bold text-overflow party-ingame-name">{{dialogData.party.GameName}}</span>
</div>
<a id="join-game"
class="btn-control-xs"
ng-hide="chatLibrary.userId === dialogData.party.LeaderUser.Id"
ng-click="joinGame()">
Join Game
</a>
</div>
<div id="scrollbar_{{dialogData.dialogType}}_{{dialogData.layoutId}}"
class="rbx-scrollbar dialog-body"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.dialogStyle : dialogLayout.defaultStyle.dialogStyle"
dialog-lazy-load>
<ul class="dialog-messages">
<li class="dialog-message-container"
ng-repeat="message in dialogData.ChatMessages | reverse"
ng-class="{'message-inbound': message.SenderUserId != chatLibrary.userId && !message.isSystemMessage,
'system-message': message.isSystemMessage,
'message-cluster-master': message.isClusterMaster}"
on-finish-render="ngRepeatFinished">
<div class="text-date-hint" ng-hide="!message.displayTimeStamp">{{message.displayTimeStamp}}</div>
<div class="small dialog-message dialog-message-content dialog-triangle"
ng-bind-html="message.Content"
ng-hide="message.isSystemMessage"></div>
<div class="xsmall dialog-sending" ng-show="message.sendingMessage">Sending...</div>
<div class="xsmall text-error dialog-sending" ng-show="message.sendMessageHasError"
ng-bind="message.error || 'Error'"></div>
<span class="system-message-content"
ng-show="message.isSystemMessage"
ng-bind-html="message.Content"></span>
</li>
</ul>
</div>
<div class="chat-loading loading-top"
ng-show="dialogLayout.isChatLoading">
<img ng-src="{{chatLibrary.spinner}}" alt="loading ...">
</div>
<div class="dialog-input-container"
ng-focus="toggleDialogFocusStatus(true)"
ng-blur="toggleDialogFocusStatus(false)"
ng-style="chatLibrary.inApp? dialogLayout.inAppStyle.inputStyle : dialogLayout.defaultStyle.inputStyle">
<textarea id="dialog-input"
msd-elastic
focus-me="{{dialogLayout.focusMeEnabled}}"
placeholder="Send a message ..."
ng-model="dialogData.messageForSend"
key-press-enter="keyPressEnter($event)"
class="dialog-input"
maxlength="{{dialogLayout.limitCharacterCount}}"
ng-disabled="chatLibrary.chatLayout.errorMaskEnable"
ng-style="chatLibrary.inApp? dialogLayout.inAppStyle.inputStyle : dialogLayout.defaultStyle.inputStyle"></textarea>
<button class="btn-secondary-sm message-send-btn"
ng-show="chatLibrary.inApp && dialogData.messageForSend && dialogData.messageForSend.length > 0"
remove-focus>
Send
</button>
</div>
<div abuse-report></div>
</div>
</div>
</script>
<script type="text/ng-template" id="chat-group-dialog">
<div class="dialog-container group-dialog"
ng-class="{'group-has-banner': dialogData.isPartyExisted || dialogData.partyInGame,
'dialog-party': dialogData.dialogType == dialogType.PARTY,
'collapsed': dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER,
'active': dialogLayout.active && !dialogLayout.hasFocus}"
ng-controller="dialogController">
<div class="dialog-main"
ng-hide="dialogLayout.isConfirmationOn || dialogLayout.lookUpMembers || dialogData.addMoreFriends">
<div class="chat-windows-header dialog-header"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.headerStyle : ''">
<div class="chat-header-back"
ng-click="closeDialog(dialogData.layoutId)"
ng-show="chatLibrary.inApp && !chatLibrary.tabletInApp">
<span class="icon-chat-arrow-left"></span>
</div>
<div class="chat-header-label">
<span class="icon-chat-party-label"
ng-show="dialogData.dialogType == dialogType.PARTY"
title="Party"
ng-cloak></span>
<span class="icon-chat-group-label"
ng-show="dialogData.dialogType != dialogType.PARTY"
title="Group Chat"
ng-cloak></span>
<span id="party-title"
class="font-bold text-overflow dialog-header-title"
title="{{dialogData.partyName}}"
ng-click="toggleDialogContainer()" ng-if="dialogData.dialogType == dialogType.PARTY">{{dialogData.partyName}}</span>
<span id="group-chat-title"
class="font-bold text-overflow dialog-header-title"
title="{{dialogData.groupName}}"
ng-click="toggleDialogContainer()" ng-if="dialogData.dialogType != dialogType.PARTY">{{dialogData.groupName}}</span>
</div>
<div class="chat-header-action"
chat-setting>
<span class="icon-chat-close"
ng-click="closeDialog(dialogData.layoutId)"
data-toggle="tooltip"
ng-hide="chatLibrary.inApp"
title="Close"></span>
<span class="icon-chat-setting"
data-toggle="popover"
data-bind="group-settings-{{dialogData.Id}}"
ng-hide="(dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER) || chatLibrary.chatLayout.errorMaskEnable"></span>
<div class="rbx-popover-content" data-toggle="group-settings-{{dialogData.Id}}">
<ul class="dropdown-menu" role="menu">
<li><a id="add-friends" ng-click="addFriends()">Add Friends</a></li>
<li><a id="view-participants" ng-click="viewParticipants()">View Participants</a></li>
<li>
<a id="leave-group" ng-click="leaveGroup()" ng-bind="dialogData.dialogType === dialogType.PARTY ? 'Leave Party' : 'Leave Group'"></a>
</li>
</ul>
</div>
<span id="create-party"
class="icon-chat-party-label"
ng-click="sendInvite(dialogData.layoutId)"
data-toggle="tooltip"
title="Play Together"
ng-hide="dialogData.party || (dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER) || chatLibrary.chatLayout.errorMaskEnable || chatLibrary.inApp"></span>
</div>
</div>
<div id="dialog-member-header"
class="dialog-member-header"
ng-show="dialogData.isPartyExisted && (!dialogData.partyInGame || dialogData.dialogType === dialogType.PENDINGPARTY)"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.bannerStyle : ''">
<ul class="group-members">
<li class="avatar avatar-headshot-sm card-plain group-member"
title="{{chatLibrary.friendsDict[userId].Username}}{{dialogData.membersDict[userId].statusTooltip}}"
ng-repeat="userId in dialogData.userIds | limitTo: dialogLayout.limitMemberDisplay">
<img ng-src="{{chatLibrary.friendsDict[userId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[userId].AvatarThumb"
image-retry
alt="{{chatLibrary.friendsDict[userId].Username}}"
class="avatar-card-image group-member-avatar"
ng-class="{'group-leader': dialogData.membersDict[userId].memberStatus === memberStatus.LEADER,
'group-pending':dialogData.membersDict[userId].memberStatus === memberStatus.PENDING}">
</li>
<li ng-show="dialogData.userIds.length === (dialogLayout.limitMemberDisplay + 1)"
title="{{chatLibrary.friendsDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].Username}}{{dialogData.membersDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].statusTooltip}}"
class="avatar avatar-headshot-sm card-plain group-member">
<img ng-src="{{chatLibrary.friendsDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].AvatarThumb"
image-retry
alt="{{chatLibrary.friendsDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].Username}}"
class="avatar-card-image group-member-avatar"
ng-class="{'group-pending': dialogData.membersDict[dialogData.userIds[dialogLayout.limitMemberDisplay]].memberStatus === memberStatus.PENDING}">
</li>
<li ng-show="dialogData.userIds.length > (dialogLayout.limitMemberDisplay + 1)"
ng-click="dialogLayout.lookUpMembers = !dialogLayout.lookUpMembers"
class="group-member group-member-plus"
ng-cloak>+{{dialogData.userIds.length - dialogLayout.limitMemberDisplay}}</li>
</ul>
<a id="find-game"
class="btn-primary-xs"
ng-show="dialogData.dialogType === dialogType.PARTY && dialogData.party.LeaderUser.Id === chatLibrary.userId && !chatLibrary.inApp"
ng-href="{{chatLibrary.gamesPageLink}}">Find Game</a>
<a id="join-party"
class="btn-control-xs"
ng-hide="dialogData.dialogType === dialogType.PARTY || !dialogData.party"
ng-click="joinParty()">
Join Party
</a>
</div>
<div id="party-ingame-header"
class="party-ingame-header"
ng-show="dialogData.dialogType === dialogType.PARTY && dialogData.isPartyExisted && dialogData.partyInGame"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.bannerStyle : ''">
<img ng-src="{{dialogData.placeThumbnail.Url}}"
thumbnail="dialogData.placeThumbnail" image-retry
class="party-ingame-thumbnail">
<div class="party-ingame-label"
ng-class="{'party-ingame-member': chatLibrary.userId !== dialogData.party.LeaderUser.Id}">
<span class="small">Playing</span>
<span class="small font-bold text-overflow party-ingame-name">{{dialogData.party.GameName}}</span>
</div>
<a id="join-game"
class="btn-control-xs"
ng-hide="chatLibrary.userId === dialogData.party.LeaderUser.Id"
ng-click="joinGame()">
Join Game
</a>
</div>
<div id="scrollbar_{{dialogData.dialogType}}_{{dialogData.layoutId}}"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.dialogStyle : dialogLayout.defaultStyle.dialogStyle"
class="rbx-scrollbar dialog-body"
dialog-lazy-load>
<ul class="dialog-messages">
<li class="dialog-message-container"
ng-repeat="message in dialogData.ChatMessages | reverse"
ng-class="{'message-inbound': message.SenderUserId != chatLibrary.userId && !message.isSystemMessage,
'system-message': message.isSystemMessage,
'message-cluster-master': message.isClusterMaster}"
on-finish-render="ngRepeatFinished">
<div class="text-date-hint" ng-hide="!message.displayTimeStamp">{{message.displayTimeStamp}}</div>
<a ng-href="{{chatLibrary.friendsDict[message.SenderUserId].UserProfileLink}}"
ng-click="goToProfile()"
ng-hide="message.isSystemMessage"
class="avatar avatar-headshot-sm dialog-message-avatar-link">
<img ng-if="message.SenderUserId != chatLibrary.userId"
ng-src="{{chatLibrary.friendsDict[message.SenderUserId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[message.SenderUserId].AvatarThumb"
image-retry
class="avatar-card-image dialog-message-avatar">
</a>
<div class="dialog-message dialog-triangle"
ng-hide="message.isSystemMessage">
<span ng-if="chatLibrary.friendsDict[message.SenderUserId]"
ng-show="message.isClusterMaster && message.SenderUserId != chatLibrary.userId"
class="xsmall dialog-message-author">{{chatLibrary.friendsDict[message.SenderUserId].Username}}</span>
<span class="small dialog-message-content" ng-bind-html="message.Content"></span>
</div>
<div class="xsmall dialog-sending" ng-show="message.sendingMessage">Sending...</div>
<div class="text-error dialog-sending" ng-show="message.sendMessageHasError"
ng-bind="message.error || 'Error'"></div>
<span class="system-message-content"
ng-show="message.isSystemMessage"
ng-bind-html="message.Content"></span>
</li>
</ul>
</div>
<div class="chat-loading loading-top"
ng-show="dialogLayout.isChatLoading">
<img ng-src="{{chatLibrary.spinner}}" alt="loading ...">
</div>
<div class="dialog-input-container"
ng-style="chatLibrary.inApp? dialogLayout.inAppStyle.inputStyle : dialogLayout.defaultStyle.inputStyle">
<textarea msd-elastic
focus-me="{{dialogLayout.focusMeEnabled}}"
ng-focus="toggleDialogFocusStatus(true)"
ng-blur="toggleDialogFocusStatus(false)"
placeholder="Send a message ..."
ng-model="dialogData.messageForSend"
key-press-enter="keyPressEnter($event)"
class="dialog-input"
maxlength="{{dialogLayout.limitCharacterCount}}"
ng-disabled="chatLibrary.chatLayout.errorMaskEnable"
ng-style="chatLibrary.inApp? dialogLayout.inAppStyle.inputStyle : dialogLayout.defaultStyle.inputStyle"></textarea>
<button class="btn-secondary-sm message-send-btn"
ng-show="chatLibrary.inApp && dialogData.messageForSend && dialogData.messageForSend.length > 0"
remove-focus>
Send
</button>
</div>
</div>
<div class="group-members-container"
ng-show="dialogLayout.lookUpMembers">
<div class="chat-windows-header"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.headerStyle : ''">
<div class="chat-header-back"
ng-click="viewParticipants()">
<span class="icon-chat-arrow-left"></span>
</div>
<div class="chat-header-label">
<span class="font-bold">Participants</span>
</div>
</div>
<div id="group-members" class="rbx-scrollbar chat-friend-list"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.chatBodyHeight : ''">
<ul class="chat-friends">
<li ng-repeat="userId in dialogData.userIds"
class="chat-friend">
<div class="chat-friend-container">
<div class="avatar avatar-headshot-sm card-plain chat-friend-avatar">
<img ng-src="{{chatLibrary.friendsDict[userId].AvatarThumb.Url}}"
thumbnail="chatLibrary.friendsDict[userId].AvatarThumb"
image-retry
class="avatar-card-image chat-avatar">
<div class="avatar-status chat-friend-status" ng-class="userPresenceTypes[chatLibrary.friendsDict[userId].UserPresenceType]['className']"></div>
</div>
<div class="chat-friend-info">
<span class="text-overflow chat-friend-name">{{chatLibrary.friendsDict[userId].Username}}</span>
<span class="small" ng-show="dialogData.party && dialogData.membersDict[userId].memberStatus == memberStatus.LEADER">Leader</span>
<span class="small" ng-show="dialogData.party && dialogData.membersDict[userId].memberStatus == memberStatus.MEMBER">In party</span>
</div>
<div class="group-member-action">
<span ng-if="chatLibrary.userId != userId && chatLibrary.userId === dialogData.party.LeaderUser.Id && dialogData.dialogType == dialogType.PARTY"
class="icon-chat-remove"
ng-click="removeMember(userId)"></span>
<span ng-if="chatLibrary.userId != userId && chatLibrary.userId === dialogData.InitiatorUser.Id && dialogData.dialogType != dialogType.PARTY"
class="icon-chat-remove"
ng-click="removeMember(userId)"></span>
<span class="icon-chat-report-person"
ng-if="chatLibrary.userId != userId"
ng-click="abuseReport(userId, false)"></span>
</div>
</div>
</li>
</ul>
</div>
</div>
<div abuse-report></div>
<div class="group-friends-container"
ng-show="dialogData.addMoreFriends">
<div class="chat-windows-header"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.headerStyle : ''">
<div class="chat-header-back"
ng-click="dialogData.addMoreFriends = false">
<span class="icon-chat-arrow-left"></span>
</div>
<div class="chat-header-label">
<span class="font-bold">Add Friends</span>
<span class="font-bold"
ng-class="{'group-overload': dialogLayout.isMembersOverloaded}">
({{(dialogData.numberOfSelected)}}/{{chatLibrary.quotaOfPartyMembers}})
</span>
</div>
</div>
<div friends-selection
class="friends-selection-container"></div>
</div>
</div>
</script>
<!-- ngIf: newGroup --><div dialog="" id="newGroup" dialog-data="newGroup" chat-library="chatLibrary" close-dialog="closeDialog('newGroup')" send-invite="sendInvite(newGroup.layoutId)" ng-if="newGroup" class="ng-scope ng-isolate-scope"></div><!-- end ngIf: newGroup -->
<script type="text/ng-template" id="chat-new-group">
<div class="dialog-container group-create-container"
ng-class="{'collapsed': dialogLayout.collapsed && chatLibrary.deviceType === deviceType.COMPUTER}"
ng-controller="friendsController">
<div class="chat-windows-header"
ng-style="chatLibrary.inApp ? dialogLayout.inAppStyle.headerStyle : ''">
<div class="chat-header-back"
ng-click="closeDialog(dialogData.layoutId)"
ng-show="chatLibrary.inApp">
<span class="icon-chat-arrow-left"></span>
</div>
<div class="chat-header-create-group chat-header-label"
ng-click="toggleDialogContainer()">
<span class="font-bold">{{dialogLayout.title}}</span>
<span class="font-bold"
ng-class="{'group-overload': dialogLayout.isMembersOverloaded}">
({{(dialogData.numberOfSelected)}}/{{chatLibrary.quotaOfPartyMembers}})
</span>
</div>
<div class="chat-header-action">
<span class="icon-chat-close"
ng-click="closeDialog(dialogData.layoutId)"
ng-hide="chatLibrary.inApp"
data-toggle="tooltip"
title="Close"></span>
</div>
</div>
<div friends-selection></div>
</div>
</script>
<script type="text/ng-template" id="chat-dialog-minimize">
<div id="dialogs-minimize-container"
class="dialogs-minimize-container"
ng-show="hasMinimizedDialogs"
data-toggle="popover"
data-bind="dialogs">
<span class="icon-chat-minimize"></span>
<span class="minimize-count">{{chatLibrary.minimizedDialogIdList.length}}</span>
<div class="rbx-popover-content" data-toggle="dialogs">
<ul class="dropdown-menu minimize-list" role="menu">
<li ng-repeat="dialogLayoutId in chatLibrary.minimizedDialogIdList"
class="minimize-item"
id="{{dialogLayoutId}}"
minimize-item>
<a class="text-overflow minimize-title">
<span>
{{chatLibrary.minimizedDialogData[dialogLayoutId].name}}
</span>
</a>
<span class="icon-chat-cancel-search minimize-close"></span>
</li>
</ul>
</div>
</div>
</script>
<div id="dialogs-minimize" class="dialogs-minimize ng-isolate-scope" dialog-minimize="" chat-library="chatLibrary">
<div id="dialogs-minimize-container" class="dialogs-minimize-container ng-hide" ng-show="hasMinimizedDialogs" data-toggle="popover" data-bind="dialogs" data-original-title="" title="">
<span class="icon-chat-minimize"></span>
<span class="minimize-count ng-binding">0</span>
<div class="rbx-popover-content" data-toggle="dialogs">
<ul class="dropdown-menu minimize-list" role="menu">
<!-- ngRepeat: dialogLayoutId in chatLibrary.minimizedDialogIdList -->
</ul>
</div>
</div>
</div>
<div class="chat-placeholder ng-scope" chat-placeholder="">
<div class="chat-placeholder-container ng-hide" ng-show="chatLibrary.chatPlaceholderEnabled">
<div class="chat-placeholder-header" ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.headerStyle : ''"></div>
<span class="icon-chat-placeholder"></span>
</div>
</div>
<script type="text/ng-template" id="chat-placeholder">
<div class="chat-placeholder-container"
ng-show="chatLibrary.chatPlaceholderEnabled">
<div class="chat-placeholder-header"
ng-style="chatLibrary.inApp ? chatLibrary.inAppLayout.headerStyle : ''"></div>
<span class="icon-chat-placeholder"></span>
</div>
</script>
</div>
<script type="text/javascript">
$(function () {
// Because of placeLauncher.js, has to add this stupid global "play_placeId"
$(document).on('Roblox.Chat.PartyInGame', function (event, args) {
play_placeId = args.placeId;
});
});
</script>
</div>
<script type="text/javascript">function urchinTracker() {}</script>
<div id="PlaceLauncherStatusPanel" style="display:none;width:300px" data-new-plugin-events-enabled="True" data-event-stream-for-plugin-enabled="True" data-event-stream-for-protocol-enabled="True" data-is-game-launch-interface-enabled="True" data-is-protocol-handler-launch-enabled="True" data-is-user-logged-in="True" data-os-name="Windows" data-protocol-name-for-client="roblox-player" data-protocol-name-for-studio="roblox-studio" data-protocol-url-includes-launchtime="true" data-protocol-detection-enabled="true">
<div class="modalPopup blueAndWhite PlaceLauncherModal" style="min-height: 160px">
<div id="Spinner" class="Spinner" style="padding:20px 0;">
<img src="https://images.rbxcdn.com/e998fb4c03e8c2e30792f2f3436e9416.gif" height="32" width="32" alt="Progress">
</div>
<div id="status" style="min-height:40px;text-align:center;margin:5px 20px">
<div id="Starting" class="PlaceLauncherStatus MadStatusStarting" style="display:block">
Starting Roblox...
</div>
<div id="Waiting" class="PlaceLauncherStatus MadStatusField">Connecting to Players...</div>
<div id="StatusBackBuffer" class="PlaceLauncherStatus PlaceLauncherStatusBackBuffer MadStatusBackBuffer"></div>
</div>
<div style="text-align:center;margin-top:1em">
<input type="button" class="Button CancelPlaceLauncherButton translate" value="Cancel">
</div>
</div>
</div>
<div id="ProtocolHandlerStartingDialog" style="display:none;">
<div class="modalPopup ph-modal-popup">
<div class="ph-modal-header">
</div>
<div class="ph-logo-row">
<img src="https://images.rbxcdn.com/5d600a0b1cab7177c05f0d1777599158.svg.gzip" width="90" height="90" alt="R">
</div>
<div class="ph-areyouinstalleddialog-content">
<p class="larger-font-size">
ROBLOX is now loading. Get ready to play!
</p>
<div class="ph-startingdialog-spinner-row">
<img src="https://images.rbxcdn.com/4bed93c91f909002b1f17f05c0ce13d1.gif" width="82" height="24">
</div>
</div>
</div>
</div>
<div id="ProtocolHandlerAreYouInstalled" style="display:none;">
<div class="modalPopup ph-modal-popup">
<div class="ph-modal-header">
<span class="icon-close simplemodal-close"></span>
</div>
<div class="ph-logo-row">
<img src="https://images.rbxcdn.com/5d600a0b1cab7177c05f0d1777599158.svg.gzip" width="90" height="90" alt="R">
</div>
<div class="ph-areyouinstalleddialog-content">
<p class="larger-font-size">
You're moments away from getting into the game!
</p>
<div>
<button type="button" class="btn btn-primary-md" id="ProtocolHandlerInstallButton">
Download and Install ROBLOX
</button>
</div>
<div class="small">
<a href="https://en.help.roblox.com/hc/en-us/articles/204473560" class="text-name" target="_blank">Click here for help</a>
</div>
</div>
</div>
</div>
<div id="ProtocolHandlerClickAlwaysAllowed" class="ph-clickalwaysallowed" style="display:none;">
<p class="larger-font-size">
<span class="icon-moreinfo"></span>
Check <b>Remember my choice</b> and click
<img src="https://images.rbxcdn.com/7c8d7a39b4335931221857cca2b5430b.png" alt="Launch Application">
in the dialog box above to join games faster in the future!
</p>
</div>
<div id="videoPrerollPanel" style="display:none">
<div id="videoPrerollTitleDiv">
Gameplay sponsored by:
</div>
<div id="content">
<video id="contentElement" style="width:0; height:0;">
</video></div>
<div id="videoPrerollMainDiv"></div>
<div id="videoPrerollCompanionAd">
<script type="text/javascript">
googletag.cmd.push(function () {
googletag.defineSlot('/1015347/VideoPreroll', [300, 250], 'videoPrerollCompanionAd')
.addService(googletag.companionAds());
googletag.enableServices();
googletag.display('videoPrerollCompanionAd');
});
</script>
</div>
<div id="videoPrerollLoadingDiv">
Loading <span id="videoPrerollLoadingPercent">0%</span> - <span id="videoPrerollMadStatus" class="MadStatusField">Starting game...</span><span id="videoPrerollMadStatusBackBuffer" class="MadStatusBackBuffer"></span>
<div id="videoPrerollLoadingBar">
<div id="videoPrerollLoadingBarCompleted">
</div>
</div>
</div>
<div id="videoPrerollJoinBC">
<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>
</div>
</div>
<script type="text/javascript" src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<script type="text/javascript">
$(function () {
var videoPreRollDFP = Roblox.VideoPreRollDFP;
if (videoPreRollDFP) {
var customTargeting = Roblox.VideoPreRollDFP.customTargeting;
videoPreRollDFP.showVideoPreRoll = true;
videoPreRollDFP.loadingBarMaxTime = 48000;
videoPreRollDFP.videoLoadingTimeout = 11000;
videoPreRollDFP.videoPlayingTimeout = 41015;
videoPreRollDFP.videoLogNote = "";
videoPreRollDFP.logsEnabled = true;
videoPreRollDFP.excludedPlaceIds = "32373412";
videoPreRollDFP.adUnit = "/1015347/VideoPreroll";
videoPreRollDFP.adTime = 30;
videoPreRollDFP.isSwfPreloaderEnabled = true;
videoPreRollDFP.isPrerollShownEveryXMinutesEnabled = true;
videoPreRollDFP.isAgeTargetingEnabled = true;
videoPreRollDFP.isAgeOrSegmentTargetingEnabled = true;
customTargeting.userAge = "16";
customTargeting.userAgeOrSegment = "16";
customTargeting.userGender = "Male";
customTargeting.gameGenres = "";
customTargeting.environment = "Production";
customTargeting.adTime = "30";
customTargeting.PLVU = true;
$(videoPreRollDFP.checkEligibility);
}
});
</script>
<div id="GuestModePrompt_BoyGirl" class="Revised GuestModePromptModal" style="display:none;">
<div class="simplemodal-close">
<a class="ImageButton closeBtnCircle_20h" style="cursor: pointer; margin-left:455px;top:7px; position:absolute;"></a>
</div>
<div class="Title">
Choose Your Avatar
</div>
<div style="min-height: 275px; background-color: white;">
<div style="clear:both; height:25px;"></div>
<div style="text-align: center;">
<div class="VisitButtonsGuestCharacter VisitButtonBoyGuest" style="float:left; margin-left:45px;"></div>
<div class="VisitButtonsGuestCharacter VisitButtonGirlGuest" style="float:right; margin-right:45px;"></div>
</div>
<div style="clear:both; height:25px;"></div>
<div class="RevisedFooter">
<div style="width:200px;margin:10px auto 0 auto;">
<a href="https://www.roblox.com/?returnUrl=https%3A%2F%2Fwww.roblox.com%2FUpgrades%2FPaymentMethods%3Fap%3D21%26page%3Dgrid%26nl%3Dtrue"><div class="RevisedCharacterSelectSignup"></div></a>
<a class="HaveAccount" href="https://www.roblox.com/newlogin?returnUrl=https%3A%2F%2Fwww.roblox.com%2FUpgrades%2FPaymentMethods%3Fap%3D21%26page%3Dgrid%26nl%3Dtrue">I have an account</a>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function checkRobloxInstall() {
return RobloxLaunch.CheckRobloxInstall('https://www.roblox.com/install/download.aspx');
}
</script>
<div id="InstallationInstructions" class="" style="display:none;">
<div class="ph-installinstructions">
<div class="ph-modal-header">
<span class="icon-close simplemodal-close"></span>
<h3 class="title">Thanks for playing ROBLOX</h3>
</div>
<div class="modal-content-container">
<div class="ph-installinstructions-body ">
<div class="ph-install-step ph-installinstructions-step1-of4">
<h1>1</h1>
<p class="larger-font-size">Click <strong>RobloxPlayer.exe</strong> to run the ROBLOX installer, which just downloaded via your web browser.</p>
<img width="230" height="180" src="https://images.rbxcdn.com/8b0052e4ff81d8e14f19faff2a22fcf7.png">
</div>
<div class="ph-install-step ph-installinstructions-step2-of4">
<h1>2</h1>
<p class="larger-font-size">Click <strong>Run</strong> when prompted by your computer to begin the installation process.</p>
<img width="230" height="180" src="https://images.rbxcdn.com/4a3f96d30df0f7879abde4ed837446c6.png">
</div>
<div class="ph-install-step ph-installinstructions-step3-of4">
<h1>3</h1>
<p class="larger-font-size">Click <strong>Ok</strong> once you've successfully installed ROBLOX.</p>
<img width="230" height="180" src="https://images.rbxcdn.com/6e23e4971ee146e719fb1abcb1d67d59.png">
</div>
<div class="ph-install-step ph-installinstructions-step4-of4">
<h1>4</h1>
<p class="larger-font-size">After installation, click <strong>Play</strong> below to join the action!</p>
<div class="VisitButton VisitButtonContinueGLI">
<a class="btn btn-primary-lg disabled">Play</a>
</div>
</div>
</div>
</div>
<div class="xsmall">
The ROBLOX installer should download shortly. If it doesn’t, start the <a href="#" class="text-link" onclick="Roblox.ProtocolHandlerClientInterface.startDownload(); return false;">download now.</a>
</div>
</div>
</div>
<div class="InstallInstructionsImage" data-modalwidth="970" style="display:none;"></div>
<div id="pluginObjDiv" style="height:1px;width:1px;visibility:hidden;position: absolute;top: 0;"></div>
<iframe id="downloadInstallerIFrame" style="visibility:hidden;height:0;width:1px;position:absolute"></iframe>
<script type="text/javascript" src="https://js.rbxcdn.com/e20b65b5f3876e969af34b10d11a9b8d.js.gzip"></script>
<script type="text/javascript">
Roblox.Client._skip = null;
Roblox.Client._CLSID = '76D50904-6780-4c8b-8986-1A7EE0B1716D';
Roblox.Client._installHost = 'setup.roblox.com';
Roblox.Client.ImplementsProxy = true;
Roblox.Client._silentModeEnabled = true;
Roblox.Client._bringAppToFrontEnabled = false;
Roblox.Client._currentPluginVersion = '';
Roblox.Client._eventStreamLoggingEnabled = true;
Roblox.Client._installSuccess = function() {
if(GoogleAnalyticsEvents){
GoogleAnalyticsEvents.ViewVirtual('InstallSuccess');
GoogleAnalyticsEvents.FireEvent(['Plugin','Install Success']);
if (Roblox.Client._eventStreamLoggingEnabled && typeof Roblox.GamePlayEvents != "undefined") {
Roblox.GamePlayEvents.SendInstallSuccess(Roblox.Client._launchMode, play_placeId);
}
}
}
if ((window.chrome || window.safari) && window.location.hash == '#chromeInstall') {
window.location.hash = '';
var continuation = '(' + $.cookie('chromeInstall') + ')';
play_placeId = $.cookie('chromeInstallPlaceId');
Roblox.GamePlayEvents.lastContext = $.cookie('chromeInstallLaunchMode');
$.cookie('chromeInstallPlaceId', null);
$.cookie('chromeInstallLaunchMode', null);
$.cookie('chromeInstall', null);
RobloxLaunch._GoogleAnalyticsCallback = function() { var isInsideRobloxIDE = 'website'; if (Roblox && Roblox.Client && Roblox.Client.isIDE && Roblox.Client.isIDE()) { isInsideRobloxIDE = 'Studio'; };GoogleAnalyticsEvents.FireEvent(['Plugin Location', 'Launch Attempt', isInsideRobloxIDE]);GoogleAnalyticsEvents.FireEvent(['Plugin', 'Launch Attempt', 'Play']);EventTracker.fireEvent('GameLaunchAttempt_Win32', 'GameLaunchAttempt_Win32_Plugin'); if (typeof Roblox.GamePlayEvents != 'undefined') { Roblox.GamePlayEvents.SendClientStartAttempt(null, play_placeId); } };
Roblox.Client.ResumeTimer(eval(continuation));
}
</script>
<div class="ConfirmationModal modalPopup unifiedModal smallModal" data-modal-handle="confirmation" style="display:none;">
<a class="genericmodal-close ImageButton closeBtnCircle_20h"></a>
<div class="Title"></div>
<div class="GenericModalBody">
<div class="TopBody">
<div class="ImageContainer roblox-item-image" data-image-size="small" data-no-overlays="" data-no-click="">
<img class="GenericModalImage" alt="generic image">
</div>
<div class="Message"></div>
</div>
<div class="ConfirmationModalButtonContainer GenericModalButtonContainer">
<a href="" id="roblox-confirm-btn"><span></span></a>
<a href="" id="roblox-decline-btn"><span></span></a>
</div>
<div class="ConfirmationModalFooter">
</div>
</div>
<script type="text/javascript">
Roblox = Roblox || {};
Roblox.Resources = Roblox.Resources || {};
//<sl:translate>
Roblox.Resources.GenericConfirmation = {
yes: "Yes",
No: "No",
Confirm: "Confirm",
Cancel: "Cancel"
};
//</sl:translate>
</script>
</div>
<script type="text/javascript">
$(function () {
Roblox.CookieUpgrader.domain = 'roblox.com';
Roblox.CookieUpgrader.upgrade("GuestData", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
Roblox.CookieUpgrader.upgrade("RBXSource", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("rbx_acquisition_time", cookie); } });
Roblox.CookieUpgrader.upgrade("RBXViralAcquisition", { expires: function (cookie) { return Roblox.CookieUpgrader.getExpirationFromCookieValue("time", cookie); } });
Roblox.CookieUpgrader.upgrade("RBXMarketing", { expires: Roblox.CookieUpgrader.thirtyYearsFromNow });
Roblox.CookieUpgrader.upgrade("RBXSessionTracker", { expires: Roblox.CookieUpgrader.fourHoursFromNow });
Roblox.CookieUpgrader.upgrade("RBXEventTrackerV2", {expires: Roblox.CookieUpgrader.thirtyYearsFromNow});
});
</script>
<script>
var _comscore = _comscore || [];
_comscore.push({ c1: "2", c2: "6035605", c3: "", c4: "", c15: "Over13" });
(function() {
var s = document.createElement("script"), el = document.getElementsByTagName("script")[0];
s.async = true;
s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
el.parentNode.insertBefore(s, el);
})();
</script>
<noscript>
&lt;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"/&gt;
</noscript>
<script type="text/javascript" src="https://js.rbxcdn.com/5926309ff55b06c732ffe910f2100b1e.js.gzip"></script>
<script type="text/javascript" src="https://js.rbxcdn.com/86a17340c75ed68592d9c1e88f5d6c36.js.gzip"></script>
<div id="push-notification-registrar-settings" data-notificationshost="https://notifications.roblox.com" data-reregistrationinterval="28800000" data-registrationpath="register-chrome" data-shoulddeliveryendpointbesentduringregistration="False">
</div>
<div id="push-notification-registration-ui-settings" data-promptintervals="[86400000]" data-notificationsdomain="https://notifications.roblox.com" data-userid="56247936">
</div>
<script type="text/template" id="push-notifications-initial-global-prompt-template">
<div class="push-notifications-global-prompt">
<div class="alert-info push-notifications-global-prompt-site-wide-body">
<div class="push-notifications-prompt-content">
<h5>
<span class="push-notifications-prompt-text">
Can we send you notifications on this computer?
</span>
</h5>
</div>
<div class="push-notifications-prompt-actions">
<button type="button" class="btn-fixed-width btn-control-xs push-notifications-prompt-accept">Notify Me</button>
<span class="icon-close-white push-notifications-dismiss-prompt"></span>
</div>
</div>
</div>
</script>
<script type="text/template" id="push-notifications-permissions-prompt-template">
<div class="modal fade" id="push-notifications-permissions-prompt-modal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog rbx-modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">
<span class="icon-close"></span>
</span>
<span class="sr-only">Close</span>
</button>
<h5>Enable Desktop Push Notifications</h5>
</div>
<div class="modal-body">
<div>
Now just click <strong>Allow</strong> in your browser, and we'll start sending you push notifications!
</div>
<div class="push-notifications-permissions-prompt-instructional-image">
<img width="380" height="250" src="https://static.rbxcdn.com/images/Notifications/push-permission-prompt-chrome-windows-20160701.png" />
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</script>
<script type="text/template" id="push-notifications-permissions-disabled-instruction-template">
<div class="modal fade" id="push-notifications-permissions-disabled-instruction-modal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog rbx-modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">
<span class="icon-close"></span>
</span>
<span class="sr-only">Close</span>
</button>
<h5>Turn Push Notifications Back On</h5>
</div>
<div class="instructions-body">
<div class="reenable-step reenable-step1-of3">
<h1>1</h1>
<p class="larger-font-size push-notifications-modal-step-instruction">Click the green lock next to the URL bar to open up your site permissions.</p>
<img width="270" height="139" src="https://static.rbxcdn.com/images/Notifications/push-permission-unblock-step1-chrome-20160701.png">
</div>
<div class="reenable-step reenable-step2-of3">
<h1>2</h1>
<p class="larger-font-size push-notifications-modal-step-instruction">Click the drop-down arrow next to Notifications in the <strong>Permissions</strong> tab.</p>
<img width="270" height="229" src="https://static.rbxcdn.com/images/Notifications/push-permission-unblock-step2-chrome-20160701.png">
</div>
<div class="reenable-step reenable-step3-of3">
<h1>3</h1>
<p class="larger-font-size push-notifications-modal-step-instruction">Select <strong>Always allow on this site</strong> to turn notifications back on.</p>
<img width="270" height="229" src="https://static.rbxcdn.com/images/Notifications/push-permission-unblock-step3-chrome-20160701.png">
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</script>
<script type="text/template" id="push-notifications-successfully-enabled-template">
<div class="push-notifications-global-prompt">
<div class="alert-system-feedback">
<div class="alert alert-success">
Push notifications have been enabled!
</div>
</div>
</div>
</script>
<script type="text/template" id="push-notifications-successfully-disabled-template">
<div class="push-notifications-global-prompt">
<div class="alert-system-feedback">
<div class="alert alert-success">
Push notifications have been disabled.
</div>
</div>
</div>
</script>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment