To automatically block all players on this list in VRChat:
- Go to vrchat.com/home and log in
- Open Developer Tools (F12 or Ctrl+Shift+I)
- Click the Console tab
- Paste the script below and press Enter
Note: This script blocks users one at a time with delays to avoid rate limiting.
It will also ban these users from any VRChat groups you own.
Keep the tab open until it completes.
// SpillVR Community List Auto-Block Script
// List: Black Cat Banlist
// Generated: 2026-03-14 19:52:52 UTC
// Total users to block: 12
(async function() {
const usersToBlock = [
{ id: "usr_91d5ebb6-7ac5-400e-8dc5-811fefc1ca51", name: "Pimp Tank", reason: "" },
{ id: "usr_6bc2e42a-3d7f-46f1-bd64-e8000c2a535d", name: "Boosteralex4", reason: "" },
{ id: "usr_e3955355-246f-4f07-9404-8d47b36a0001", name: "DanielAckermann", reason: "" },
{ id: "usr_42813fc4-7524-418c-8b11-b592ec0ce7f2", name: "churchdevil", reason: "" },
{ id: "usr_d41f78dc-c817-4732-8220-a430ae8cf131", name: "AFLoli", reason: "" },
{ id: "usr_a07b910a-4ece-4e32-856a-2a8b5884a741", name: "logan·841636 a741", reason: "" },
{ id: "usr_d1c808cf-f996-4b3f-9e4e-68739e120549", name: "Baby Celeste", reason: "" },
{ id: "usr_865bd233-4be8-4db1-9b34-e4738f05db2c", name: "Ayotat db2c", reason: "" },
{ id: "usr_8bab0bd6-8df5-488b-aafd-dbefb36ec5fb", name: "FIR-3", reason: "" },
{ id: "usr_9b65a4a4-898b-4849-a530-6666abd72a50", name: "TrailerparkHung", reason: "" },
{ id: "usr_22f2a2f7-85ad-41ab-91c7-df56d3c7c48a", name: "proximity çhat", reason: "" },
{ id: "usr_64538bc3-11b8-4327-8d3c-6ba1ee62c0eb", name: "Proximitÿ", reason: "" }
];
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
console.log('=== SpillVR Community List Auto-Block ===');
console.log('Starting to block ' + usersToBlock.length + ' players...');
console.log('');
let blocked = 0;
let failed = 0;
for (const user of usersToBlock) {
try {
const response = await fetch(`https://vrchat.com/api/1/auth/user/playermoderations`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
credentials: 'include',
body: JSON.stringify({
moderated: user.id,
type: 'block'
})
});
if (response.ok) {
blocked++;
console.log(`[BLOCKED] ${user.name} (${user.reason})`);
} else {
failed++;
console.warn(`[FAILED] ${user.name}: HTTP ${response.status}`);
}
} catch (error) {
failed++;
console.error(`[ERROR] ${user.name}: ${error.message}`);
}
await delay(2000);
}
console.log('');
console.log('=== Player Blocking Complete ===');
console.log(`Blocked: ${blocked}`);
console.log(`Failed: ${failed}`);
console.log('');
// Phase 2: Group Banning
console.log('=== Phase 2: Banning from Your Groups ===');
console.log('Fetching your groups...');
let groupBanned = 0;
let groupAlready = 0;
let groupFailed = 0;
let groupsProcessed = 0;
try {
const authResp = await fetch('https://vrchat.com/api/1/auth/user', { credentials: 'include' });
if (!authResp.ok) {
console.warn('Could not get current user info. Skipping group bans.');
} else {
const currentUser = await authResp.json();
await delay(2000);
const groupsResp = await fetch(`https://vrchat.com/api/1/users/${currentUser.id}/groups`, { credentials: 'include' });
if (!groupsResp.ok) {
console.warn('Could not fetch groups. Skipping group bans.');
} else {
const allGroups = await groupsResp.json();
await delay(2000);
const ownedGroups = allGroups.filter(g => g.ownerId === currentUser.id);
console.log(`Found ${allGroups.length} group(s), ${ownedGroups.length} owned by you.`);
if (ownedGroups.length === 0) {
console.log('No owned groups found. Skipping group bans.');
} else {
for (const membership of ownedGroups) {
const groupId = membership.groupId || membership.id;
const groupName = membership.name || groupId;
console.log(` Banning from ${groupName}...`);
for (const user of usersToBlock) {
try {
const banResp = await fetch(`https://vrchat.com/api/1/groups/${groupId}/bans`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({ userId: user.id })
});
if (banResp.ok) {
groupBanned++;
console.log(` [GROUP BAN] ${user.name} from ${groupName}`);
} else if (banResp.status === 409 || banResp.status === 400) {
groupAlready++;
} else {
groupFailed++;
}
} catch (err) {
groupFailed++;
}
await delay(2000);
}
groupsProcessed++;
console.log(` Finished group: ${groupName}`);
}
}
}
}
} catch (groupError) {
console.warn('Group banning encountered an error:', groupError.message);
}
console.log('');
console.log('=== All Complete ===');
console.log(`Player blocks: ${blocked} blocked, ${failed} failed`);
console.log(`Group bans: ${groupBanned} new, ${groupAlready} already banned, ${groupFailed} failed`);
console.log(`Groups processed: ${groupsProcessed}`);
console.log('');
console.log('You can close this tab now.');
})();
Script copied to clipboard!