FunnyJunk Ultimate Manager

Automated Thumbs Up/Down. Settings page with themes, list transfer, and more.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

Advertisement:

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Advertisement:

Аўтар
EMANON
Усталяванняў за дзень
0
Усяго ўсталяванняў
6
Рэйтынг
0 0 0
Версія
10.0
Створаны
07.10.2025
Абноўлены
30.05.2026
Памер
46.1 КБ
Ліцэнзія
Н/Д
Ужываецца на

FJ Ultimate Manager — Documentation




FJ Ultimate
Manager
v10.0 — Assembly Fix





// Tampermonkey Userscript

FunnyJunk
Ultimate Manager

Automate comment voting, manage targeted user lists, transfer lists between accounts, and customize the interface — all from a floating panel on any FunnyJunk page.


v10.0 Assembly Fix
Tampermonkey
funnyjunk.com
localStorage


01 — Overview

What does it do?

FJ Ultimate Manager injects a small floating control panel onto every FunnyJunk page. From that panel you can automatically upvote comments from all users — while either skipping or downvoting comments from a curated list of targeted users.

It's designed for power users who want to quickly sort through comment sections without clicking every single thumb manually, while still maintaining fine-grained control over specific accounts.

Automated Voting
Walks through every unprocessed comment on the page and votes in one pass, with a small delay between clicks to mimic human behaviour.
🎯
Targeted Users
Users on your permanent blocklist or checked via inline checkboxes are handled differently — skipped or downvoted depending on your chosen mode.
⚙️
Settings Page
Change the default voting mode, pick from 8 colour themes, and toggle whether the panel starts minimized — all saved automatically.
🔄
List Transfer
Export your blocklist as a portable string, share it, and merge it into any other browser or account with zero duplication.
02 — Installation

Installing the script

You need a userscript manager installed in your browser before the script will run.

1
Install a userscript manager
Tampermonkey is recommended and available for Chrome, Firefox, Edge, and Safari. Install it from your browser's extension store.
2
Open the script source
Navigate to the Greasyfork page or click the @downloadURL link at the top of the .user.js file.
3
Click "Install" in Tampermonkey
Tampermonkey will intercept the .user.js URL and prompt you with an install screen. Review the permissions and confirm.
4
Visit any FunnyJunk page
The floating panel will appear in the top-right corner within a second or two of page load. No refresh needed.
ℹ️

Auto-updates
Because the script includes an @updateURL, Tampermonkey will automatically check Greasyfork for newer versions and prompt you to update.
03 — Quick Start

Up and running in 60 seconds

1
Open a comment section on FunnyJunk
Any page with comments works — content pages, profiles, etc.
2
(Optional) Add users to target
Check the red checkbox next to a username inline, or open Settings → type usernames into Bulk Add, or use the Permanent List section of the main panel.
3
Choose a mode from the dropdown
Skip Targets will upvote everyone except your targeted users. Downvote Targets will upvote everyone else and downvote your targets.
4
Press START / STOP
The panel border turns red while running. The counter ticks down as comments are processed. Press again to stop early, or wait for "Finished!" to appear.
04 — Interface

Main panel reference

The main panel floats in the top-right corner of the page at all times. It has a fixed width of 220px and a dark background so it stays readable over any FunnyJunk layout.

Element
Description
Status text
Shows current state: Ready, Running…, N left, Finished!, or Stopped.
⚙ button
Opens the full Settings overlay panel. All persistent options live here.
_ button
Minimizes the panel to a small circular "M" bubble. Click the bubble to restore.
START / STOP
Begins or halts the automated voting pass. The panel border turns red while active.
Mode dropdown
Switches between Skip Targets and Downvote Targets. Changes take effect on the next run.
Permanent List
Collapsible section. Add users from the page dropdown, the scan button, or by typing a name manually.
⟳ Scan button
Re-scans the page for comment authors and refreshes the "Select from Page" dropdown. Also injects checkboxes next to any new names.
💡

