CPMStaffCommands

  • community
  • administration
  • by Mad
  • Takaro v0.0.21
  • all
Version
View export JSON

Provides a set of moderator commands for enhanced server management, especially useful alongside the CPM (CSMM Patrons Mod). These commands offer tools for player moderation, world manipulation, and server administration.

Key Functionality

  • Player Management:
    • /kill <playerTarget>: Instantly kills the specified player (requires confirmation).
    • /mute <player> <reason>: Mutes a player in chat with a specified reason.
    • /unmute <player>: Unmutes a player.
    • /arrest <player> <reason>: Places a player in a designated jail area with a reason.
    • /release <player>: Releases a player from jail.
    • /pull <player>: Teleports the specified player to the moderator's location.
    • /rpd <player>: Resets the specified player's data (use with extreme caution).
    • /wi <player> <tool>: Wipes a player's inventory (belt, bag, equipment, or all).
  • Player Buffs/Debuffs:
    • /buff <player>: Temporarily grants god-like powers to a player.
    • /debuff <player>: Removes specified debuffs from a player.
  • World Manipulation:
    • /pr: Resets the current Point of Interest (POI).
    • /reset1: Sets the first corner for chunk reset.
    • /reset2: Resets chunks between the first and second corners.
    • /killall: Kills all zombies on the server.
    • /visitmap: Opens the server map (requires CPM functionality).
  • Server Control:
    • /shutdownba <minutes>: Shuts down the server after a specified delay.

How to Use

  1. Installation: Install the module on your Takaro instance.

  2. CPM Requirement: This module is designed to enhance 7 Days to Die servers using the CSMM Patrons Mod (CPM). While some commands may function without it, full functionality is not guaranteed.

  3. Discord Integration (Optional):

    • Configure the userDiscordChannel setting to enable Discord notifications for certain moderation actions (e.g., bans, kicks, mutes).
  4. Permissions: Grant the STAFF_COMMANDS permission to the player groups or individuals who should have access to these moderator commands. Individual commands may have their own permissions as well.

  5. In-Game Usage: Moderators can use the commands as described in the "Key Functionality" section. Pay close attention to the specific syntax and arguments required for each command (e.g., using quotes around player names with spaces).

Important Considerations

  • CPM Compatibility: The module's functionality may depend on the specific version and configuration of the CSMM Patrons Mod. Ensure compatibility to avoid issues.
  • Permission Management: Use the provided permissions to restrict access to these powerful moderator commands. Incorrect usage can disrupt the game experience.
  • Confirmation: Some commands (e.g., /kill, /rpd) require confirmation to prevent accidental execution due to their potentially destructive nature.
  • Discord Setup: If using Discord notifications, ensure that your Takaro instance is properly configured to communicate with your Discord server.

Configuration 1

Settings you fill in when installing the module on a server.

SettingTypeDefaultDescription
userDiscordChannel required userDiscordChannel string "" Sends to discord
Raw config schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": [
    "userDiscordChannel"
  ],
  "additionalProperties": false,
  "properties": {
    "userDiscordChannel": {
      "title": "userDiscordChannel",
      "description": "Sends to discord",
      "default": "",
      "type": "string"
    }
  }
}
Raw UI schema
{}

Commands 31

