ADVERTISEMENTREMOVE ADS
incremental
219 views
Script Preview
Description
a test script so dont try it yet
ADVERTISEMENTREMOVE ADS
260 Lines • 9.29 KiB
-- << INTEGRATED OP MODS PATCH >>
-- Add/replace into your Main tab section (this block was designed to slot into your existing script)
-- It keeps original behavior and adds OP Mode, presets, and custom numeric controls.
--------------------------------------------------------------------
-- OP MODE / CUSTOM VALUE MODIFIERS (client-only, aggressive)
--------------------------------------------------------------------
-- configurable runtime variables (editable by the UI below)
local walkMultiplier = 3.125 -- multiplies default walk speed (example: default 16 -> ~50)
local jumpMultiplier = 2.0 -- multiplies default jump power
local tpInterval = 0.015 -- how often TP collect loop runs (seconds)
local tpDwell = 0.010 -- how long to dwell on token
local tpSearchRadius = 1200 -- search radius for tokens
local tpTouchOffset = Vector3.new(0, 2.0, 0)
-- OP presets (very large values — use with caution)
local PRESETS = {
["OP"] = {
walkMultiplier = 12.5, -- e.g. 16 * 12.5 = 200
jumpMultiplier = 6.25, -- e.g. 50 * 6.25 = 312
tpInterval = 0.002,
tpDwell = 0.001,
tpSearchRadius = 9999,
tpTouchOffset = Vector3.new(0, 0.5, 0),
},
["ULTRA"] = {
walkMultiplier = 25.0, -- absurd values (use at your own risk)
jumpMultiplier = 10.0,
tpInterval = 0.0005,
tpDwell = 0.0005,
tpSearchRadius = 20000,
tpTouchOffset = Vector3.new(0, 0.2, 0),
},
["VANILLA"] = {
walkMultiplier = 1.0,
jumpMultiplier = 1.0,
tpInterval = 0.015,
tpDwell = 0.010,
tpSearchRadius = 1200,
tpTouchOffset = Vector3.new(0, 2.0, 0),
}
}
-- internal state
local customOn = false
local opModeOn = false
-- keep existing defaults capture (your script already had these)
captureDefaults() -- ensure defaultWalk/defaultJump exist
-- Apply current multipliers to humanoid if toggles active
local function applyMovementMultipliers()
local h = hum()
if not h then return end
-- apply multipliers based on captured defaults
local baseWalk = defaultWalk or h.WalkSpeed or 16
local baseJump = defaultJump or h.JumpPower or 50
-- if Walk toggle is on, set to modified value; otherwise preserve current / default
if wsOn then
h.WalkSpeed = math.clamp(baseWalk * walkMultiplier, 0, 10000)
end
if jpOn then
h.JumpPower = math.clamp(baseJump * jumpMultiplier, 0, 10000)
end
end
-- expose TP variables to the existing TP collect loop by replacing constants with these variables.
-- we replace the names used in nearestToken / TP loop by using these variables in those functions.
-- (below we rewire nearestToken and the TP loop to reference local variables instead of the previous constants)
-- rewrite nearestToken to use tpSearchRadius
local function nearestToken_OP(touchPart)
local root = workspace:FindFirstChild("Tokens")
if not (root and touchPart) then return nil end
local best, bestDist
for _, c in ipairs(root:GetChildren()) do
for _, d in ipairs(c:IsA("BasePart") and {c} or c:GetDescendants()) do
if d:IsA("BasePart") then
local dist = (d.Position - touchPart.Position).Magnitude
if dist <= tpSearchRadius and (not bestDist or dist < bestDist) then
best, bestDist = d, dist
end
end
end
end
return best
end
-- replace the TP collect worker to use the runtime variables; preserves original toggle behavior
-- We'll keep tpEnabled/tpLoopRunning variables from original script
-- Hook into existing TPCollectBtn behavior by changing the loop's inner function (if tpEnabled).
-- To avoid duplicating logic, we will override the earlier TP worker by redefining the relevant loop function.
-- (If your original loop is already started, toggling TPCollectBtn will start/stop as before; new loop uses the new variables.)
-- Monkey-patch the existing TPCollectBtn click to ensure the loop uses our variables.
-- Note: this assumes TPCollectBtn and variables exist (they do in your original script).
do
-- keep original variables in case they exist
tpEnabled = tpEnabled or false
tpLoopRunning = tpLoopRunning or false
-- disconnect existing connection if any, then reconnect using our OP-aware loop
TPCollectBtn.MouseButton1Click:Connect(function()
tpEnabled = not tpEnabled
TPCollectBtn.Text = tpEnabled and "TP Collect (Tokens): ON" or "TP Collect (Tokens): OFF"
TPCollectBtn.BackgroundColor3 = tpEnabled and Color3.fromRGB(60,95,60) or Color3.fromRGB(42,42,42)
if tpEnabled and not tpLoopRunning then
tpLoopRunning = true
task.spawn(function()
while tpEnabled do
local hrp = HRP()
local token = hrp and nearestToken_OP(hrp)
if hrp and token then
local old = hrp.CFrame
pcall(function() hrp.CFrame = CFrame.new(token.Position + tpTouchOffset) end)
task.wait(tpDwell)
pcall(function() hrp.CFrame = old end)
end
task.wait(tpInterval)
end
tpLoopRunning = false
end)
end
end)
end
-- OP Toggle button & presets (UI)
local OPBtn = makeBtn(96, "OP Mode: OFF")
local PresetOP = makeBtn(128, "Preset: OP")
local PresetUltra = makeBtn(160, "Preset: ULTRA")
local PresetVanilla = makeBtn(192, "Preset: VANILLA (reset)")
OPBtn.MouseButton1Click:Connect(function()
opModeOn = not opModeOn
OPBtn.Text = opModeOn and "OP Mode: ON" or "OP Mode: OFF"
OPBtn.BackgroundColor3 = opModeOn and Color3.fromRGB(220,80,80) or Color3.fromRGB(42,42,42)
-- when toggled on, apply the currently configured multipliers immediately
if opModeOn then
applyMovementMultipliers()
end
end)
PresetOP.MouseButton1Click:Connect(function()
local p = PRESETS["OP"]
if p then
walkMultiplier = p.walkMultiplier
jumpMultiplier = p.jumpMultiplier
tpInterval = p.tpInterval
tpDwell = p.tpDwell
tpSearchRadius = p.tpSearchRadius
tpTouchOffset = p.tpTouchOffset
-- apply now
applyMovementMultipliers()
end
end)
PresetUltra.MouseButton1Click:Connect(function()
local p = PRESETS["ULTRA"]
if p then
walkMultiplier = p.walkMultiplier
jumpMultiplier = p.jumpMultiplier
tpInterval = p.tpInterval
tpDwell = p.tpDwell
tpSearchRadius = p.tpSearchRadius
tpTouchOffset = p.tpTouchOffset
applyMovementMultipliers()
end
end)
PresetVanilla.MouseButton1Click:Connect(function()
local p = PRESETS["VANILLA"]
if p then
walkMultiplier = p.walkMultiplier
jumpMultiplier = p.jumpMultiplier
tpInterval = p.tpInterval
tpDwell = p.tpDwell
tpSearchRadius = p.tpSearchRadius
tpTouchOffset = p.tpTouchOffset
applyMovementMultipliers()
end
end)
-- Custom numeric fields (simple TextBoxes)
local function makeLabelAndBox(y, labelText, initialValue, onChanged)
local lbl = Instance.new("TextLabel", MainTab)
lbl.BackgroundTransparency = 1
lbl.Position = UDim2.new(0, 0, 0, y)
lbl.Size = UDim2.new(0.5, -6, 0, 20)
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.TextColor3 = Color3.fromRGB(235,235,235)
lbl.Text = labelText
local box = Instance.new("TextBox", MainTab)
box.BackgroundColor3 = Color3.fromRGB(35,35,35)
box.BackgroundTransparency = 0
box.Position = UDim2.new(0.5, 6, 0, y)
box.Size = UDim2.new(0.5, -6, 0, 20)
box.ClearTextOnFocus = false
box.Font = Enum.Font.SourceSans
box.TextSize = 14
box.TextColor3 = Color3.fromRGB(235,235,235)
box.Text = tostring(initialValue)
box.FocusLost:Connect(function(enter)
local val = tonumber(box.Text)
if val then
onChanged(val)
-- reformat textbox
box.Text = tostring(val)
-- apply movement if relevant
applyMovementMultipliers()
else
-- restore displayed value if invalid input
box.Text = tostring(initialValue)
end
end)
return lbl, box
end
-- layout y positions (to fit under the preset buttons)
local yBase = 224
local lblWalk, boxWalk = makeLabelAndBox(yBase + 0, "Walk Mult (x):", walkMultiplier, function(v) walkMultiplier = v end)
local lblJump, boxJump = makeLabelAndBox(yBase + 24, "Jump Mult (x):", jumpMultiplier, function(v) jumpMultiplier = v end)
local lblTPInt, boxTPInt = makeLabelAndBox(yBase + 48, "TP Interval (s):", tpInterval, function(v) tpInterval = math.max(0.0001, v) end)
local lblTPRange, boxTPRange = makeLabelAndBox(yBase + 72, "TP Range:", tpSearchRadius, function(v) tpSearchRadius = math.max(0, v) end)
-- ensure movement is reapplied when the player respawns / toggles walk/jump
Player.CharacterAdded:Connect(function()
repeat task.wait() until hum()
captureDefaults()
if wsOn then
-- if Walk toggle is on use multiplier
hum().WalkSpeed = (defaultWalk or 16) * walkMultiplier
end
if jpOn then
hum().JumpPower = (defaultJump or 50) * jumpMultiplier
end
end)
-- Also watch for runtime changes to multipliers, reapplying if toggles are enabled
-- (this keeps UI responsive without forcing user to toggle on/off)
local lastWalkMult, lastJumpMult = walkMultiplier, jumpMultiplier
task.spawn(function()
while true do
if wsOn and (lastWalkMult ~= walkMultiplier) and hum() then
hum().WalkSpeed = (defaultWalk or hum().WalkSpeed or 16) * walkMultiplier
lastWalkMult = walkMultiplier
end
if jpOn and (lastJumpMult ~= jumpMultiplier) and hum() then
hum().JumpPower = (defaultJump or hum().JumpPower or 50) * jumpMultiplier
lastJumpMult = jumpMultiplier
end
task.wait(0.2)
end
end)
-- end OP MODE controls
--------------------------------------------------------------------
ADVERTISEMENTREMOVE ADS
ADVERTISEMENTREMOVE ADS






Comments