Documentation

Get up and
running fast.

Everything you need to know to load Xenon Hub and get the most out of it. Start here if it is your first time, or jump to a specific section if you are looking for something particular.

Installation #setup

Xenon Hub runs entirely through your executor. Paste the loader below into the console after joining a Jujutsu Shenanigans server and run it. That is all there is to it.

executor console
-- paste this into your executor and run it
loadstring(game:HttpGet("https://api.luarmor.net/files/v3/loaders/eed1b8c86a83b71bf7e8ec398fc39401.lua"))()
The script checks your whitelist status automatically. Free features work for everyone with no whitelist needed. Premium features unlock if your account is on the list.
1

Join the game

Open Roblox and get into a Jujutsu Shenanigans server. Wait for it to fully load before you do anything else.

2

Attach your executor

Open your executor and attach it to Roblox. Wave is the most compatible option but others work too.

3

Run the loader

Paste the script above into the console and hit execute. The UI opens automatically on the Auto Block tab.

4

Save your settings

Go to UI Settings and use the SaveManager section to save your config. It loads automatically next time.

Executors #executors

Most features work on any UNC compliant executor. A small number of the more advanced features need specific functions that not every executor provides.

Executor Compatibility
Potassium Full support, recommended (paid)
Velocity Full support, recommended (free)
Astroid Full Support (New executor)
Delta Full Support, recommended (Mobile)
Others Works if UNC compliant, some features may be limited

When the script loads it checks what your executor supports and shows a notification if anything is missing. Features that need those functions get quietly disabled rather than breaking everything else.

First run #first-run

After executing you will see the Obsidian UI. Press Y by default to open and close it. You can change this keybind in the UI Settings tab.

Suggested starting setup

  • Auto Block tab: Enable auto block and set the distance to around 30. Enable auto punish underneath it.
  • Misc tab: Enable lock on. Camera mode is the default and works well to start with. Turn on Show Locked Target so you can always see who you are tracking.
  • Character Combat tab: Open this and enable anything relevant to whichever character you play.
  • UI Settings tab: Save your config at the bottom so settings come back automatically next time.

Auto Block #autoblock

Auto block watches every character in the game and blocks incoming attacks for you based on what animations they are playing. It handles a wide range of situations including multi hit combos, grabs, projectiles, and domain exposure.

Key settings

Setting What it does Default
Max Distance How far away enemies trigger a block 30 studs
Chase Distance Distance limit for dash and chase animations 50 studs
Anti Fake Dist Max reach for melee validation checks 16 studs
Facing Angle How directly the enemy must face you for melee to count 100 degrees
Hold After Hit Seconds to stay blocking after getting hit 0.3 seconds
Locked Target Only mode restricts auto block to your current lock target only. Everything else gets ignored. Useful in group fights where you want control over what you react to.

Lock On #lockon

Lock on keeps you facing your target automatically. It runs every frame so it stays accurate even through dashes and fast movement. Prediction is optional but makes a noticeable difference if you turn it on.

Lock methods

  • Camera: Rotates your camera to face the target each frame. Most subtle option.
  • Character: Makes your character physically face the target. More aggressive but ensures your attacks actually connect.
  • TBO/JJS Lock On: Uses the game's own built in lock on system. Requires Wave or an executor that can hook into PlayerScripts.

You can combine multiple methods at once using the extra methods dropdown. Most people run Camera plus Character together.

Target filter

The Lock Target Filter section in the Misc tab lets you build a whitelist or blacklist of players. Whitelist mode means only listed players can be locked. Blacklist mode excludes specific players from targeting. Useful for protecting friends or focusing specific enemies in a team fight.

Black Flash Chain #bfchain

There are two versions. The standard one triggers after divergent fist animations play and handles timing automatically. The legit version (premium) dashes around the target on an arc first, lands behind them, then fires the black flash at the right moment so it looks like a player doing it.

Tuning the legit version

  • Target Distance: How close the enemy needs to be for it to fire. 30 studs is a good starting point.
  • Dash Delay: How long after the dash starts before the black flash fires. Adjust down if you have high ping, up if you are missing.
  • Auto Angle: Automatically picks the best approach angle based on which way the target is facing. Worth turning on.
  • No Stick: Disables the arc redirect and just dashes straight. Some people prefer this.

Combo System #combos

Record any sequence of button presses and save it. Play it back on demand with a keybind or from the UI. Combos save to files so they persist between sessions and can be shared with other people.

1

Start recording

Hit Start Recording in the Combo tab. From that point every key press and click gets captured including timing.

2

Do your combo

Click M1, press ability keys, dash, whatever. Everything is recorded exactly as you do it including any pauses between inputs.

3

Stop and save

Click Stop Recording, type a name in the box, and hit Save. The file saves automatically and shows up in the combo select dropdown.

4

Play it back

Pick it from the dropdown, set a keybind if you want, and press play. Speed and stop conditions are adjustable from the same tab.

Advanced Scripts #adv-script

