Fe- John Doe Script -no Hats Needed- R15 R6 -
FE – John Doe Script — No Hats Needed — R15 / R6
Purpose
- Provide a clear, runnable guide for using the "John Doe" FE script in Roblox with both R15 and R6 avatars.
- Explain installation, configuration, usage, and troubleshooting in a concise, practical way.
- Emphasize that the script assumes no hat accessories are required or supported.
Compatibility
- Roblox avatars: R15 and R6
- Roblox Studio: current stable release (use latest update if available)
- Lua: Roblox Lua (Luau)
- Animation format: use Roblox Animator/Animation objects compatible with R15 and R6 rigs
Files & Structure
- john_doe.lua — core module (behavior, movement overrides, animations)
- animations/
- jd_idle_r15.anim
- jd_walk_r15.anim
- jd_run_r15.anim
- jd_idle_r6.anim
- jd_walk_r6.anim
- jd_run_r6.anim
- assets/ (optional)
- sounds/ (footsteps, voice lines)
- configs.json (optional overrides)
- README.md — short usage notes (in repo)
- ExampleStarterPlayerScripts.lua — minimal bootstrap script to require the module
Design principles
- Non-invasive: minimal changes to existing character properties; restores defaults on disable.
- Dual-rig support: detect R15 vs R6 and load appropriate animations and bone mappings.
- No-hat policy: script ignores, removes, or safely hides hat accessories to avoid clip/behavior issues.
- Safe cleanup: disconnects events and restores altered joints on unload.
Installation
- Place john_doe.lua into ServerScriptService or StarterPlayerScripts depending on desired scope:
- ServerScriptService: server-side authoritative behavior (recommended if controlling movement server-side).
- StarterPlayerScripts: per-player local behavior (good for client-side animations/visuals).
- Copy animations into an accessible place (e.g., ReplicatedStorage/JohnDoe/Animations).
- If running client-side, put ExampleStarterPlayerScripts.lua in StarterPlayerScripts and adjust paths to the module and animations.
- Optional: add assets/sounds to ReplicatedStorage/JohnDoe/Sounds and reference them from config.
Basic API (module interface)
- Module.new(player, options)
- player: Player instance
- options: table with optional keys:
- animationsFolder (Instance) — where to find animations
- removeHats (boolean, default true) — whether to remove/hide hats
- priorityOverride (Enum.AnimationPriority) — custom animation priority
- enableFootstepSounds (boolean, default false)
- instance:Enable() — activate behavior (start animations, override walk)
- instance:Disable() — stop and clean up (restore character)
- instance:Destroy() — full cleanup and nil references
Initialization example (StarterPlayerScripts)
local JohnDoe = require(game.ReplicatedStorage.JohnDoe.john_doe)
local player = game.Players.LocalPlayer
local jd = JohnDoe.new(player,
animationsFolder = game.ReplicatedStorage.JohnDoe.Animations,
removeHats = true,
enableFootstepSounds = true,
)
jd:Enable()
How rig detection works
- On character added:
- Check for Humanoid.RigType or presence of specific bones:
- If Humanoid.RigType == Enum.HumanoidRigType.R15 → R15
- Else treat as R6 fallback
- Check for Humanoid.RigType or presence of specific bones:
- Loads the matching animation set and maps key joints appropriately.
Animation handling
- Uses Animator object on Humanoid to load AnimationTracks.
- Stores created AnimationTracks to stop them later.
- Uses high/idle/walk/run states:
- Idle: always playing with crossfade
- Walk/Run: speed-driven blend or play separate animations based on Humanoid.MoveDirection and Humanoid.WalkSpeed thresholds
- Priority defaults to Action or Movement where appropriate; configurable via options.
No-hats-needed behavior
- On character setup:
- If removeHats = true:
- Iterates through character:GetChildren(), finds Accessories (Accessory Instances), and either:
- parent them to a hidden folder to preserve inventory, or
- set Accessory.Handle.Transparency = 1 and CanCollide = false, or
- call :Destroy() only if explicitly safe and desired (not the default).
- Ensures hat removal is reversible on Disable() or Destroy().
- Iterates through character:GetChildren(), finds Accessories (Accessory Instances), and either:
- If removeHats = true:
- Rationale: Avoids animation/joint conflicts and visual clipping. Script never assumes hats are present.
Movement overrides and physics considerations FE- John Doe Script -No Hats Needed- R15 R6
- Prefer using Humanoid:MoveTo or manipulating Humanoid.WalkSpeed rather than directly changing RootPart CFrame.
- If smoother movement required, use a VehicleSeat-like interpolation on HumanoidRootPart with collision-safe settings.
- Do not permanently alter Humanoid.JumpPower or HipHeight unless restored on cleanup.
- Respect server-client authority: perform authoritative movement changes on the server; visuals and local smoothing on client.
Sound & VFX
- Footstep sounds tied to Animation events or step timing derived from speed.
- Sounds played locally to avoid network latency; optional server broadcast for synchronous events in multiplayer.
- VFX (dust, particle) should be parented to HumanoidRootPart and created/destroyed on Enable/Disable.
Configuration tips
- Walk/run speed thresholds:
- R15 default WalkSpeed: 16 — use walk animation when speed <= 16, run when > 16 (or adjust to your game).
- R6 default WalkSpeed: 16 — same thresholds apply but animation timings differ.
- Animation blending: use :Play()
Chapter 1: Decoding the Keyword – What Is the "FE John Doe Script"?
Before pasting any code into your executor (like Synapse X, Krnl, or Script-Ware), you must understand the anatomy of the keyword.
The Future of "No Hats Needed" Scripts
As Roblox continues to roll out Byfron (their new anti-tamper system), traditional executors are dying. However, the demand for the FE- John Doe Script -No Hats Needed- R15 R6 remains high. Developers are now moving toward Webhook-based executors and mobile script hubs to keep the John Doe legacy alive.
Expect to see more updates focusing on:
- Cross-platform compatibility (PC, Mobile, Xbox).
- Invisible hat removal (for games with forced dev hats).
- Rthro compatibility (for the new slender bodies).
Overview
This script is designed for FE (FilteringEnabled) compatibility in Roblox, allowing a John Doe (default gray outfit with “?” face) character to automatically have no hats equipped — regardless of the player’s inventory — and work seamlessly across R15 and R6 character rigs.
The "No Hats Needed" Advantage
Traditionally, creating custom avatars or "dummy" characters in Roblox often required a specific number of hats or accessories to manipulate meshes and textures. This was a tedious process known as "hiding" parts of the avatar using invisible hats.
The standout feature of this specific script is the tag: "-No Hats Needed."
This indicates a streamlined efficiency. Users do not need to clutter their inventory with specific invisible accessories to achieve the John Doe look. The script handles the character modification internally, stripping away complex assets and reverting the character to a clean slate instantly. This is particularly useful for players who want a minimalist aesthetic or are using the character as a base for further morph scripts.
The "John Doe" Phenomenon
John Doe (and his counterpart Jane Doe) are official Roblox test accounts. Because they are system-level accounts, injecting their appearance is a form of Network Ownership Exploitation. The script forces your character ID to revert to 1 (John Doe's asset ID) without swapping your actual inventory. FE – John Doe Script — No Hats
R6 (The Classic)
- Pros: Stiff, rigid animations. Easier to "freeze" or "crack" the joints using CFrame manipulation. The "glitch effect" looks more pronounced because the torso and legs don't bend.
- Script Usage: The script directly accesses
Torso,Head,Left Arm,Right Arm,Left Leg,Right Leg. It’s very fast for morphing. - John Doe Fit: R6 is the original "Noob" body. It fits the John Doe aesthetic perfectly.