Chat commands players trigger in game.

  • azomb

    [02FEDC]Stand directly above your land claim when you run this command!!!!!![-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, module: mod, gameServerId, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'ZOMB_FREE_SELF')) {
            throw new TakaroUserError('You do not have permission to use the [02FEDC]Zombie free[-] commmand.');
        };
    
        await player.pm(`[EA899A]Zombie Free[-] [ADDFB3]for you![-]`);
    
        //Execute dm mode
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `ccc radius 30 ${player.name} VIP_${player.name}_HF 0 hostilefree`,
        });
    
        //ccc radius 5 YOURNAME jail 0 reversed)
        //ccc radius < radius > <steamId/entityId/Name > <claimid/steamid> <accessLevel> [<type>]
    
        // Execute the command
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `ccc radius 30 ${player.name} VIP_${player.name}_Normal 400`
        });
    
        // Search for the adminMode variable
        const zombFreeVariable = (await takaro.variable.variableControllerSearch({
            filters: {
                key: ['zombFreeVariable'],
                moduleId: [mod.moduleId],
                playerId: [player.id],
                gameServerId: [gameServerId],
            },
        })).data.data[0];
    
        // Update the last message variable so the next time this cron job runs, we know what to send
        if (zombFreeVariable) {
            // The variable already exists, update it
            const currentValue = parseInt(zombFreeVariable.value, 10); // Ensure it's an integer
            await takaro.variable.variableControllerUpdate(zombFreeVariable.id, {
                value: (currentValue + 1).toString(), // Increment and convert to string
            });
        } else {
            // The variable doesn't exist, create it with a starting value of 0
            await takaro.variable.variableControllerCreate({
                key: 'zombFreeVariable',
                value: '0', // Start with 0 as a string
                playerId: player.id,
                moduleId: mod.moduleId,
                gameServerId: gameServerId,
            });
        }
    }
    await main();
  • kill

    [02FEDC]kill (players name) You must run the command a second time to confirm the kill. Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string The player you want to kill
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, module: mod, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        // Check permissions first
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commands.');
        }
    
        // Check if there's an existing confirmation variable
        const confirmationKey = `kill_confirmation_${playerTarget}`;
        const existingConfirmation = await takaro.variable.variableControllerSearch({
            filters: {
                key: [confirmationKey],
                gameServerId: [gameServerId],
                playerId: [pog.playerId],
                moduleId: [mod.moduleId]
            }
        });
    
        // If confirmation variable exists, proceed with kill
        if (existingConfirmation.data.data.length > 0) {
            // Delete the confirmation variable first
            await takaro.variable.variableControllerDelete(existingConfirmation.data.data[0].id);
    
            const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
            // Execute the kill command
            const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
                command: `kill ${targetArg}`,
            })).data.data.rawResult;
    
            if (response.includes('Targetplayer is offline')) {
                throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
            }
    
            await player.pm(`You have killed [02FEDC]${playerTarget}[-].`);
        } else {
            // Create confirmation variable with 30 second expiry
            const now = new Date();
            const expiry = new Date(now.getTime() + 30 * 1000); // 30 seconds from now
    
            await takaro.variable.variableControllerCreate({
                key: confirmationKey,
                value: JSON.stringify({ expiry: expiry.toISOString() }),
                gameServerId,
                moduleId: mod.moduleId,
                playerId: pog.playerId
            });
    
            // Send confirmation message
            await player.pm(`Are you sure you want to kill [02FEDC]${playerTarget}[-]? Run the command again within 30 seconds to confirm.`);
        }
    }
    
    await main();
  • buff - 2

    Ends players buff

    ArgumentTypeDefaultHelp
    playerTarget string why
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        //Check Permissions
        if (!checkPermission(pog, 'BUFF')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commands.');
        }
    
        //Adjust target to work in quotes
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
        //Execute Command
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `debuffplayer ${targetArg} god`,
        });;
    
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `pm ${targetArg} "[ADDFB3]Your powers have stopped. Thanks for playing [FF6D6A]Double Tap[-][-]"`,
        });
    
    }
    
    await main();
  • rdd

    [02FEDC]rdd (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string Person drone data is being reset for
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'RDD')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]Reset Drone Data[-].');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `rdd ${targetArg}`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    }
    
    await main();
  • pr

    [02FEDC]Reset the POI you are standing in[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'RESET_PREFAB')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]Reset Prefabs[-].');
        };
    
        await player.pm(`[EA899A]Resetting prefab[-]`);
    
        //Execute Resetting Prefab
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `getprefab EOS_${player.epicOnlineServicesId} reset`,
        });
    
        await player.pm(`[EA899A]Prefab was[-] [ADDFB3]reset[-]`);
    }
    await main();
  • release

    [02FEDC]Release (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string Player that's released
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
    
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
        //Execute Command arrest
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `release ${targetArg}`,
        })).data.data.rawResult;
    
        if (response.includes('is not a valid entity id, player name or user id')) {
            throw new TakaroUserError(`[B1A2CA]${playerTarget}[-]'s name wasn't spelled correctly or is phone! Use quotes if their name has spaces!`)
        };
    
        //Send global message in game to shame the offender
        await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
            message: `[FF6D6A]${args.playerTarget}[-] [EA899A]has been released. Please follow the rules![-]`,
        });
    }
    await main();
    //# sourceMappingURL=visit.js.map
  • pull

    [02FEDC]pull (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string Player
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `teleportplayer ${targetArg} ${player.name}`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    }
    
    await main();
  • reset1

    [02FEDC]First position to reset a chunk. Use /reset2 in the opposite corner to reset the desired area.[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'RESET_CHUNKS')) {
            throw new TakaroUserError('You do not have permission to use the [02FEDC]Reset Chunks[-] commmand.');
        };
    
        await player.pm(`[EA899A]Reset Chunks[-] [ADDFB3]position was stored. Now go to the opposite corner and use /reset2[-]`);
    
        //Execute command
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `resetchunks p1`,
        });
    
        //*** Command(s): cpm-resetchunks, resetchunks ***
        //Usage:
        //1. resetchunks p1
        //2. resetchunks p2
        //3. resetchunks radius <radius> <steamId/entityId/Name>
        //1. Store your position to be used on method 2.
        //2. Reset chunks from position stored on method 1 until your current location(p2).
        //3. Reset chunks within boundaries on <radius> distance from <steamId/entityId/Name> position.
    }
    await main();
  • reset2

    [02FEDC]Last position to reset a chunk.[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'RESET_CHUNKS')) {
            throw new TakaroUserError('You do not have permission to use the [02FEDC]Reset Chunks[-] commmand.');
        };
    
        await player.pm(`[EA899A]Reset Chunks[-] [ADDFB3]command executed[-]`);
    
        //Execute command
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `resetchunks p2`,
        });
    
        //*** Command(s): cpm-resetchunks, resetchunks ***
        //Usage:
        //1. resetchunks p1
        //2. resetchunks p2
        //3. resetchunks radius <radius> <steamId/entityId/Name>
        //1. Store your position to be used on method 2.
        //2. Reset chunks from position stored on method 1 until your current location(p2).
        //3. Reset chunks within boundaries on <radius> distance from <steamId/entityId/Name> position.
    }
    await main();
  • unmute

    [02FEDC]unmute (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    person string player to be unmuted
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const { person, reasoning } = args;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        //Adjust target to work in quotes
        const targetPerson = /\s/.test(person) ? `"${person}"` : person;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `mcp ${targetPerson} false`,
        })).data.data.rawResult;
    
        if (response.includes('is not a valid entity id, player name or user id')) {
            throw new TakaroUserError(`[02FEDC]${person}[-]'s name wasn't spelled correctly!`);
        }
    
        //Confirmation
        await player.pm(`[02FEDC]${person}[-] was unmuted.`);
    
    }
    
    await main();
  • th - 2

    [02FEDC]Second round of a targeted horde[-]

    ArgumentTypeDefaultHelp
    playerTarget string target player
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `th ${targetArg} 20`,
        });
    }
    
    await main();
  • ban

    [02FEDC]ban (player name) (reason in quotes) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name. [-]

    ArgumentTypeDefaultHelp
    reasoning string contact a moderator for the reason Reason they are banned
    person string Person being banned
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const { person, reasoning } = args;
        const discordChannel = data.module.userConfig.userDiscordChannel;
    
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
    
        //Adjust target to work in quotes
        const targetPerson = /\s/.test(person) ? `"${person}"` : person;
    
        const targetReasoning = /\s/.test(reasoning) ? `"${reasoning}"` : reasoning;
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `ban add ${targetPerson} 1 year ${targetReasoning} ${targetPerson}`,
        })).data.data.rawResult;
    
        if (response.includes('is not a valid entity id, player name or user id')) {
            throw new TakaroUserError(`[02FEDC]${person}[-]'s name wasn't spelled correctly!`);
        }
    
        //Confirmation
        await player.pm(`[02FEDC]${person}[-] was banned.`);
    
        await takaro.discord.discordControllerSendMessage(discordChannel, {
            message: `🔨 ${player.name} banned ${person} for ${reasoning}.`,
        });
    }
    
    await main();
  • th - 3

    Targeted Horde round 3

    ArgumentTypeDefaultHelp
    playerTarget string Target player
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `th ${targetArg} 20`,
        });
    }
    
    await main();
  • rpd

    [02FEDC]rpd (player name) Resets a player's data. Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string the player's data you are resetting
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, module: mod, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        // Check permissions first
        if (!checkPermission(pog, 'RESET_PLAYER')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commands.');
        }
    
        // Check if there's an existing confirmation variable
        const confirmationKey = `reset_player_${playerTarget}`;
        const existingConfirmation = await takaro.variable.variableControllerSearch({
            filters: {
                key: [confirmationKey],
                gameServerId: [gameServerId],
                playerId: [pog.playerId],
                moduleId: [mod.moduleId]
            }
        });
    
        // If confirmation variable exists, proceed with kill
        if (existingConfirmation.data.data.length > 0) {
            // Delete the confirmation variable first
            await takaro.variable.variableControllerDelete(existingConfirmation.data.data[0].id);
    
            const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
            // Execute the reset command
            const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
                command: `rpd ${targetArg}`,
            })).data.data.rawResult;
    
            if (response.includes('Targetplayer is offline')) {
                throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
            }
    
            await player.pm(`You have reset [02FEDC]${playerTarget}[-].`);
        } else {
            // Create confirmation variable with 30 second expiry
            const now = new Date();
            const expiry = new Date(now.getTime() + 30 * 1000); // 30 seconds from now
    
            await takaro.variable.variableControllerCreate({
                key: confirmationKey,
                value: JSON.stringify({ expiry: expiry.toISOString() }),
                gameServerId,
                moduleId: mod.moduleId,
                playerId: pog.playerId
            });
    
            // Send confirmation message
            await player.pm(`Are you sure you want to reset [02FEDC]${playerTarget}[-]? Run the command again within 30 seconds to confirm.`);
        }
    }
    
    await main();
  • avisit

    [02FEDC]avisit (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name. [-]

    ArgumentTypeDefaultHelp
    playerTarget string Player teleporting to
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, entityId, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `mv "${player.name}" ${targetArg}`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    
        // Send success message to the player
        await player.pm(`Successfully teleported to [02FEDC]${playerTarget}[-]`);
    }
    
    await main();
  • visitmap

    [02FEDC]Open the map for Takaro and CPM.[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { gameServerId, pog } = data;
    
        if (!checkPermission(pog, 'VISIT_MAP')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        await player.pm(`[EA899A]Beginning to visit the map[-]`);
    
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `visitmap full`,
        });
    }
    
    
    await main();
  • cm & dm

    [02FEDC]Creative mode and debug menu. Reserved for admins[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, module: mod, gameServerId, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'CM_DM')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Admin[-] commmands.');
        };
    
        await player.pm(`[EA899A]Admin Mode[-] [ADDFB3]TOGGLED[-]`);
    
        //Execute dm mode
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `eoc EOS_${pog.gameId} "dm"`,
        });
    
        // Execute the command CM
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `eoc EOS_${pog.gameId} "cm"`
        });
    
        //Variable
    
        // Search for the adminMode variable
        const adminModeVariable = (await takaro.variable.variableControllerSearch({
            filters: {
                key: ['adminMode'],
                moduleId: [mod.moduleId],
                playerId: [player.id],
                gameServerId: [gameServerId],
            },
        })).data.data[0];
    
        // Update the last message variable so the next time this cron job runs, we know what to send
        if (adminModeVariable) {
            // The variable already exists, update it
            const currentValue = parseInt(adminModeVariable.value, 10); // Ensure it's an integer
            await takaro.variable.variableControllerUpdate(adminModeVariable.id, {
                value: (currentValue + 1).toString(), // Increment and convert to string
            });
        } else {
            // The variable doesn't exist, create it with a starting value of 0
            await takaro.variable.variableControllerCreate({
                key: 'adminMode',
                value: '0', // Start with 0 as a string
                playerId: player.id,
                moduleId: mod.moduleId,
                gameServerId: gameServerId,
            });
        }
    }
    await main();
  • rvr

    [02FEDC]rvr (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string target player
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `rvr ${targetArg}`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    
        await player.pm(`[B1A2CA]Successfully removed [02FEDC]${playerTarget}'s[-] vending machine rental[-]`);
    }
    
    await main();
  • setjail

    [02FEDC]Set an 11x11 area to put hail birds in.[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'SET_JAIL')) {
            throw new TakaroUserError('You do not have permission to use the [02FEDC]Zombie free[-] commmand.');
        };
    
        await player.pm(`[EA899A]Jail[-] [ADDFB3]was set! 11x11 area. Use /arrest (players name) to arrest them[-]`);
    
        //Execute command
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `ccc radius 5 EOS_${player.epicOnlineServicesId} jail 0 reversed`,
        });
    
        //ccc radius 5 YOURNAME jail 0 reversed)
        //ccc radius < radius > <steamId/entityId/Name > <claimid/steamid> <accessLevel> [<type>]
    
    }
    await main();
  • killall

    [02FEDC]Kill all of the Zeds on the server.[-]

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]Kill All[-].');
        };
    
        await player.pm(`[EA899A]Killed all of the zeds on the server[-]`);
    
        //Execute Resetting Prefab
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `killall`,
        });
    
    }
    await main();
  • buff - 1

    [02FEDC]buff (player name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    playerTarget string playerTarget
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        //Check Permissions
        if (!checkPermission(pog, 'BUFF')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commands.');
        }
    
        //Adjust target to work in quotes
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
        //Execute Command
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `buffplayer ${targetArg} god`,
        });
    
        //PM player to nitify them of thebuff
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `pm ${targetArg} "[02FEDC]Mad[-][-] grants you God like power for [FF0507]2[-] [4FFF00]min![-]"`,
        });
    
        //Notify sender of buff
        await player.pm(`[ADDFB3]You have successfully buffed [B1A2CA]${playerTarget}[-]`);
    }
    
    await main();
  • kickall

    No help text available

    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { pog } = data;
    
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]Kick Everyone[-].');
        };
    
        const message = "Doing a server restart. The server will be back up in a minute."
    
        const targetMessage = /\s/.test(message) ? `"${message}"` : message;
    
        //Execute Resetting Prefab
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `kickall ${targetMessage}`,
        });
    
    }
    await main();
  • aaaaaaa

    No help text available

    Command source
    //th
    //giveplus
    //brender/bundo
    //debuff
  • arrest

    [02FEDC]arrest (player name) (reason for arrest)[-]

    ArgumentTypeDefaultHelp
    playerTarget string Other player's name
    reasoning string no reason given Reason
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
        const reasoning = args.reasoning
    
    
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        //Adjust target to work in quotes
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        //Execute Command arrest
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `arrest ${targetArg}`,
        })).data.data.rawResult;
    
        //Throw an error if the name is wrong
        if (response.includes('Player not found!')) {
            throw new TakaroUserError(`[8BD3E6]${playerTarget}'s[-] [E9EC6B]name wasn't spelled correctly! Use quotes for names with spaces. Copy their name from Discord if you cannot type their name.[-]`);
        }
    
        //Send global message in game to shame the offender
        await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
            message: `[B1A2CA]${playerTarget}[-] [EA899A]was arrested for ${reasoning}[-]`,
        });
        //Discord Channel Configuration
        const userDiscord = data.module.userConfig.userDiscordChannel;
        //Send it to Discord
        await takaro.discord.discordControllerSendMessage(userDiscord, {
            message: `${player.name} arrested ${playerTarget} for ${reasoning}`,
        });
    };
    await main();
    //# sourceMappingURL=visit.js.map
  • shutdownba

    No help text available

    ArgumentTypeDefaultHelp
    timer number 10 minutes till shutdown
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { pog, arguments: args } = data;
        const timer = args.timer
        //Check Permissions
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]Shutdown the server[-].');
        };
    
        //Execute command
        await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, {
            command: `shutdownba ${timer}`,
        });
    
    }
    await main();
  • th - 1

    [02FEDC]Send a horde in 4 intervals in 30 seconds at a player. Type /th (name) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name. [-]

    ArgumentTypeDefaultHelp
    playerTarget string person you're sending the horde after
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `th ${targetArg} 20`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    
        await player.pm(`[B1A2CA]${playerTarget}[-] [02FEDC]has a horde coming at them. Grab some popcorn and enjoy the show![-]`);
    }
    
    await main();
  • kick

    [02FEDC]kick (player name) (reason in quotes). Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    person string Player getting kicked
    reasoning string Contact a moderator for a kick reason Reason for being kicked
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const { person, reasoning } = args;
        const discordChannel = data.module.userConfig.userDiscordChannel;
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        //Adjust target to work in quotes
        const targetPerson = /\s/.test(person) ? `"${person}"` : person;
    
        const targetReasoning = /\s/.test(reasoning) ? `"${reasoning}"` : reasoning;
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `kick ${targetPerson} ${targetReasoning}`,
        })).data.data.rawResult;
    
        if (response.includes('is not a valid entity id, player name or user id')) {
            throw new TakaroUserError(`[02FEDC]${person}[-]'s name wasn't spelled correctly!`);
        }
    
        //Confirmation
        await player.pm(`[02FEDC]${person}[-] was kicked.`);
    
        await takaro.discord.discordControllerSendMessage(discordChannel, {
            message: `🥾 ${player.name} kicked ${person} for ${reasoning}`,
        });
    }
    
    await main();
  • th - 4

    [02FEDC]Fourth round of Targeted Horde[-]

    ArgumentTypeDefaultHelp
    playerTarget string target player
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `th ${targetArg} 20`,
        });
    }
    
    await main();
  • ocn

    [02FEDC] Change a player's name in chat. Type /ocn (Name) (New Name). Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name. [-]

    ArgumentTypeDefaultHelp
    playerTarget string target
    pname string new name
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
        const pname = args.pname
    
        if (!checkPermission(pog, 'STAFF_COMMANDS')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
        const newName = /\s/.test(pname) ? `"${pname}"` : pname;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `ocn ${targetArg} ${newName}`,
        })).data.data.rawResult;
    
        if (response.includes('Targetplayer is offline')) {
            throw new TakaroUserError(`[02FEDC]${playerTarget}[-] is not online`);
        }
    
        await player.pm(`[B1A2CA]${playerTarget}'s[-] [02FEDC]name was set to ${pname} in chat.[-]`);
    }
    
    await main();
    // ocn <steamId / entityId / playerName> <newName>
    // ocn <steamId / entityId / playerName> clear
    // ocn list
  • mute

    [02FEDMute (player name) (reason in quotes) Use quotes for players with spaces in their name. Copy their name from Discord if you cannot type their name.[-]

    ArgumentTypeDefaultHelp
    reasoning string No reason given Reason they were muted
    person string Person to be muted
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const { person, reasoning } = args;
        const discordChannel = data.module.userConfig.userDiscordChannel;
        if (!checkPermission(pog, 'MUTE')) {
            throw new TakaroUserError('You do not have permission to use [02FEDC]Moderator[-] commmands.');
        }
    
        const targetArg = /\s/.test(person) ? `"${person}"` : person;
    
    
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `mcp ${targetArg} true`,
        })).data.data.rawResult;
    
        if (response.includes('is not a valid entity id, player name or user id')) {
            throw new TakaroUserError(`[02FEDC]${person}[-]'s name wasn't spelled correctly!`);
        }
    
        //Confirmation
        await player.pm(`[02FEDC]${person}[-] was muted.`);
    
        await takaro.discord.discordControllerSendMessage(discordChannel, {
            message: `🤐 ${player.name} muted ${person} for ${reasoning}.`,
        });
    }
    
    await main();
  • wi

    Wipe a player's belt, bag, equipment, all

    ArgumentTypeDefaultHelp
    tool string belt belt, bag, equipment, all
    playerTarget string person
    Command source
    import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
    async function main() {
        const { player, gameServerId, pog, arguments: args } = data;
        const playerTarget = args.playerTarget;
        const tool = args.tool
    
    
        //Check Permissions
        if (!checkPermission(pog, 'WIPE_INVENTORY')) {
            throw new TakaroUserError('You do not have permission to [02FEDC]wipe inventories[-] commmands.');
        }
    
        //Adjust target to work in quotes
        const targetArg = /\s/.test(playerTarget) ? `"${playerTarget}"` : playerTarget;
    
    
        //Execute Command arrest
        const response = (await takaro.gameserver.gameServerControllerExecuteCommand(gameServerId, {
            command: `wi ${targetArg} ${tool}`,
        })).data.data.rawResult;
    
        //Throw an error if the name is wrong
        if (response.includes('Player not found!')) {
            throw new TakaroUserError(`[8BD3E6]${playerTarget}'s[-] [E9EC6B]name wasn't spelled correctly! Use quotes for names with spaces. Copy their name from Discord if you cannot type their name.[-]`);
        }
    
        //Send global message in game to shame the offender
        await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
            message: `[B1A2CA]${playerTarget}'s[-] [EA899A]${tool} was wiped.[-]`,
        });
    }
    await main();
    //# sourceMappingURL=visit.js.map

Permissions 17

Roles you can grant to decide who may use what.

  • Mute a Player

    Mute unruly players in game

  • Zombie Free Self

    Zombie free command for admins to run the command for their personal house

  • List Land Claims nearby

    Lists land claims near by

  • Remove land claims

    remove nearby land claims

  • Reset Player Data

    Resets a player's corrupted data

  • Reset Drone Data

    Resets player drone data to place a new one

  • Unmute

    Unmute a player

  • Kill player

    Kill a player

  • Admin Menu

    Creative mode and debug menu

  • Visit Map

    Visit the map to unlock for Takaro and CPM

  • Release Jail

    Release a player from jail

  • Set Jail Location

    Set the location of your jail

  • Buff

    Buff another player

  • Rest Chunks

    Reset Chunks Permission

  • Wipe Inventory

    Wipe Inventory

  • Staff Commands

    Commands for staff to use without using Currency

  • Reset Prefabs

    Reset prefab permission