Minimize to stay out of the way
If the panel overlaps content, click _ to collapse it to a small bubble. It remembers your last real position on the page.
05 — Voting Modes

Skip vs. Downvote

The mode dropdown controls what happens when the engine encounters a targeted user (someone on your permanent blocklist or checked via checkbox). All non-targeted users are always upvoted.

Skip Targets

The comment is marked as processed and moved past — no vote is cast. Use this when you simply don't want to engage with a user's content at all.

Downvote Targets

A downvote is fired on the comment. If the comment is already downvoted it's skipped to avoid toggling it back. Use this to actively push down targeted users.

⚠️

Already-voted comments
If you've already upvoted a comment in a previous session, its button will be in the active state and the engine will skip it automatically — it will not un-vote it.
06 — Blocklist

Permanent Blocklist

The permanent blocklist is stored in your browser's localStorage and persists between sessions. Every username is stored lowercase for consistent matching regardless of how the name appears on the page.

Adding users

There are four ways to add a user to the permanent list:

  • Expand the Permanent List section, select a name from the Select from Page dropdown, and click Add Selected User.
  • Type a username into the manual input field and click Add Manual User.
  • Use Settings → Bulk Add — paste many names at once.
  • Use Settings → Import & Merge — merge from an exported list string.

Removing users

Click the icon next to any name in the permanent list view in the main panel, or click next to the name in the Settings → Current Blocklist section.

💡

Temporary targeting with checkboxes
Red checkboxes appear inline next to usernames in the comment section. Checking one adds that user to a temporary session-only target set — they are not added to your permanent list. The checkbox approach is useful for one-off runs without cluttering your list.
07 — Inline Checkboxes

Per-comment targeting

When the script loads (or when you press the ⟳ scan button), it walks the DOM and injects a small red checkbox before each comment author's username link. Checking one marks that user as a target for the current run only.

ℹ️

Temporary — not saved
Checked checkboxes are read when you press START and are not written to localStorage. If you want to make a checked user permanent, add them via the Permanent List section or Settings → Bulk Add.

Checkboxes are injected once per unique author element. If you scroll down and new comments load dynamically, press ⟳ to scan the new content before starting a run.

08 — Settings

Settings panel overview

Click the button in the panel header to open the Settings overlay. Changes are not saved until you click Save Settings — clicking the overlay background or Cancel discards unsaved changes.

⚙ FJ Manager Settings
Defaults
Skip Targets
Downvote Targets

Start minimized by default
Color Theme

[ Export · Import · Bulk Add · Blocklist sections below… ]

Settings are stored under the fj_manager_settings key in localStorage and loaded on every page load.

09 — Themes

Color themes

Eight accent colors are available. The chosen color is applied to the panel border (when idle), the START button, the ⚙ button, the restore bubble, and mode/toggle highlights inside Settings.

Green (default)
Blue
Purple
Red
Orange
Cyan
Pink
Mono
💡

Live preview
Clicking a swatch in the Settings panel updates the CSS variables inside the overlay immediately — you can see the button and toggle colours change before saving.
10 — Default Options

Startup defaults

Default mode

Choose whether the mode dropdown opens on Skip Targets or Downvote Targets each time the page loads. The currently running mode is always shown in the main panel dropdown and can be changed per-session without going into Settings.

Start minimized

When enabled the panel will automatically minimize itself to the small "M" bubble as soon as it injects, keeping the page unobstructed. Toggle the bubble to expand the panel when you need it.

11 — List Transfer

Exporting your list

Settings → Export List converts your permanent blocklist into a compact, portable string using Base64 encoding around a JSON payload. The format is:

// Internal payload structure (before encoding)
{ "v": 1, "users": ["alice", "bob", "charlie"] }

// After btoa() encoding — what you actually copy/share
eyJ2IjoxLCJ1c2VycyI6WyJhbGljZSIsImJvYiIsImNoYXJsaWUiXX0=

