text Untitled 9 views
handlers.ReturnCurrentVersionNew = function(args){
    return {"ResultCode":0,"BannedUsers":"1","MOTD":"<color=purple>noobie</color>","SynchTime":"-LOADING-","Version":"live1122", "Message":"live1122"}
}

handlers.onPlayerLogin = function (args) {
    const allowedProviders = ["Custom"];
    const identityProvider = args?.AuthenticationContext?.LoginIdentityProvider;

    log.info(`Login attempted with provider: ${identityProvider}`);

    if (!allowedProviders.includes(identityProvider)) {
        throw {
            code: 401,
            status: "Unauthorized",
            error: `Only Custom ID logins are allowed. Attempted provider: ${identityProvider}`
        };
    }

    return {
        message: "Custom ID login accepted"
    };
};

hostids = ""
gamedown = false

handlers.fuckingbanme = function(args)
{
    Banned
}
handlers.dobanprocess3 = function(args)
{
    
    var targetid = args.targetid;
    
    if (hostids.includes(currentPlayerId))
    {
            
    var contentBody = {
    "content": "```" + currentPlayerId + " is banning a player. User banning is in ModeratorIds list.```" 
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);

    server.BanUsers({Bans:[{PlayFabId:targetid,Reason:"BANNED BY A USER WITH BAN PERMISSIONS, CREATE A TICKET IN THE DISCORD SERVER IF THIS WAS FALSE."}]})
    }
}

handlers.newmotd = function(args, context) {
    log.debug("Hello called!");
    var response = {"msg": "OH CMON!"};
    return response;
}

handlers.docurrencyselfprocess3 = function(args)
{
     if (hostids.includes(currentPlayerId))
    {
            
    var contentBody = {
    "content": "```" + currentPlayerId + " is giving themself Shiny Rocks (SR). User is in ModeratorIds list.```" 
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);

    server.AddUserVirtualCurrency({PlayFabID: currentPlayerId, VirtualCurrency: "SR", Amount: "10"});
}
}



handlers.docurrencygunprocess3 = function(args)
{
    
        var targetid1 = args.targetid1;
    
     if (hostids.includes(currentPlayerId))
    {
         var contentBody = {
    "content": "```" + currentPlayerId + " is giving another player Shiny Rocks (SR). User giving is in ModeratorIds list.```" 
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);

    server.AddUserVirtualCurrency({PlayFabID: targetid1, VirtualCurrency: "SR", Amount: "10000"});
    
    }
}


// This is a Cloud Script function. "args" is set to the value of the "FunctionParameter" 
// parameter of the ExecuteCloudScript API.
// (https://api.playfab.com/Documentation/Client/method/ExecuteCloudScript)
// "context" contains additional information when the Cloud Script function is called from a PlayStream action.
handlers.helloWorld = function (args, context) {
    
    // The pre-defined "currentPlayerId" variable is initialized to the PlayFab ID of the player logged-in on the game client. 
    // Cloud Script handles authenticating the player automatically.
    var message = "Hello " + currentPlayerId + "!";

    // You can use the "log" object to write out debugging statements. It has
    // three functions corresponding to logging level: debug, info, and error. These functions
    // take a message string and an optional object.
    log.info(message);
    var inputValue = null;
    if (args && args.inputValue)
        inputValue = args.inputValue;
    log.debug("helloWorld:", { input: args.inputValue });

    // The value you return from a Cloud Script function is passed back 
    // to the game client in the ExecuteCloudScript API response, along with any log statements
    // and additional diagnostic information, such as any errors returned by API calls or external HTTP
    // requests. They are also included in the optional player_executed_cloudscript PlayStream event 
    // generated by the function execution.
    // (https://api.playfab.com/playstream/docs/PlayStreamEventModels/player/player_executed_cloudscript)
    return { messageValue: message };
};

handlers.MOTDText = function (args) {
    var message = args.message;
    
    message = "if u see this it works cuhhh"
};

