
Key RequiredUniversal

-- Auto Teleport PP Script with Death Train for Super Power Training Simulator (SPTS Genesis)
-- Created based on provided GUI script and research
-- This script automatically farms Psychic Power (PP) by spamming the relevant remote events.
-- Optionally teleports to the optimal PP training area based on your current PP level.
-- To "bypass" zone requirement (train without being in the zone), set bypassZone = true below.
-- - If bypassZone = true, it will use the highest remote argument based on your PP level without teleporting.
-- - Note: This may not work if the game server checks your position; test in-game. From research, no confirmed bypass exploit, but spamming higher events might work if unchecked.
-- Added "Death Train" feature: Enables training in the next higher PP zone where you can survive at least one hit but die quickly for faster farming.
-- - On death, auto-respawns and returns to the death train position.
-- - Activate by setting deathTrainEnabled = true below.
-- Improvements from previous: Reconnect Died event, retry logic, manual respawn (press R).
-- WARNING: Use at your own risk. Anti-cheat may detect rapid movement, remote spamming, frequent deaths, or invalid event firing.
-- Execute this in a Roblox exploit like Synapse X or Krnl.
local player = game.Players.LocalPlayer
local replicatedStorage = game:GetService("ReplicatedStorage")
local tweenService = game:GetService("TweenService")
local runService = game:GetService("RunService")
local userInputService = game:GetService("UserInputService")
-- Configuration
local deathTrainEnabled = false -- Set to true to enable death training in the next higher zone
local bypassZone = true -- Set to true to attempt farming without teleporting to the zone (may not grant exp if server checks position)
local respawnRetryAttempts = 3 -- Number of times to retry respawning if it fails
local respawnDelay = 6 -- Delay after death to account for game’s respawn timer
local characterLoadTimeout = 10 -- Max time to wait for character to load
local tweenSpeed = 80 -- Lower speed for more natural movement (anti-cheat)
-- PP Training Locations and Arguments (from original script)
local ppLocations = {
{requiredPP = 0, arguments = {"+PP2", "+PP1"}, cframe = nil}, -- No zone needed
{requiredPP = 1000000, arguments = {"+PP3"}, cframe = CFrame.new(-2527, 5486, -532)},
{requiredPP = 1000000000, arguments = {"+PP4"}, cframe = CFrame.new(-2560, 5500, -439)},
{requiredPP = 100000000000, arguments = {"+PP5"}, cframe = CFrame.new(-2582, 5516, -504)},
{requiredPP = 10000000000000, arguments = {"+PP6"}, cframe = CFrame.new(-2544, 5412, -495)}
}
-- Remote event for farming PP
local remoteEvent = replicatedStorage:WaitForChild("RemoteEvent")
-- Function to get current PP value
local function getCurrentPP()
local success, pp = pcall(function()
return tonumber(player.PrivateStats.PsychicPower.Value) or 0
end)
return success and pp or 0
end
-- Function to find the best PP arguments and location (or next for death train)
local function getBestConfig()
local currentPP = getCurrentPP()
local bestIndex = 1
for i, config in ipairs(ppLocations) do
if currentPP >= config.requiredPP then
bestIndex = i
else
break
end
end
if deathTrainEnabled and bestIndex < #ppLocations then
local nextConfig = ppLocations[bestIndex + 1]
if currentPP >= nextConfig.requiredPP * 0.1 then -- Rough check for surviving one hit
return nextConfig
end
end
return ppLocations[bestIndex]
end
-- Function to tween to target CFrame
local function safeTeleport(targetCFrame)
local character = player.Character
if not character or not character:FindFirstChild("HumanoidRootPart") then
print("Error: Character or HumanoidRootPart not found")
return false
end
local humanoidRootPart = character.HumanoidRootPart
local distance = (humanoidRootPart.Position - targetCFrame.Position).Magnitude
local duration = distance / tweenSpeed
local tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local tween = tweenService:Create(humanoidRootPart, tweenInfo, {CFrame = targetCFrame})
tween:Play()
tween.Completed:Wait()
return true
end
-- Auto-farm PP loop
local farming = false
local function startFarming(arguments)
if farming then return end
farming = true
spawn(function()
while farming do
for _, arg in ipairs(arguments) do
pcall(function()
remoteEvent:FireServer({[1] = arg})
end)
end
runService.Stepped:Wait() -- Spam fast for glitch-like speed (from research: spamming increases rate)
end
end)
end
local function stopFarming()
farming = false
end
-- Wait for character to fully load
local function waitForCharacter()
local startTime = tick()
while not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") or not player.Character:FindFirstChild("Humanoid") do
if tick() - startTime > characterLoadTimeout then
print("Error: Character load timeout")
return false
end
wait(0.1)
end
return true
end
-- Respawn function with retry logic
local function attemptRespawn()
for i = 1, respawnRetryAttempts do
print("Attempting respawn #" .. i)
pcall(function()
remoteEvent:FireServer({[1] = "Respawn"})
end)
wait(respawnDelay)
if waitForCharacter() then
print("Respawn successful")
return true
end
end
print("Error: Failed to respawn after " .. respawnRetryAttempts .. " attempts")
return false
end
-- Main auto-farm logic
local lastPosition = nil
local lastArguments = nil
local function autoPP()
stopFarming()
local bestConfig = getBestConfig()
lastArguments = bestConfig.arguments
print("Using PP farming arguments: " .. table.concat(bestConfig.arguments, ", ") .. " (Required PP: " .. bestConfig.requiredPP .. ")")
if not bypassZone and bestConfig.cframe then
print("Teleporting to PP area (bypassZone=false)")
if safeTeleport(bestConfig.cframe) then
lastPosition = bestConfig.cframe
else
print("Teleport failed, retrying in 5 seconds")
wait(5)
if waitForCharacter() then
autoPP()
end
return
end
else
print("Bypassing zone teleport (farming from current position)")
end
startFarming(bestConfig.arguments)
print("Auto-farming PP started")
end
-- Death Train: Handle death and respawn
local function setupDeathTrain()
if not deathTrainEnabled then return end
local function connectDied()
local character = player.Character
if character and character:FindFirstChild("Humanoid") then
local humanoid = character.Humanoid
humanoid.Died:Connect(function()
print("Player died, initiating respawn")
stopFarming()
if attemptRespawn() then
if lastPosition and not bypassZone then
safeTeleport(lastPosition)
end
if lastArguments then
startFarming(lastArguments)
end
end
end)
end
end
-- Reconnect on character respawn
player.CharacterAdded:Connect(function(newChar)
waitForCharacter()
print("Character respawned, reconnecting Died event")
connectDied()
if lastPosition and not bypassZone then
safeTeleport(lastPosition)
end
if lastArguments then
startFarming(lastArguments)
end
end)
-- Initial connection
connectDied()
end
-- Manual respawn toggle (press R to force respawn)
userInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.R then
print("Manual respawn triggered")
stopFarming()
if attemptRespawn() then
if lastPosition and not bypassZone then
safeTeleport(lastPosition)
end
if lastArguments then
startFarming(lastArguments)
end
end
end
end)
-- Start the script
if waitForCharacter() then
setupDeathTrain()
autoPP()
-- Periodic re-check for better PP config every 60 seconds
spawn(function()
while true do
wait(60)
local currentBest = getBestConfig()
if lastArguments ~= currentBest.arguments then -- If better config unlocked
autoPP()
end
end
end)
end
-- Anti-idle
local virtualUser = game:GetService("VirtualUser")
player.Idled:Connect(function()
virtualUser:CaptureController()
virtualUser:ClickButton2(Vector2.new())
end)



didn't work, gamelink?