Click Generate to produce the string, then 📋 Copy to put it in your clipboard. You can paste it into a text file, Discord message, or send it to another person.

ℹ️

No server involved
Everything happens locally in your browser. The export string contains only usernames — no personal data, no account info, no cookies.
12 — List Transfer

Importing & merging

Settings → Import & Merge accepts any valid export string. Paste it into the text area and click Merge into List.

  • New usernames are added to your permanent blocklist immediately.
  • Names already in your list are silently skipped — no duplicates are created.
  • The result is reported: "Added 12 user(s) · 3 already in list".
  • The blocklist view in Settings updates in real time.
⚠️

Invalid strings
If the string has been truncated or modified, the import will fail with an error message. Re-generate the export from the source browser and try again.
13 — List Transfer

Bulk add usernames

Settings → Bulk Add Usernames lets you paste a raw list of names — no encoding required. Supported formats:

// One per line
alice
bob
charlie

// Comma-separated
alice, bob, charlie

// Mixed
alice, bob
charlie
dave, eve

All names are lowercased and trimmed before saving. Duplicates are skipped automatically. Click Add All and the result is reported immediately.

14 — Reference

Data storage

All data is written to window.localStorage under two keys. No data leaves your browser.

KeyContainsFormat
fj_user_blocklistYour permanent targeted-user list, persisted across all sessions.JSON array of lowercase strings — ["alice","bob"]
fj_manager_settingsYour chosen theme, default voting mode, and default-minimized toggle.JSON object — {"theme":"blue","defaultMode":"skip","defaultMinimized":false}

Clearing all data

To completely reset the script, open your browser's DevTools (F12), go to Application → Local Storage → funnyjunk.com, and delete both keys. Alternatively, run this in the DevTools console:

localStorage.removeItem('fj_user_blocklist');
localStorage.removeItem('fj_manager_settings');
15 — FAQ

Frequently asked questions

The panel isn't appearing on some pages — why?
The script waits for document.body to exist before injecting. On pages with unusual load sequences it may take a moment. If it never appears, check the Tampermonkey dashboard to confirm the script is enabled and matches the current URL.
Why does the scan button sometimes find fewer users than I expect?
The scan only picks up comments that are currently in the DOM. If FunnyJunk lazy-loads additional comments as you scroll, scroll down first and then press ⟳ to pick up the new ones before running.
Will clicking too fast get my account flagged?
The engine fires clicks with a 150ms delay between each one and dispatches full mouse event sequences (mouseover → mousedown → mouseup → click) to mimic human input. That said, automated voting at scale is always a potential ToS concern — use at your own discretion.
Can I use the same blocklist on multiple browsers or computers?
Yes — that's exactly what the Export/Import system is for. Export your list from Browser A, copy the string, paste it into Import & Merge on Browser B, and click Merge. Done.
Can I share my list with a friend?
Yes. The export string is plain text — paste it anywhere. Your friend pastes it into Import & Merge on their installation to add your targeted users to their list. Their existing list is not overwritten; names are merged.
How do I change the color theme?
Click ⚙ → scroll to Color Theme → click any swatch → click Save Settings. The entire panel updates immediately.
What happens if I check a checkbox AND the user is on my permanent list?
Both the checkbox and the permanent list are checked on each comment. Either condition triggers the target behaviour — there is no double effect or conflict.
16 — Changelog

Version history

Version
Changes
v10.0
Full Settings overlay (⚙ button). 8 colour themes. Default mode and default-minimized options. Export / Import / Merge / Bulk Add list management. Separate settings storage key. CSS variable-driven theming.
v9.7
Selector fix for upvote buttons. Updated click engine logic to handle already-voted states. Restored missing UI assembly block. Added per-user inline checkboxes.
Earlier
Initial builds: basic auto-upvote, blocklist concept, minimize button, Greasyfork publishing.

FJ Ultimate Manager — by Emanon — v10.0
Data stays local · No external requests · MIT-style