local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()

local Window = Rayfield:CreateWindow({
   Name = "총기 쿨다운 줄이기 V1(라이벌용)",
   LoadingTitle = "로딩중...",
   LoadingSubtitle = "마인민이 구독!",
   ConfigurationSaving = { Enabled = false }
})

local MainTab = Window:CreateTab("메인")

-- [핵심] 무기들의 '원래 쿨다운'을 기억해둘 백업 장부
local originalData = {}

MainTab:CreateSlider({
   Name = "총기 연사속도 증가율 (%)",
   Range = {0, 100},
   Increment = 1,
   Suffix = "%",
   CurrentValue = 0,
   Flag = "CooldownSlider",
   Callback = function(Value)
      local ReplicatedStorage = game:GetService("ReplicatedStorage")
      local weaponDataCache
      local modulesFolder = ReplicatedStorage:FindFirstChild("Modules")
      
      if modulesFolder then
         local possibleNames = {"ItemLibrary", "WeaponStats", "Items", "WeaponData", "Weapons"}
         for _, name in ipairs(possibleNames) do
            local found = modulesFolder:FindFirstChild(name)
            if found then
               weaponDataCache = require(found)
               break
            end
         end
      end

      if weaponDataCache and weaponDataCache.Items then
         local keys = {
            "ShootCooldown", "ShootBurstCooldown", "AttackCooldown", 
            "HeavyAttackCooldown", "Cooldown", "DeflectCooldown", 
            "DashCooldown", "BuildCooldown", "SpinCooldown", 
            "AirblastCooldown", "QuickShotCooldown", "TransitionCooldown", "ReloadTime"
         }

         -- 1. 맨 처음 실행 시, 무기들의 원래 스탯을 'originalData'에 백업해둠
         for itemName, stats in pairs(weaponDataCache.Items) do
            if not originalData[itemName] then
               originalData[itemName] = {}
               for _, key in ipairs(keys) do
                  if stats[key] ~= nil then
                     originalData[itemName][key] = stats[key]
                  end
               end
            end
         end

         -- 2. 슬라이더 값(Value)에 따라 원본 대비 쿨다운 계산
         -- Value가 0  -> 원본 쿨다운 * 1.0 (변함없음)
         -- Value가 100 -> 쿨다운 0.00001초 (극초속 연사)
         local multiplier = (100 - Value) / 100

         for itemName, stats in pairs(weaponDataCache.Items) do
            if originalData[itemName] then
               for _, key in ipairs(keys) do
                  local originalVal = originalData[itemName][key]
                  if originalVal then
                     if Value == 100 then
                        -- 100%일 때는 극소수값 대입
                        stats[key] = (key == "ReloadTime") and 0.01 or 0.00001
                     else
                        -- 0~99%일 때는 원본 값에 비율 적용 (0%면 원본 100% 복구)
                        stats[key] = math.max(originalVal * multiplier, 0.00001)
                     end
                  end
               end
            end
         end
         
         Rayfield:Notify({
            Title = "적용 완료", 
            Content = "연사 감소: " .. Value .. "% (무기를 다시 교체해 보세요!)", 
            Duration = 1.5
         })
      else
         Rayfield:Notify({Title = "오류", Content = "무기 데이터를 찾을 수 없습니다.", Duration = 3})
      end
   end,
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: