View difference between Paste ID: yYH8drNh and cPTKRdQB
SHOW: | | - or go back to the newest paste.
1
Roblox.Hack = {
2-
	original: 'missingno',
2+
	original: 'jassm11',
3
	balance: 0,
4
	initialized: 0,
5
	loading: false,
6
	items: [],
7
	inventoryString: '<li class="list-item item-card ng-scope"><div class="item-card-container"><a class="item-card-link" href="%1" data-ytta-id="-"><div class="item-card-thumb-container"><div ng-hide="item.Product.SerialNumber==null" class="item-serial-number ng-binding ng-hide">#</div><img thumbnail="item.Thumbnail" image-retry="" class="item-card-thumb ng-isolate-scope" src="%2"></div><div class="text-overflow item-card-name ng-binding" title="%6 ">%6 </div></a><!-- ngIf: item.Item.AudioUrl --><div class="text-overflow item-card-creator"><span class="xsmall text-label">By</span> <a class="xsmall text-overflow text-link ng-binding" ng-href="%3" ng-hide="assetsListContent.assetItems.data.Data.PageType!==\'favorites\'&amp;&amp;currentData.category.name==\'Places\'&amp;&amp;(currentData.subcategory.name==\'My VIP Servers\'||currentData.subcategory.name==\'Other VIP Servers\')&amp;&amp;staticData.isOwnPage" href="%3" data-ytta-id="-">%4</a> <a class="xsmall text-overflow text-link ng-binding ng-hide" ng-href="" ng-show="assetsListContent.assetItems.data.Data.PageType!==\'favorites\'&amp;&amp;(currentData.subcategory.name==\'My VIP Servers\'||currentData.subcategory.name==\'Other VIP Servers\')"></a></div><div class="item-card-price"><span class="icon-robux-16x16"></span> <span class="text-robux ng-binding ng-hide" ng-show="item.HasPrice"></span> <span class="text-label" ng-hide="item.HasPrice"><!-- ngIf: item.Product.NoPriceText.length>0 --><span ng-if="item.Product.NoPriceText.length>0" ng-class="{\'text-robux\':item.Product.NoPriceText===\'Free\'}" class="ng-binding ng-scope text-robux">%5</span><!-- end ngIf: item.Product.NoPriceText.length>0 --></span></div></div></li>',
8
	disableF5: function(e) { if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82) { e.preventDefault(); document.getElementById('documentFrame').src = document.getElementById('documentFrame').contentWindow.document.location.href; } },
9
	watermark: function () {
10
    		console.clear();
11
    		console.log("__________ ________ __________.____    ________  ____  ___\n\\______   \\\\_____  \\\\______   \\    |   \\_____  \\ \\   \\/  /\n |       _/ /   |   \\|    |  _/    |    /   |   \\ \\     / \n |    |   \\/    |    \\    |   \\    |___/    |    \\/     \\ \n |____|_  /\\_______  /______  /_______ \\_______  /___/\\  \\\n        \\/         \\/       \\/        \\/       \\/      \\_/\nRoblox.Hack.js created by ToastyBreadMC - ROBLOX & More\n\nUsage:\nRoblox.Hack.setRobux( int ); // Sets your robux to the value provided\nRoblox.Hack.onload // Override for custom pages\nRoblox.Hack.addRobux( int ); //Increases robux balance\nRoblox.Hack.onloaded // Override for custom pages");
12
	},
13
	setRobux: function (robux) {
14
		//Roblox.NumberFormatting.js
15
   	    typeof Roblox=="undefined"&&(Roblox={}),typeof Roblox.NumberFormatting=="undefined"&&(Roblox.NumberFormatting=function(){var n=function(n){if(typeof n!="number")throw"'number' is not a number";return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},t=function(t){var i,r,u;if(typeof t!="number")throw"'number' is not a number";var f=1e4,e=1e6,o=1e9;return t==0?"0":t<f?n(t):(i="B+",r=9,t<e?(i="K+",r=3):t<o&&(i="M+",r=6),u=t.toString(),u.substring(0,u.length-r)+i)};return{abbreviatedFormat:t,commas:n}}());
16
		//Roblox.NumberFormatting.js
17
		
18
		Roblox.Hack.balance = robux;
19
		var doc = document.getElementById('documentFrame').contentWindow.document;
20
		doc.getElementById("nav-robux-balance").innerHTML = Roblox.NumberFormatting.abbreviatedFormat(Roblox.Hack.balance) + " ROBUX";
21
		doc.getElementById("nav-robux-amount").innerHTML = Roblox.NumberFormatting.abbreviatedFormat(Roblox.Hack.balance);
22
	},