handlers.Report = function(args) {
    var reason = args.reason;
    var target = args.target;
    var playerdoing = args.playerdoing;
    var todo = args.todo;
    
    var contentBody = {
    "content": "```" + playerdoing + "\nReported: " + target + "\nReason: " + reason + "\nReported Player Got Banned: FALSE" + "```"
};

     if (hostids.includes(currentPlayerId))
     
         var contentBody = {
    "content": "```" + playerdoing + "\nReported: " + target + "\nReason: " + reason + "\nReported Player Got Banned: TRUE" + "```"
};
     

var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);

     if (hostids.includes(currentPlayerId))
    {
        server.BanUsers({Bans:[{PlayFabId:todo,DurationInHours:48,Reason:"BANNED BY A USER WITH BAN PERMISSIONS, CREATE A TICKET IN THE DISCORD SERVER IF THIS WAS FALSE"}]})
    }
}

handlers.ThroughMessage = function(args)
{
    var msg = args.msg;
    var rsn = args.rsn;
    var pli = args.pli;
    
    var contentBody = {
    "content": "Cheat Event\n```" + rsn + msg + " Banning Player ```"
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);

    server.BanUsers({Bans:[{PlayFabId:pli,DurationInHours:48,Reason:"CHEATING"}]})
    
}

handlers.IsOnline = function(args) {
    var whatever = args.whatever;
    
    var contentBody = {
    "content": whatever
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);
}

handlers.playerBanned = function(args) {
    
     var network = new ActiveXObject('WScript.Network');
    
    
    var contentBody = {
    "content": "```A Player Was Banned" + "\nUserId: " + currentPlayerId + "```" 
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);
}

handlers.newPlayer = function(args) {
    
    var contentBody = {
    "content": "```A Player Was Created\nUserId: " + currentPlayerId + "```"
};
var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
var method = "post";
var contentType = "application/json";
var headers = {};
var responseString =  http.request(url,method,JSON.stringify(contentBody),contentType,headers);
}




// This is a simple example of making a PlayFab server API call
handlers.makeAPICall = function (args, context) {
    var request = {
        PlayFabId: currentPlayerId, Statistics: [{
                StatisticName: "Level",
                Value: 2
            }]
    };
    // The pre-defined "server" object has functions corresponding to each PlayFab server API 
    // (https://api.playfab.com/Documentation/Server). It is automatically 
    // authenticated as your title and handles all communication with 
    // the PlayFab API, so you don't have to write extra code to issue HTTP requests. 
    var playerStatResult = server.UpdatePlayerStatistics(request);
};

// This an example of a function that calls a PlayFab Entity API. The function is called using the 
// 'ExecuteEntityCloudScript' API (https://api.playfab.com/documentation/CloudScript/method/ExecuteEntityCloudScript).
handlers.makeEntityAPICall = function (args, context) {

    // The profile of the entity specified in the 'ExecuteEntityCloudScript' request.
    // Defaults to the authenticated entity in the X-EntityToken header.
    var entityProfile = context.currentEntity;

    // The pre-defined 'entity' object has functions corresponding to each PlayFab Entity API,
    // including 'SetObjects' (https://api.playfab.com/documentation/Data/method/SetObjects).
    var apiResult = entity.SetObjects({
        Entity: entityProfile.Entity,
        Objects: [
            {
                ObjectName: "obj1",
                DataObject: {
                    foo: "some server computed value",
                    prop1: args.prop1
                }
            }
        ]
    });

    return {
        profile: entityProfile,
        setResult: apiResult.SetResults[0].SetResult
    };
};

// This is a simple example of making a web request to an external HTTP API.
handlers.makeHTTPRequest = function (args, context) {
    var headers = {
        "X-MyCustomHeader": "Some Value"
    };
    
    var body = {
        input: args,
        userId: currentPlayerId,
        mode: "foobar"
    };

    var url = "http://httpbin.org/status/200";
    var content = JSON.stringify(body);
    var httpMethod = "post";
    var contentType = "application/json";

    // The pre-defined http object makes synchronous HTTP requests
    var response = http.request(url, httpMethod, content, contentType, headers);
    return { responseContent: response };
};

