-- Script nhẹ tâm Free Fire OB55
-- Tự động áp dụng cấu hình, dọn cache, tăng nhạy
-- Không cần reset Free Fire
-- Bước 1: Khai báo đường dẫn
local basePaths = {
"/sdcard/Android/data/com.dts.freefireth/files/",
"/sdcard/Android/data/com.dts.freefiremax/files/"
}
local cachePaths = {
"/sdcard/Android/data/com.dts.freefireth/cache/",
"/sdcard/Android/data/com.dts.freefiremax/cache/",
"/sdcard/Android/data/com.dts.freefireth/cache/character/",
"/sdcard/Android/data/com.dts.freefiremax/cache/character/",
"/sdcard/Android/data/com.dts.freefireth/cache/skin/",
"/sdcard/Android/data/com.dts.freefiremax/cache/skin/"
}
local MAX_CACHE_AGE = 3 * 24 * 60 * 60
-- Bước 2: Hàm ghi file an toàn
local function writeFile(path, content)
local f = io.open(path, "r")
if f then
local old = f:read("*a")
f:close()
if old == content then return false end
end
local out = io.open(path, "w")
if out then
out:write(content)
out:close()
return true
end
return false
end
-- Bước 3: Hàm xóa file an toàn
local function safeRemove(path)
pcall(os.remove, path)
end
-- Bước 4: Hàm dọn dẹp cache
local function cleanCache()
local now = os.time()
for _, dir in ipairs(cachePaths) do
local f = io.popen("ls " .. dir .. " 2>/dev/null")
if f then
for file in f:lines() do
local fullPath = dir .. file
local attr = io.popen("stat -c %Y " .. fullPath .. " 2>/dev/null")
if attr then
local mtime = tonumber(attr:read("*a"))
attr:close()
if mtime and (now - mtime) > MAX_CACHE_AGE then
safeRemove(fullPath)
end
end
end
f:close()
end
end
end
-- Bước 5: Cấu hình nhẹ tâm OB55
local lowSpecConfig = [[
[Graphics]
Quality=0
Shadow=0
AntiAlias=0
Particle=0
Effect=0
RenderScale=0.3
FPS=60
TextureQuality=0
ModelQuality=0
CharacterDetail=0
EnvironmentDetail=0
GrassRender=0
WaterRender=0
SkyRender=0
[Render]
HideBody=1
HideLegs=1
HideArms=1
HideHead=1
HideNeck=1
HideTorso=1
HideChest=1
HideAbdomen=1
HidePelvis=1
HideThigh=1
HideCalf=1
HideFoot=1
HideShoulder=1
HideUpperArm=1
HideForearm=1
HideHand=1
HideFinger=1
HideWeapon=0
HideBackpack=1
HideHelmet=1
HideVest=1
HideGloves=1
HideBoots=1
RenderHitboxOnly=1
CharacterLOD=0
SkeletonRender=0
SkinRender=0
AnimationRender=0
DisableBodyMesh=1
DisableLimbMesh=1
DisableTorsoMesh=1
DisableArmMesh=1
DisableLegMesh=1
DisableHeadMesh=1
DisableNeckMesh=1
DisableChestMesh=1
DisableAbdomenMesh=1
DisablePelvisMesh=1
DisableThighMesh=1
DisableCalfMesh=1
DisableFootMesh=1
DisableShoulderMesh=1
DisableUpperArmMesh=1
DisableForearmMesh=1
DisableHandMesh=1
DisableFingerMesh=1
DisableEnemyRender=1
DisableTeammateRender=1
[Performance]
ThreadCount=4
HeapSize=256
CacheSize=128
[Touch]
TouchSensitivity=100
AimSensitivity=100
FireSensitivity=100
ScopeSensitivity=100
GyroSensitivity=100
TouchResponseRate=1000
InputLatency=0
Acceleration=1
DeadZone=0
Smoothness=0
]]
-- Bước 6: Áp dụng cấu hình và dọn dẹp
local changed = 0
for _, base in ipairs(basePaths) do
if writeFile(base .. "settings.ini", lowSpecConfig) then changed = changed + 1 end
if writeFile(base .. "low_render.cfg", lowSpecConfig) then changed = changed + 1 end
if writeFile(base .. "hide_model.cfg", lowSpecConfig) then changed = changed + 1 end
if writeFile(base .. "touch.cfg", lowSpecConfig) then changed = changed + 1 end
if writeFile(base .. "animation.cfg", "EnableAnimation=0\nSkeletonUpdate=0\nIKUpdate=0\n") then changed = changed + 1 end
end
cleanCache()
-- Bước 7: Ghi log
local logFile = io.open("/sdcard/ff_low_spec.log", "a")
if logFile then
logFile:write("Applied at: " .. os.date("%Y-%m-%d %H:%M:%S") .. "\n")
logFile:write("Files changed: " .. changed .. "\n")
logFile:close()
end
-- Bước 8: Xác nhận
print("Đã ghi cấu hình nhẹ tâm OB55")
print("Số file thay đổi: " .. changed)
print("Đã tăng độ nhạy và dọn cache")
print("Không cần reset Free Fire")