Finjer

Hitbox module (Finjer)

Jul 19th, 2025
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.51 KB | Source Code | 0 0
  1. local hitboxModule = {}
  2. --// Service //--
  3. local Players = game:GetService('Players')
  4. --// Etc //--
  5. --// Function //--
  6. function hitboxModule.CreateOnceHitbox(character, size, offset, showHitbox)
  7.    
  8.     local player = Players:GetPlayerFromCharacter(character)
  9.     local humanoidRootPart = character:FindFirstChild('HumanoidRootPart')
  10.     local enemyCharacter
  11.    
  12.     local params = OverlapParams.new()
  13.     params.FilterDescendantsInstances = {character}
  14.    
  15.     if showHitbox == true then
  16.        
  17.         local result = Instance.new('Part')
  18.         result.Size = size
  19.         result.CFrame = character.HumanoidRootPart.CFrame * offset
  20.         result.Color = Color3.fromRGB(255)
  21.         result.Transparency = 0.9
  22.         result.Material = Enum.Material.Plastic
  23.         result.Anchored = true
  24.         result.CanCollide = false
  25.         result.CanTouch = false
  26.         result.CanQuery = false
  27.         result.Parent = workspace
  28.        
  29.         game.Debris:AddItem(result, 1)
  30.        
  31.     end
  32.    
  33.     local hitboxContent = workspace:GetPartBoundsInBox(character.HumanoidRootPart.CFrame * offset, size, params)
  34.    
  35.     local hitCharacter = {}
  36.    
  37.     for _, part in hitboxContent do
  38.        
  39.         if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
  40.            
  41.             enemyCharacter = part.Parent
  42.             table.insert(hitCharacter, enemyCharacter)
  43.         end
  44.        
  45.     end
  46.    
  47.     return enemyCharacter
  48.    
  49. end
  50. function hitboxModule.CreateHitbox(character, size, offset, showHitbox)
  51.     local player = Players:GetPlayerFromCharacter(character)
  52.     local humanoidRootPart = character:FindFirstChild('HumanoidRootPart')
  53.     local enemyCharacter
  54.     local params = OverlapParams.new()
  55.     params.FilterDescendantsInstances = {character}
  56.     if showHitbox == true then
  57.         local result = Instance.new('Part')
  58.         result.Size = size
  59.         result.CFrame = character.HumanoidRootPart.CFrame * offset
  60.         result.Color = Color3.fromRGB(255)
  61.         result.Transparency = 0.9
  62.         result.Material = Enum.Material.Plastic
  63.         result.Anchored = true
  64.         result.CanCollide = false
  65.         result.CanTouch = false
  66.         result.CanQuery = false
  67.         result.Parent = workspace
  68.         game.Debris:AddItem(result, 1)
  69.     end
  70.     local hitboxContent = workspace:GetPartBoundsInBox(character.HumanoidRootPart.CFrame * offset, size, params)
  71.     local hitCharacter = {}
  72.     for _, part in hitboxContent do
  73.         if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
  74.             enemyCharacter = part.Parent
  75.             table.insert(hitCharacter, enemyCharacter)
  76.         end
  77.     end
  78.     return hitCharacter
  79. end
  80.  
  81. --finjer
  82.  
  83. function hitboxModule.CreateHitboxWithoutChar(pos : Vector3, size, shape, showHitbox)
  84.    
  85.     local enemyCharacter
  86.     if showHitbox == true then
  87.         local result = Instance.new('Part')
  88.         result.Size = Vector3.new(size, size, size)
  89.         result.CFrame = CFrame.new(pos)
  90.         result.Color = Color3.fromRGB(255)
  91.         result.Transparency = 0.2
  92.         result.Anchored = true
  93.         result.CanCollide = false
  94.         result.CanTouch = false
  95.         result.CanQuery = false
  96.         result.Shape = Enum.PartType[shape]
  97.         result.Parent = workspace
  98.         game.Debris:AddItem(result, 1)
  99.     end
  100.     local hitboxContent
  101.        
  102.     if shape == 'Ball' then
  103.         hitboxContent = workspace:GetPartBoundsInRadius(pos, size)
  104.     elseif shape == 'Block' then
  105.         hitboxContent = workspace:GetPartBoundsInBox(CFrame.new(math.round(pos.X), math.round(pos.Y), math.round(pos.Z)), size)
  106.     end
  107.    
  108.     local hitCharacter = {}
  109.     for _, part in hitboxContent do
  110.         if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
  111.             enemyCharacter = part.Parent
  112.             table.insert(hitCharacter, enemyCharacter)
  113.         end
  114.     end
  115.     return hitCharacter
  116. end
  117. return hitboxModule
Advertisement
Add Comment
Please, Sign In to add comment