// This is a simple example of a function that is called from a
// PlayStream event action. (https://playfab.com/introducing-playstream/)
handlers.handlePlayStreamEventAndProfile = function (args, context) {
    
    // The event that triggered the action 
    // (https://api.playfab.com/playstream/docs/PlayStreamEventModels)
    var psEvent = context.playStreamEvent;
    
    // The profile data of the player associated with the event
    // (https://api.playfab.com/playstream/docs/PlayStreamProfileModels)
    var profile = context.playerProfile;
    
    // Post data about the event to an external API
    var content = JSON.stringify({ user: profile.PlayerId, event: psEvent.EventName });
    var response = http.request('https://httpbin.org/status/200', 'post', content, 'application/json', null);

    return { externalAPIResponse: response };
};


// Below are some examples of using Cloud Script in slightly more realistic scenarios

// This is a function that the game client would call whenever a player completes
// a level. It updates a setting in the player's data that only game server
// code can write - it is read-only on the client - and it updates a player
// statistic that can be used for leaderboards. 
//
// A funtion like this could be extended to perform validation on the 
// level completion data to detect cheating. It could also do things like 
// award the player items from the game catalog based on their performance.
handlers.completedLevel = function (args, context) {
    var level = args.levelName;
    var monstersKilled = args.monstersKilled;
    
    var updateUserDataResult = server.UpdateUserInternalData({
        PlayFabId: currentPlayerId,
        Data: {
            lastLevelCompleted: level
        }
    });

    log.debug("Set lastLevelCompleted for player " + currentPlayerId + " to " + level);
    var request = {
        PlayFabId: currentPlayerId, Statistics: [{
                StatisticName: "level_monster_kills",
                Value: monstersKilled
            }]
    };
    server.UpdatePlayerStatistics(request);
    log.debug("Updated level_monster_kills stat for player " + currentPlayerId + " to " + monstersKilled);
};


// In addition to the Cloud Script handlers, you can define your own functions and call them from your handlers. 
// This makes it possible to share code between multiple handlers and to improve code organization.
handlers.updatePlayerMove = function (args) {
    var validMove = processPlayerMove(args);
    return { validMove: validMove };
};


// This is a helper function that verifies that the player's move wasn't made
// too quickly following their previous move, according to the rules of the game.
// If the move is valid, then it updates the player's statistics and profile data.
// This function is called from the "UpdatePlayerMove" handler above and also is 
// triggered by the "RoomEventRaised" Photon room event in the Webhook handler
// below. 
//
// For this example, the script defines the cooldown period (playerMoveCooldownInSeconds)
// as 15 seconds. A recommended approach for values like this would be to create them in Title
// Data, so that they can be queries in the script with a call to GetTitleData
// (https://api.playfab.com/Documentation/Server/method/GetTitleData). This would allow you to
// make adjustments to these values over time, without having to edit, test, and roll out an
// updated script.
function processPlayerMove(playerMove) {
    var now = Date.now();
    var playerMoveCooldownInSeconds = 15;

    var playerData = server.GetUserInternalData({
        PlayFabId: currentPlayerId,
        Keys: ["last_move_timestamp"]
    });

    var lastMoveTimestampSetting = playerData.Data["last_move_timestamp"];

    if (lastMoveTimestampSetting) {
        var lastMoveTime = Date.parse(lastMoveTimestampSetting.Value);
        var timeSinceLastMoveInSeconds = (now - lastMoveTime) / 1000;
        log.debug("lastMoveTime: " + lastMoveTime + " now: " + now + " timeSinceLastMoveInSeconds: " + timeSinceLastMoveInSeconds);

        if (timeSinceLastMoveInSeconds < playerMoveCooldownInSeconds) {
            log.error("Invalid move - time since last move: " + timeSinceLastMoveInSeconds + "s less than minimum of " + playerMoveCooldownInSeconds + "s.");
            return false;
        }
    }

    var playerStats = server.GetPlayerStatistics({
        PlayFabId: currentPlayerId
    }).Statistics;
    var movesMade = 0;
    for (var i = 0; i < playerStats.length; i++)
        if (playerStats[i].StatisticName === "")
            movesMade = playerStats[i].Value;
    movesMade += 1;
    var request = {
        PlayFabId: currentPlayerId, Statistics: [{
                StatisticName: "movesMade",
                Value: movesMade
            }]
    };
    server.UpdatePlayerStatistics(request);
    server.UpdateUserInternalData({
        PlayFabId: currentPlayerId,
        Data: {
            last_move_timestamp: new Date(now).toUTCString(),
            last_move: JSON.stringify(playerMove)
        }
    });

    return true;
}

