Home
Why the M1 Framework Is the Secret to Professional Combat in Jujutsu Shenanigans
The term M1 Framework in Jujutsu Shenanigans (JJS) represents the fundamental logic structure used within the game’s Skill Builder tool to create fluid, responsive, and balanced melee combat. While many novice creators simply trigger an animation and a hitbox, professional-grade custom characters rely on a sophisticated "framework"—a reusable sequence of nodes that handles hit detection, combo branching, animation canceling, and physical knockback.
In Jujutsu Shenanigans, M1 refers to the Left Mouse Button (LMB) attacks, which typically consist of a four-hit sequence. Building a framework for these attacks is not about writing external code; it is about mastering the internal Character Block and its modular logic gates. A well-constructed framework ensures that combat feels "heavy" and rewarding, preventing the floaty or unresponsive behavior often seen in amateur Skill Builder projects.
Understanding the Components of a Combat Framework
Before placing the first node, it is essential to understand what makes a combat system functional within the Roblox engine specifically for JJS. The framework serves as the "brain" of the character, deciding what happens when a player clicks and, more importantly, what happens when that click fails to connect with an opponent.
The Character Block: The Central Nervous System
The Character Block is the primary container for M1 logic. Within this block, the Melee settings define the global behavior of basic attacks. However, a professional framework uses the Character Block to trigger specific sub-logic sequences. By organizing M1s into discrete sections, developers can easily adjust the "startup" (the frames before the hit registers) and "endlag" (the recovery period) of each strike.
Hit-Cancel Nodes: The Logic Gates
The defining feature of a high-level M1 framework is the hit-cancel node. In standard combat, if a player misses their attack, they should be punished with a longer cooldown or a "miss" animation. If they hit, the framework must immediately "cancel" the recovery and allow the player to branch into the next attack in the combo string. This branching logic is what separates a spammy character from a tactical one.
Hitboxes and Raycasting
Reliable hit detection is the foundation of the framework. While JJS provides basic hitbox shapes, a professional framework often uses specific offsets and timing intervals to ensure the hit registers exactly when the animation’s fist or weapon makes contact. This requires syncing the "Active" state of the hitbox block with the specific keyframes of the animation.
Step-by-Step Construction of a 4-Hit M1 String
Creating a standard 4-hit combo is the most common use of the M1 framework. This process involves setting up a logic chain where each successful hit enables the next, eventually leading to a "finisher" move that provides significant knockback.
Initializing the First Strike
The first M1 is the fastest. It requires minimal startup frames to ensure the player feels immediate responsiveness. In our internal testing, setting the startup delay to 0.05 seconds or lower is optimal for maintaining the "snappy" feel expected in JJS battlegrounds.
- Input Trigger: Connect the Melee input to a sequence node.
- Animation Block: Trigger the first punch animation. Ensure the animation speed is set to a value that matches the intended character archetype (e.g., speed-based characters at 1.2x, heavy hitters at 0.8x).
- Hitbox Activation: Place the hitbox block slightly after the animation starts. For a standard punch, a sphere or box hitbox localized to the right hand or weapon tip is standard.
Implementing the Branching Logic
Once the first hit registers, the framework must check for the next input. This is achieved using a "Conditional Branch" node within the Skill Builder.
- Hit Detected: If the hitbox block returns a "True" value for a hit, the framework proceeds to the "Success" branch. This branch clears the current endlag and prepares the logic for M1 #2.
- Hit Missed: If the hitbox expires without a collision, the "Fail" branch triggers a longer recovery block, preventing the player from immediately starting a new combo.
The Third Hit Reset Technique
In high-level play, many players look for an "M1 Reset." A professional framework can be designed to allow a specific timing window where the third hit can be canceled into a special move (Skill 1-4) or a dash, rather than proceeding to the fourth hit. This adds a layer of depth to the character, allowing for more complex combos beyond simple clicking.
Physics and Impact: Making Combat Feel Heavy
A framework that only registers damage is incomplete. The "feel" of Jujutsu Shenanigans comes from how characters move and react during combat. This involves manipulating the physics engine via Velocity and Stun blocks.
Velocity and Knockback Calculations
Each hit in the M1 string should have different physical properties.
- Hits 1 through 3: These should apply minimal knockback, just enough to keep the opponent in range for the next strike. In the Skill Builder, use a "Linear Velocity" block with a short duration (0.1s) and a low force value (e.g., 20-30 units).
- The 4th Hit (The Finisher): This strike requires an "Impulse" or a high-force Velocity block. Usually, this hit sends the opponent flying back or slams them into the ground. A common technique is to use a "Body Velocity" block aimed at the opponent's LookVector with a Y-axis offset to create an upward or downward arc.
The Importance of Stun Duration
Stun (or hit-stun) is what prevents the opponent from retaliating instantly. A balanced M1 framework typically applies a stun duration of 0.6 to 0.8 seconds per hit. During our tests, we found that if the stun is too short, the opponent can "mash" out of the combo; if it is too long, the game becomes frustratingly one-sided. The goal is to make the stun duration slightly longer than the time it takes for the attacker to initiate the next hit in the sequence.
Advanced Framework Features: Uppercuts and Down-slams
To truly reach a professional level, an M1 framework should incorporate directional inputs. By checking the player's movement state during an M1 click, the framework can trigger different attacks.
Implementing the Uppercut (Space + M1)
If the player is holding the jump key or is in mid-air when the M1 framework is triggered, the logic should branch to an "Uppercut" sequence.
- Logic: Add a "Get Character State" node. If the state is "Jumping" or "InAir," bypass the standard M1 string and trigger the Uppercut animation and hitbox.
- Physics: The Velocity block for an uppercut should have a high Y-axis value (e.g., 50 units) to launch both the attacker and the defender into the air, enabling air-combo sequences.
The Down-slam (S + M1 or Air-Down)
Similarly, holding the "S" key (Backwards) or attacking while falling can trigger a down-slam. This move is crucial for ending air combos by slamming the opponent into the destructible environment. The framework must detect the ground proximity using a "Raycast" node to trigger the appropriate ground-impact VFX and crater destruction.
Optimizing for Network Conditions
Roblox is a multiplayer platform where latency (ping) varies wildly. A rigid M1 framework will fail if it doesn't account for these differences. Professional frameworks use "Client-Side Prediction" or wider hitbox durations to compensate for lag.
Hitbox Duration vs. Animation Length
If a hitbox only lasts for 0.05 seconds, a player with 150ms ping may never register a hit because the server-side position of the opponent has already moved. A robust framework extends the hitbox "active" window slightly beyond the visual impact to ensure reliability. However, this must be balanced to avoid "ghost hits" where a player is hit from an impossible distance.
Server-Side Validation
While the Skill Builder handles much of this automatically, the framework designer should ensure that damage calculations and stun applications are processed on the server logic to prevent exploiters from manipulating the M1 speed.
Visual and Audio Polish
A framework is technically a logic map, but its effectiveness is perceived through visuals and sound. Without proper feedback, the M1s feel like "hitting air."
VFX Synchronization
Every hit in the framework should trigger a "VFX Block." For JJS-style combat, this usually involves:
- Hit Sparks: Small, directional particles that emit from the point of impact.
- Impact Frames: A very brief (0.02s) pause in animation speed upon a successful hit, simulating the resistance of hitting a physical body.
- Motion Trails: Subtle white or colored trails following the limb to emphasize the speed of the strike.
Sound Design within the Framework
Audio should be layered. A "Swing" sound should play at the start of the M1 node, while a "Hit" sound (often a heavy punch or flesh impact sound) should be triggered only via the "Hit Detected" branch of the logic gate. This audio feedback reinforces the logic of the framework to the player.
Comparing Community Frameworks vs. Custom Building
Many players search for "M1 Frameworks" on community Discord servers or YouTube tutorials. These are essentially pre-made node configurations that can be copied into the Skill Builder.
The Benefits of Using Presets
For beginners, a community preset provides a solid foundation. These presets usually have the "Mechamaru" style M1 resets or "Gojo" style teleport-strikes already configured. They save hours of trial and error regarding hitbox offsets and stun timings.
The Necessity of Customization
However, relying solely on a preset limits creativity. A character like "Mahito" requires a framework that feels fluid and transformative, whereas "Sukuna" needs a framework that feels sharp and oppressive. Understanding the underlying logic—the "framework" itself—allows a creator to tweak the variables to match the soul of the character.
Troubleshooting Common Framework Issues
Even the most advanced frameworks encounter bugs during development. Here are the most common issues and how to resolve them within the Skill Builder.
The "Infinite Combo" Glitch
If the hit-cancel nodes are not properly gated by a cooldown, a player might be able to loop the M1 sequence indefinitely.
- Fix: Ensure each "Success" branch has a mandatory "Wait" node or a "Swing Cooldown" variable that prevents the next input from registering too early.
Hitboxes Not Registering
Sometimes the animation plays, but no damage is dealt.
- Fix: Check the "Attachment" of the hitbox block. If it is attached to the "RightHand" but the animation uses the "LeftHand" for that specific strike, the hitbox will be in the wrong position. Always verify which limb is leading the attack.
Characters Getting "Stuck" in Animation
This happens when a logic branch reaches a dead end without a "Clear Animation" or "Reset State" node.
- Fix: Every M1 sequence must end in a state that returns control to the player, regardless of whether it hit or missed. Use a "Cleanup" sequence at the end of every block.
Summary of the M1 Framework Essentials
To build a professional combat system in JJS, the framework must be more than just a sequence of attacks. it must be a responsive logic system that handles physics, timing, and player input with precision.
| Component | Function | Professional Tip |
|---|---|---|
| Startup Delay | Time before hitbox appears | Keep between 0.03s and 0.07s for snappiness. |
| Hit-Cancel Node | Allows combo continuation | Only trigger on a "True" hit detection. |
| Linear Velocity | Controls knockback | Use lower values for early hits, higher for finishers. |
| Stun Block | Prevents opponent retaliation | Ensure stun > attack recovery time. |
| Raycast Node | Detects environment/ground | Essential for down-slams and crater VFX. |
By mastering these components, creators can elevate their JJS characters from basic "test" models to professional-grade battleground contenders. The framework is not just a tool; it is the architecture of the fight itself.
Conclusion
The "M1 Framework" in Jujutsu Shenanigans is the invisible engine that drives the game’s addictive combat. Whether you are building a custom character from scratch in the Skill Builder or analyzing the mechanics of top-tier characters like Gojo or Sukuna, understanding hit-cancel logic, physics-based knockback, and animation synchronization is vital. While the community provides many templates, the most successful developers are those who understand the "why" behind every node, ensuring that every punch, kick, and slam feels as impactful as the anime that inspired them.
FAQ
What is the best M1 framework for a beginner in JJS?
The best starting point is a standard 4-hit combo using Hit-Cancel nodes. This teaches the basics of branching logic and hitbox timing. Many community-shared "Character Blocks" in the Skill Builder are specifically designed as "Starter Frameworks" for this purpose.
How do I add a "Black Flash" to my M1 framework?
A Black Flash is typically implemented as a "Random Chance" node within the M1 framework. If the hit registers, the logic rolls a percentage (e.g., 5%). If successful, it triggers a different VFX block (black and red sparks) and multiplies the Damage and Velocity values for that specific strike.
Why do my M1s feel laggy even with low ping?
This is usually caused by excessive "Startup Delay" in your Skill Builder nodes or using animations with too many "wind-up" frames before the strike. Try reducing the delay before the Hitbox Activation block and ensure your animations are set to 1.1x or 1.2x speed.
Can I copy an M1 framework from one character to another?
Yes. In the Skill Builder, you can often export or copy "Blocks." However, you must ensure that the new character’s animations and limb attachments match the original framework's settings, or the hitboxes will not align correctly.
Does the M1 framework affect the "Awakened" state?
Absolutely. A professional framework should have a "Check State" node at the beginning. If the character is in an "Awakened" state, the framework can branch to an entirely different set of M1s with increased range, damage, and unique finishers.