Online Bots: 3
Используйте код с осторожностью.
Build Mode: Active
FIRE
GUN
JUMP
robloop Simulator Instructions
D-PAD: Move your 2004-2005 Dynablocks character over the baseplates.
JUMP: Jump over obstacles.
FIRE GUN: Shoots a vintage rocket launcher that insta-builds blocks right beneath you to build high-rise towers!
Close Help
if(!localStorage.getItem('rb_users')) {
localStorage.setItem('rb_users', JSON.stringify({"admin": "2005"}));
}
let sessionUser = null;
function router(targetPage) {
const viewport = document.getElementById('content-viewport');
viewport.innerHTML = '';
if (targetPage === 'home') {
viewport.innerHTML =
Welcome to ROBOBLOCKS!
With your help, we have built a community of members with a passion for building, inventing and playing! Best of all, it's completely FREE! With ROBOBLOCKS, you can…
Invent!
If you can imagine it, you can build it on ROBOBLOCKS! Build vehicles, characters, buildings or whatever you want with the ROBOBLOCKS pieces.
Play ROBOBLOCKS!
Play lots of cool games, all built by the ROBOBLOCKS community. Find a game to match your interest.
;
}
else if (targetPage === 'news') {
viewport.innerHTML =
ROBOBLOCKS News Archive
November 28, 2005:
Logo is updated to the blue tech-font look.
November 27, 2005:
Created FTP for block files sharing.
November 25, 2005:
You can now officially download the client executable!
November 24, 2005:
Site "ROBOBLOCKS" was officially created by web builders.
;
}
else if (targetPage === 'contests') {
viewport.innerHTML =
ROBOBLOCKS Contests & Highscores
Current active challenge: Build the best 2005-style brick house layout grid.
Gev - 4500 Points
Grizler - 3200 Points
GuestPlayer - 100 Points
;
}
else if (targetPage === 'games') {
viewport.innerHTML = `
GodoBlocks / ROBOBLOCKS Games
Select any community-made level below to launch inside the robloop emulator:
Name
Official
Author
Date
Action
Steer the Spheres
Yes
Gev
4/9/2022
PLAY
Bridge It!
Yes
Gev
?/?/2022
PLAY
John's Puzzle Game
Yes
Gev
4/10/2022
PLAY
Roblox Logo
Yes
Gev
4/22/2022
PLAY
A Regular GodoBlocks House
Yes
Grizler
4/22/2022
PLAY
; } else if (targetPage === 'account') { if(sessionUser) { viewport.innerHTML =
Account Dashboard
Welcome back, ${sessionUser}!
Your ROBOBLOCKS Points: 1,250 SP
Log Out
; } else { viewport.innerHTML =
Member System
Sign In
Username:
Password:
Login
Create Account (No Mail Required)
Choose Username:
Choose Password:
Register Account
`;
}
}
}
function accountAction(type) {
let db = JSON.parse(localStorage.getItem('rb_users'));
if(type === 'register') {
let u = document.getElementById('su-user').value.trim();
let p = document.getElementById('su-pass').value.trim();
if(!u || !p) return alert('Error: Please enter a username and password!');
if(db[u]) return alert('Error: User already exists!');
db[u] = p;
localStorage.setItem('rb_users', JSON.stringify(db));
alert('Success! Account created. Now you can login.');
router('account');
} else if(type === 'login') {
let u = document.getElementById('si-user').value.trim();
let p = document.getElementById('si-pass').value.trim();
if(db[u] && db[u] === p) {
sessionUser = u;
alert('Logged in successfully!');
router('account');
} else {
alert('Invalid Username/Password!');
}
} else if(type === 'logout') {
sessionUser = null;
router('account');
}
}
const canvas = document.getElementById('game-canvas');
const ctx = canvas.getContext('2d');
let gameLoopId = null;
let player = {
x: 150, y: 120, z: 0,
vx: 0, vz: 0,
width: 22, height: 44,
isGrounded: true
};
let staticBlocks = [];
let botPlayers = [];
let controls = { left: false, right: false, up: false, down: false };
function openGame(title) {
document.getElementById('robloop-screen').style.display = 'flex';
canvas.width = window.innerWidth;
canvas.height = window.innerHeight - 165;
staticBlocks = [];
for (let i = 0; i < canvas.width; i += 32) {
staticBlocks.push({ x: i, y: canvas.height - 32, w: 32, h: 32, color: '#2A6321' });
}
botPlayers = [
{x: 60, y: canvas.height - 76, color: '#0000FF', label: 'BuildBot05'},
{x: canvas.width - 100, y: canvas.height - 76, color: '#FF0000', label: 'DynaKid'}
];
if(!gameLoopId) {
gameLoopId = setInterval(runEngine, 1000 / 30);
}
}
function exitGame() {
clearInterval(gameLoopId);
gameLoopId = null;
document.getElementById('robloop-screen').style.display = 'none';
}
function toggleHelp(state) {
document.getElementById('robloop-help-popup').style.display = state ? 'block' : 'none';
}
function toggleFullscreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen().catch(() => {});
} else {
document.exitFullscreen();
}
}
function runEngine() {
if (controls.left) player.x -= 5;
if (controls.right) player.x += 5;
if (controls.up) player.y -= 4;
if (controls.down) player.y += 4;
player.z += player.vz;
if (player.z > 0) {
player.vz -= 1.2;
player.isGrounded = false;
} else {
player.z = 0;
player.vz = 0;
player.isGrounded = true;
}
if (player.x < 0) player.x = 0;
if (player.x > canvas.width - player.width) player.x = canvas.width - player.width;
ctx.fillStyle = '#87CEEB';
ctx.fillRect(0, 0, canvas.width, canvas.height);
staticBlocks.forEach(b => {
ctx.fillStyle = b.color;
ctx.fillRect(b.x, b.y, b.w, b.h);
ctx.strokeStyle = '#1D4517';
ctx.strokeRect(b.x, b.y, b.w, b.h);
});
botPlayers.forEach(bot => {
ctx.fillStyle = bot.color;
ctx.fillRect(bot.x, bot.y, 20, 44);
ctx.fillStyle = '#000000';
ctx.font = '10px Arial';
ctx.fillText(bot.label, bot.x - 10, bot.y - 6);
});
let currRenderY = player.y - player.z;
ctx.fillStyle = '#0000FF';
ctx.fillRect(player.x, currRenderY + 24, player.width, 20);
ctx.fillStyle = '#FF0000';
ctx.fillRect(player.x, currRenderY + 10, player.width, 14);
ctx.fillStyle = '#FFFF00';
ctx.fillRect(player.x + 3, currRenderY, player.width - 6, 10);
ctx.fillStyle = '#000000';
ctx.font = 'bold 11px Arial';
ctx.fillText(sessionUser ? sessionUser : 'Guest', player.x - 4, currRenderY - 8);
}
function setupTouch(elementId, direction) {
const el = document.getElementById(elementId);
el.addEventListener('touchstart', (e) => { e.preventDefault(); controls[direction] = true; });
el.addEventListener('touchend', (e) => { e.preventDefault(); controls[direction] = false; });
}
setupTouch('mdpad-up', 'up');
setupTouch('mdpad-down', 'down');
setupTouch('mdpad-left', 'left');
setupTouch('mdpad-right', 'right');
document.getElementById('btn-jump').addEventListener('touchstart', (e) => {
e.preventDefault();
if(player.isGrounded) {
player.vz = 14;
}
});
document.getElementById('btn-fire').addEventListener('touchstart', (e) => {
e.preventDefault();
let bX = Math.floor(player.x / 32) * 32;
let bY = Math.floor((player.y + 44) / 32) * 32 - 32;
let colors = ['#FF0000', '#0000FF', '#FFFF00', '#CCCCCC', '#00FF00'];
let randomColor = colors[Math.floor(Math.random() * colors.length)];
staticBlocks.push({ x: bX, y: bY, w: 32, h: 32, color: randomColor });
});
router('home');