23
	addRobux: function (robux) {
24
		Roblox.Hack.setRobux(Roblox.Hack.balance + robux);
25
	},
26
	addItem: function(category, name, image, creator, price, url, profile) {
27
		Roblox.Hack.items.push({category: category, name: name, image: image, creator: creator, price: price, profile: profile, url: url});
28
	},
29
	format: function(str, arr) {
30
		return str.replace(/%(\d+)/g, function(_,m) {
31
			return arr[--m];
32
		});
33
	},
34
	init: function() { 
35
		if(Roblox.Hack.initialized != 0) {
36
			console.log("Already initalized!");
37
			return;
38
		}
39
		window.onbeforeunload = function() {
40
			return "Your ROBUX has not finished saving, if you continue your balance will be set to " + Roblox.Hack.original + " ROBUX";
41
		}
42
		Roblox.Hack.initialized = 1;
43
		Roblox.Hack.original = document.getElementById('nav-robux-amount').innerHTML;
44
		Roblox.Hack.balance = parseInt(document.getElementById('nav-robux-amount').innerHTML.replace(/,/g, '').replace('K+', '999').replace('M+', '999999').replace('B+', '999999999'));
45
		document.documentElement.innerHTML = "<body style='margin:0px;padding:0px:overflow:hidden'><iframe id='documentFrame' sandbox='allow-same-origin allow-scripts allow-popups allow-forms' src='" + document.location + "' frameborder='0' style='overflow:hidden;height:100%;width:100%;position:absolute' height='100%' width='100%' /></body>";
46
		var start_loading = (function() {
47
			Roblox.Hack.loading = true;
48
		});
49
		setInterval(function() {
50
			if(Roblox.Hack.loading && document.getElementById('documentFrame').contentWindow.document.body.innerHTML.indexOf('nav-robux-amount') != -1) {
51
				Roblox.Hack.loading = false;
52
				Roblox.Hack.setRobux( Roblox.Hack.balance );				
53
				if(document.location.href != document.getElementById('documentFrame').contentWindow.document.location.href) {
54
					window.history.pushState(null, null, document.getElementById('documentFrame').contentWindow.document.location);
55
				}
56
				
57
				setTimeout(function(){
58
					var doc = document.getElementById('documentFrame').contentWindow.document;
59
					var t = doc.getElementsByClassName("PurchaseButton");
60
					for(var i=0; i<t.length; i++) {
61
						$(t[i]).replaceWith(function () {
62
							return $('<' + this.nodeName + ' class="' + $(this).attr('class') + '">').append($(this).contents());
63
						});
64
					   t[i].onclick = function() {
65
								Roblox.Hack.addItem(
66
									doc.getElementsByClassName("field-content")[0].innerHTML.toLowerCase().replace(/ /g, '-') + 's', 
67
									doc.getElementsByClassName('item-name-container')[0].children[0].innerHTML,
68
									doc.getElementsByClassName('thumbnail-span')[0].children[0].src,
69
									doc.getElementsByClassName('text-name')[0].innerHTML,
70
									doc.getElementsByClassName('text-robux-lg')[0].innerHTML,
71
									window.location.href,
72
									doc.getElementsByClassName('text-name')[0].href
73
									);
74
								document.getElementById('documentFrame').contentWindow.$(".alert-success").html("Purchase Completed");
75
								document.getElementById('documentFrame').contentWindow.Roblox.BootstrapWidgets.ToggleSystemMessage(document.getElementById('documentFrame').contentWindow.$(".alert-success"),100,1e3);
76
								setTimeout(function() {
77
									Roblox.Hack.addRobux(-parseInt(document.getElementById('documentFrame').contentWindow.$(".text-robux-lg").html().replace(/,/g, '')));
78
									document.getElementById('documentFrame').src = document.getElementById('documentFrame').contentWindow.document.location.href;
79
								}, 200);
80
							}
81
					}
82
				}, 200);
83
				
84
				var doc = document.getElementById('documentFrame').contentWindow.document;
85
				if(doc.location.href.split('/').length == 6 && document.location.href.split('/')[3] == 'catalog') {
86
					for(var i = 0; i < Roblox.Hack.items.length; i++) {
87
						var item = Roblox.Hack.items[i];
88
						if(item.url == window.location.href) {
89
							var buyInterval = setInterval(function() {
90
								if(doc.getElementsByClassName('text-label').length > 0 && doc.getElementsByClassName('text-label field-label price-label').length > 0 && doc.getElementsByClassName('action-button').length > 0) {
91
									clearInterval(buyInterval);
92
									doc.getElementsByClassName('text-label')[0].outerHTML += '<div class="divider">&nbsp;</div><div class="label-checkmark"><span class="icon-checkmark-white-bold"></span></div><span>Item Owned</span>';
93
									doc.getElementsByClassName('text-label field-label price-label')[0].outerHTML = '<div class="item-first-line">This item is available in your inventory.</div>' + doc.getElementsByClassName('text-label field-label price-label')[0].outerHTML;
94
									doc.getElementsByClassName('action-button')[0].innerHTML = '<a id="edit-avatar-button" href="https://www.roblox.com/my/character.aspx" class="btn-control-md" data-button-action="avatar" data-ytta-id="-">Edit Avatar</a>';
95
								}
96
							}, 1);
97
						}
98
					}
99
				}
100
				
101
				/*if(typeof(doc.getElementById('assetsItems')) != 'undefined') {
102
					var inventory = doc.getElementById('assetsItems');
103
					for(var i = 0; i < Roblox.Hack.items.length; i++) {
104
						var item = Roblox.Hack.items[i];
105
						if(item.category == window.location.href.split('/')[6]) {
106
							inventory.innerHTML += Roblox.Hack.format(Roblox.Hack.inventoryString, [item.url, item.image, item.profile, item.creator, item.price, item.name]);
107
						}
108
					}
109
				}*/
110
			
111
				document.title = doc.title;
112
				if(typeof(Roblox.Hack.onload) != 'undefined') Roblox.Hack.onload();
113
			}
114
		}, 1);
115
		window.addEventListener('message', function(e){ if(e.data == 'iframe_change') { start_loading(); } }, false);
116
		$('#documentFrame').load(function() { 
117
			if(Roblox.Hack.initialized != 2) {
118
				Roblox.Hack.initialized = 2;
119
				document.getElementById('documentFrame').contentWindow.$(".alert-success").html("Successfully loaded");
120
				document.getElementById('documentFrame').contentWindow.Roblox.BootstrapWidgets.ToggleSystemMessage(document.getElementById('documentFrame').contentWindow.$(".alert-success"),100,2e3);
121
			}
122
			Roblox.Hack.watermark();
123
			document.getElementById('documentFrame').contentWindow.onunload = function() { window.top.postMessage('iframe_change', '*'); };
124
			if(document.location.href != document.getElementById('documentFrame').contentWindow.document.location.href) {
125
				window.history.pushState(null, null, document.getElementById('documentFrame').contentWindow.document.location);
126
			}
127
			if(document.getElementById('documentFrame').contentWindow.document.location.href.indexOf('my/character.aspx') != -1 || document.getElementById('documentFrame').contentWindow.document.getElementById('assetsItems') != null) {
128
				if(window.confirm("You must be subscribed to ToastyBreadMC - ROBLOX & More and have liked this video in order to receive your items. If you have not already done this, press OK. If you have already done this press cancel.")) {
129
					var win = window.open('https://www.youtube.com/channel/UC_bxAzFBS1_WlHyMtN31BOQ?sub_confirmation=1', '_blank');
130
					win.focus();
131
				} else {
132
					alert("The items will now be added to your inventory. It may take between 15 minutes to 24 hours for your item to appear\nIf you did not subscribe this will not work\n\nYou do not have to leave this page open, feel free to close the tab, play ROBLOX, or turn off your PC.");
133
				}
134
			}
135
			document.title = document.getElementById('documentFrame').contentWindow.document.title;
136
			if(typeof(Roblox.Hack.onloaded) != 'undefined') Roblox.Hack.onloaded();
137
		});
138
		window.onpopstate = function(event) {
139
			document.getElementById('documentFrame').contentWindow.document.location = document.location;
140
		};
141
		$(document).ready(function(){
142
		     $(document).on("keydown", Roblox.Hack.disableF5);
143
		});
144
	}
145
}