The Advanced Combo tab has its own simple scripting language for when you need more than a recorded replay. You can add conditions, loops, waits, lock on commands, and more. This is a full reference for every command.

Basic lines

Syntax What it does
{ Start combo lines
} End combo lines
// Note line, script will ignore it

Target and setup commands

Command What it does
checkchar(name) Only continue if your current character is this name
lockclosest(number) Lock to nearest enemy. You can set max distance optionally
lockselected() Lock to the player you picked in dropdown (LBB / AB)
settarget(mode_or_name) Pick target by mode or by name
unlock() Remove lock target

Action commands

Command What it does
key(name, number) Press a key, optional hold time
press(name, number) Same as key
m1() Left click attack
m2() Right click attack
block() Hold block
unblock() Stop blocking

Time and logic commands

Command What it does
wait(number) Wait this many seconds
waitforanimend() Wait until attack animation is done
waitforattackanim() Same as waitforanimend()
waithit(number) Wait for hit. Default timeout is 1.25
stopif(condition) Stop combo if condition is true
if(condition) then (command) Run command only if condition is true

Your conditions

These check your own character state. You can use either the full name or the shorthand alias.

Condition What it checks
inult You are in ult
dead Your character is dead
needburst / burst You can use burst while stunned or ragdolled
ragdolled / ragdoll You are ragdolled
stunned / stun You are stunned
blocking / block You are blocking
notblocking / unblocking You are not blocking
lowhp Your HP is low (35% or less)
whiffed / whiff Your last attack missed
thirdparty Another enemy is close
hitanim / hit Hit animation was found

Enemy conditions

Add enemy at the end to check the enemy state instead of your own.

Condition What it checks
inultenemy Enemy is in ult
deadenemy Enemy is dead
needburstenemy / burstenemy Enemy can burst while stunned or ragdolled
ragdolledenemy / ragdollenemy Enemy is ragdolled
stunnedenemy / stunenemy Enemy is stunned
blockingenemy / blockenemy Enemy is blocking
notblockingenemy / unblockingenemy Enemy is not blocking
lowhpenemy Enemy HP is low (35% or less)
whiffedenemy / whiffenemy Enemy missed (same whiff check logic)
thirdpartyenemy Enemy has another player close
hitanimenemy / hitenemy Enemy has hit animation or hit state

Key names you can use

1   2   3   4   r   q   f   e   space   w   a   s   d

How it runs

  • playadvcombo(raw) reads your combo one line at a time.
  • If a line is wrong, it gives a warning.
  • lockclosest, lockselected, settarget keep lock during combo.
  • unlock, combo stop, or combo end will clear lock.

Example

example combo script
-- lock onto someone, loop m1 into bfc when they block
lockclosest 40
loopstart
  stopif deadenemy
  m1
  wait 0.2
  m1
  wait 0.2
  m1
  if blockingenemy then bfc 0.35 waitforanimend
  waitforanimend
loopuntil deadenemy

Mobile Setup #mobile

The script automatically detects mobile and adjusts how it works. Lock on targets the closest player to the center of the screen rather than the mouse position. Ability buttons fire by slot number instead of keyboard keys.

Mobile toggle buttons

In the UI Settings tab, pick any toggles from the Show on Mobile dropdown. Then click Toggle Mobile UI to put draggable buttons on the screen for each one. You can move them around by dragging, and lock their positions once they are where you want them.

  • Lock Button Positions: Stops buttons from being accidentally dragged during a fight.
  • Reset Button Positions: Moves everything back to the default grid if you mess up the layout.

Config files #config

Everything saves into the XenonHub folder inside your executor workspace. Here is what each file does.

File Purpose
XenonHub/JJS/*.json Named UI configs saved from the SaveManager
XenonHub/combos/*.json Saved combo recordings
XenonHub/mobiletoggles.json Which toggles show as mobile buttons
XenonHub/mobilepositions.json Where you dragged the mobile buttons
XenonHub/tplocations.json Custom saved teleport positions (premium)
XenonHub/JJS/Songs/ Audio files for the Hakari music replacement

Troubleshooting #troubleshoot

Auto block stopped working after a JJS update

JJS changes animation IDs when they patch things. The script gets updated to match. Just re execute and you will be on the latest version.

Lock on keeps targeting the wrong person

Use the whitelist mode in the Lock Target Filter section to restrict it to specific players. Or enable Locked Target Only in the Auto Block tab so everything respects the same target.

Black flash arc is missing

Try lowering the Dash Delay slider by 0.05 at a time until it lands. Higher ping usually needs a lower delay value. Enable Auto Angle as well since it helps the approach path.

The script says functions are missing

A notification on load will list any functions your executor does not have. Features that need those functions get disabled. Switching to Wave fixes most of these cases.

Combos play back too fast or too slow

Adjust the speed multiplier in the Combo tab. Higher values speed up playback. If inputs are dropping, enable Wait For Animation so each step waits for the previous attack to finish before moving on.