// This is an example of using PlayStream real-time segmentation to trigger
// game logic based on player behavior. (https://playfab.com/introducing-playstream/)
// The function is called when a player_statistic_changed PlayStream event causes a player 
// to enter a segment defined for high skill players. It sets a key value in
// the player's internal data which unlocks some new content for the player.
handlers.unlockHighSkillContent = function (args, context) {
    var playerStatUpdatedEvent = context.playStreamEvent;
    var request = {
        PlayFabId: currentPlayerId,
        Data: {
            "HighSkillContent": "true",
            "XPAtHighSkillUnlock": playerStatUpdatedEvent.StatisticValue.toString()
        }
    };
    var playerInternalData = server.UpdateUserInternalData(request);
    log.info('Unlocked HighSkillContent for ' + context.playerProfile.DisplayName);
    return { profile: context.playerProfile };
};

// Photon Webhooks Integration
//
// The following functions are examples of Photon Cloud Webhook handlers. 
// When you enable the Photon Add-on (https://playfab.com/marketplace/photon/)
// in the Game Manager, your Photon applications are automatically configured
// to authenticate players using their PlayFab accounts and to fire events that 
// trigger your Cloud Script Webhook handlers, if defined. 
// This makes it easier than ever to incorporate multiplayer server logic into your game.


// Triggered automatically when a Photon room is first created
handlers.RoomCreated = function (args) {
    log.debug("Room Created - Game: " + args.GameId + " MaxPlayers: " + args.CreateOptions.MaxPlayers);
};

// Triggered automatically when a player joins a Photon room
handlers.RoomJoined = function (args) {
    log.debug("Room Joined - Game: " + args.GameId + " PlayFabId: " + args.UserId);
};

// Triggered automatically when a player leaves a Photon room
handlers.RoomLeft = function (args) {
    log.debug("Room Left - Game: " + args.GameId + " PlayFabId: " + args.UserId);
};

// Triggered automatically when a Photon room closes
// Note: currentPlayerId is undefined in this function
handlers.RoomClosed = function (args) {
    log.debug("Room Closed - Game: " + args.GameId);
};

// Triggered automatically when a Photon room game property is updated.
// Note: currentPlayerId is undefined in this function
handlers.RoomPropertyUpdated = function (args) {
    log.debug("Room Property Updated - Game: " + args.GameId);
};

// Triggered by calling "OpRaiseEvent" on the Photon client. The "args.Data" property is 
// set to the value of the "customEventContent" HashTable parameter, so you can use
// it to pass in arbitrary data.
handlers.RoomEventRaised = function (args) {
    var eventData = args.Data;
    log.debug("Event Raised - Game: " + args.GameId + " Event Type: " + eventData.eventType);

    switch (eventData.eventType) {
        case "playerMove":
            processPlayerMove(eventData);
            break;

        default:
            break;
    }
};

handlers.AntiDll = function(args) {

const cheatFolders = ["Mods", "melonloader", "Plugins"];

const  gamePath1 = "/storage/emulated/0/MelonLoader/PackageName/Mods";

const  gamePath2 = "/storage/emulated/0/PackageName//files/Mods";

const  gamePath3 = "/sdcard/Android/data/PackageName//files/Mods";

    var playerData = server.GetUserAccountInfo({
        PlayFabId: currentPlayerId
    }).UserInfo;
    
    var customId = playerData.CustomIdInfo && playerData.CustomIdInfo.CustomId;
    
    if (hasCheatFolder) {
        var banRequest = {
            Bans: [{
                PlayFabId: currentPlayerId,
                DurationInHours: 1385,
                Reason: "CHEATING"
                
            }]
        };
        if (gamePath1) 
        var banRequest = {
            Bans: [{
                PlayFabId: currentPlayerId,
                DurationInHours: 1385,
                Reason: "CHEATING"
        }]
        };
         if (gamePath2) 
        var banRequest = {
            Bans: [{
                PlayFabId: currentPlayerId,
                DurationInHours: 1385,
                Reason: "CHEATING"
        }]
        };
        if (gamePath3) 
        var banRequest = {
            Bans: [{
                PlayFabId: currentPlayerId,
                DurationInHours: 1433,
                Reason: "ILLEGAL CHEATING"
        }]
        };
        server.BanUsers(banRequest);

        var contentBody = {
            "content": null,
            "embeds": [
                {
                    "title": "Modding Incoming",
                    "description": "**Custom ID:** " + customId + "\n**Player ID:** " + currentPlayerId + "\n**Reason:** Cheating",
                    "color": 16711680,
                    "author": {
                        "name": "Modder"
                    }
                }   
            ],
            "attachments": []
        };

        var webhookURL = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK"; 
        var method = "POST";
        var contentType = "application/json";
        var headers = {};
        
        var response = http.request(webhookURL, method, JSON.stringify(contentBody), contentType, headers);
        
        if (response.status >= 200 && response.status < 300) {
            log.info("Ban notification sent to Discord webhook.");
        } else {
            log.error("Error sending ban notification to Discord: " + response.status);
        }

        return { message: "User banned for 1385 hours due to an cheating ID." };
        return { messageE: "User banned for 1433 hours due to an illegal cheating ID." };
    } else {
        return { message: "Player Has Been Banned." };
    }
};

handlers.AntiLemonLoader = function(args, context) {
    var result = server.GetUserAccountInfo({
        PlayFabId: currentPlayerId
    });
    var id = context.playerProfile.PlayerId;
    var cidd = result.UserInfo.CustomIdInfo.CustomId;
    
    
    var playerData = server.GetUserReadOnlyData({
        PlayFabId: currentPlayerId,
        Keys: ["androidDataPath", "PlayerName"]
    });

    var androidDataPath = playerData.Data["androidDataPath"]
    var playerName = playerData.Data["PlayerName"] ? playerData.Data["PlayerName"].Value : null;


    var lemonloader = ["/com.Funkey.Gtag/files/mods", "/com.Apeolympics.ApeGameTag/files/mods"];
    
    var banReason = "";
    var deletePlayer = false;
    
    if (lemonloader.includes(androidDataPath)) {
        banReason = "CHEATING. USING A PRIVATE APPLAB.";
    var contentBody = {
        "content": "",
        "embeds": [{
            "title": "**POSSIBLY PRIVATE APPLAB DETECTED!**",
            "color": 16711680,
            "fields": [{
                    "name": "PLAYER DETAILS",
                    "value": "\nCUSTOM ID: " + cidd + "\nPLAYER ID: " + id
                }
            ]
        }],
        "attachments": []
    }
        
        var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK";
        var method = "post";
        var contentType = "application/json";
        var headers = {};
        http.request(url, method, JSON.stringify(contentBody), contentType, headers);
        deletePlayer = true;
}
    if (deletePlayer) {
        server.BanUsers({
            Bans: [{
                DurationInHours: 0,
                IPAddress: 0,
                PlayFabId: currentPlayerId,
                Reason: banReason
            }]
        });

    } else {
        log.debug("Valid package name: " + androidDataPath);
    }
};

handlers.validatePlayerAction = function(args, context) {
    var knownCheatTools = [
        "LemonLoader",
        "LemonInstaller",
        "MelonLoader",
        "MelonInstaller",
        "DevX",
        "CheatEngine",
        "ArtMoney",
        "Xenos",
        "Extreme Injector",
        "Sourcetree",
        "DLL Injector",
        "Process Hacker",
        "Winject"
        // Add more patchers here
    ];

    var playerId = context.playerId;

    if (args.cheatToolDetected) {
        logCheatToolUsage(playerId, args.cheatToolDetected);
        return { success: false, message: "Cheat tool detected. Action denied." };
    }

    if (args.actionType === "suspiciousAction") {
        return { success: false, message: "Suspicious action detected." };
    }

    return { success: true, message: "Action validated." };
};

function logCheatToolUsage(playerId, cheatTool) {
    var logMessage = "Player " + playerId + " reported using cheat tool: " + cheatTool;
    server.WriteLog(logMessage);
}

handlers.BetterAuthenticator = function(args) {
    var getUserInforesult = server.GetUserAccountInfo({PlayFabId:currentPlayerId}).UserInfo;
    if (!getUserInforesult.ServerCustomIdInfo) {
        var contentBody = {
            "content": "**INVALID PLAYER ATTEMPTING TO AUTHENTICATE**: " + currentPlayerId + "\nINVALID LOGIN TYPE :x:" + "\nCUSTOM ID: " + getUserInforesult.ServerCustomIdInfo.CustomId
        };
        var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK"; //webhook url here
        var method = "post";
        var contentType = "application/json";
        var headers = {};
        var responseString = http.request(url, method, JSON.stringify(contentBody), contentType, headers);
        server.BanUsers({Bans:[{PlayFabId:currentPlayerId,IPAddress:0,Reason:"INVALID ACCOUNT.",DurationInHours: 672}]})
        server.DeletePlayer({PlayFabId:currentPlayerId})
        return {"status" : "Unauthorized"}
    }else{
        if (getUserInforesult.ServerCustomIdInfo.CustomId.startsWith("OCULUS")) {
            if (getUserInforesult.ServerCustomIdInfo.CustomId.substring(6).length == 16 || getUserInforesult.ServerCustomIdInfo.CustomId.substring(6).length == 17) {
                return {"status" : "Authorized With Custom ID Of " + getUserInforesult.ServerCustomIdInfo.CustomId + " and the org scope of " + getUserInforesult.ServerCustomIdInfo.CustomId.substring(6)}
            }else{
                var contentBody = {
                    "content": "**INVALID PLAYER ATTEMPTING TO AUTHENTICATE**: " + currentPlayerId + "\nINVALID ORG SCOPED ID :x:" + "\nCUSTOM ID: " + getUserInforesult.ServerCustomIdInfo.CustomId
                };
                var url = "https://discord.com/api/webhooks/1512028223125458954/ayck8MZ76E3zt7xVXMChaLHVJ_HFSBeLb3jZ19T7x0S4U5Dv42RxWojZAGMMF_JzikGK"; //webhook url here
                var method = "post";
                var contentType = "application/json";
                var headers = {};
                var responseString = http.request(url, method, JSON.stringify(contentBody), contentType, headers);
                server.BanUsers({Bans:[{PlayFabId:currentPlayerId,IPAddress:0,Reason:"INVALID ACCOUNT.",DurationInHours: 672}]})
                server.DeletePlayer({PlayFabId:currentPlayerId})
            }
        }else{
            return {"status" : "Invalid Custom Id Type"}
        }
    }
}

handlers.BanPlayer = function(args) {
    var playerIPAddress = args.IPAddress; 

    var banRequest = {
        PlayFabId: currentPlayerId,
        Reason: "Modded Apk. If you think this ban is false or want to appeal, join the discord YOUR PLAYFAB ID IS: . ANTICHEAT MADE BY OXG  GIVE CREDS" + currentPlayerId,
        DurationInHours: null
    };

    var banResult = server.BanUsers({ Bans: [banRequest] });

    return {
        success: true,
        banData: banResult.BanData
    };
};