Basic Admin Essentials Plugin Help

Hello developers.

I am using Basic Admin Essentials created by @TheFurryFish for my interview and training center. I was wondering if someone could assist me as I have tried and failed. Let me tell you what I want the script to be used for.

Please note: If you are considering helping me, this script will not be re-sold/published on the Roblox Site and will be only used for me to keep your creation’s privacy.

The script will be used at an Interview/Training center.

The script will work like this:

Player1 Chat !information
System Begins executing commands like M that will display messages on the screen.

This script would be used as a plugin most likely.

Also, for the script, the system will have to wait until the 1st message goes away before sending another system message.

I know this can work because Frappe uses something like this with Basic Admin Essentials.

If you could script something for me/assist me but it wouldn’t use Basic Admin Essentials and it would still be able to be done by a chat message then that is fine. I guess it would just display GUIs that have a message.

————————

Thank you very much and best wishes!

If you are interested ———> please either reply to this post, send me a DeveloperFourm message @msami7893 or send me a message on Discord Msami#3783 I perfer not Discord

14 Likes

try

2 Likes

Could you tell us what you tried and how those attempts failed? Building off of your previous attempts would be much more productive to highlight where you went wrong and how you can receive help on improving that implementation. I should warn you though, not everyone is familiar with specific systems like this.

Alternatively, if you are looking for developers to write scripts for you, you are in the wrong category. Please use the Recruitment category to hire developers for your projects and be sure to follow in the spirit of the category itself when posting hiring topics there (e.g. have appropriate information).

3 Likes

Well, maybe this post can help you out a bit!
I see you want to create an information command with the custom prefix ! (which is also Basic Admin Essential’s default action-prefix). I believe you’d want it to run the message command and display information.

Parameters

Basic Admin Essentials runs plugins by giving them an execution-function, where it provides a table with the following data.

{essentialsEvent, essentialsFunction, returnPermission, Commands, sysTable.Prefix, sysTable.actionPrefix, returnPlayers, cleanUserData, pluginEvent}

This may seem like a lot of stuff, but let me break it down for you.

  • essentialsEvent and essentialsFunction are basically just the RemoteEvent and RemoteFunction that Basic Admin uses to communicate with it’s client script.
  • returnPermission is a function that returns the permissions of the given player.
  • sysTable is what’s known as the SystemTable, which is basically a table where data is stored, so sysTable.Prefix is the prefix (default is :), and sysTable.ActionPrefix is the action prefix (default is !).
  • returnPlayers is the “GetPlayer” function, which takes the speaker of the command and the call, and returns a list of targets for the command to be executed on. For example, if i entered a player and “all”, it’d return all the players in the server.
  • cleanUserData is just a function that cleans the user’s data.
  • pluginEvent is a bindable event that is fired whenever something happens in the core.

Note, all these things are in an array so you’ll have to index them by their number.

Returns

Basic Admin Essentials also expects a number of things to be returned by the plugin. It expects the command’s name, execution function, level, prefix, and description. That’s all

Now that we’ve covered how to make plugins, let’s talk more about the execution-function. The execution-function is ran whenever the player calls the command. It has only 1 parameter, which is a table with holds a variety of data. It follows the following format:

{Player, Segments}

Let’s break this down real quick

  • Player is the player who is the speaker of the command
  • Segments is an array of segments of the command. For example, if I entered the command :tp all me, the segments would be {tp, all, me}

Making your command

Here’s a quick execution-function I’ve made for you.

local information = 'Replace this with your information!'
local pluginFunction = function(Args)
    local Player = Args[1]
    remoteEvent:FireClient(Player, 'Message', 'Information', information)
end

In total, the whole plugin would look like this:

local Plugin = function(Data)
    local remoteEvent = Data[1]

    local pluginName = "information"
    local pluginPrefix = "!"
    local pluginLevel = 1
    local pluginUsage = ""
    local pluginDescription = "Gives you information"

    local information = "Your information here!"

    local pluginFunction = function(Args)
        local Player = Args[1]
        remoteEvent:FireClient(Player, 'Message', 'Information', information)
    end

    pluginDescription = pluginName .. " " .. pluginDescription

    return pluginName, pluginFunction, pluginLevel, pluginPrefix, {pluginName, pluginUsage, pluginDescription}
end
9 Likes

@Crowdsource @446576656C6F706572 I understand this may be the wrong channel and I apologize, but I may have an answer here.

Thank you soo much for this amazing reply! Is there any way I could make it so that it repeats a series of messages? I can add a wait time between them myself.

Once again, your amazing for everything you wrote.

You’re welcome! If it solved your problem, select it as the solution so people know your problem is solved.

And also, I’m so sorry but I suck at scripting but one more question. What do I have to do at the end when it says return plugingame etc, do I have to replace those with the information as it is underlining in red in the script editor

Can you send a screenshot? I’m having trouble with the issue you’re trying to convey to me.

Apologies for the wait, so I’ll attach the photos below and let me confirm.

  1. some of the script is underlined in red, why is that? (photo linked below)
  2. I want it so that if I say !information then it will say about 10 (M) Messages but with a wait time in-between (I can do the wait functions) so it will say a message “Welcome to the session!” and then another message after that “here are the rules” etc.

There needs to be an end statement at the end of the script to show that that’s the end of the function. The syntax is like this:

local Plugin = function(Data)
    -- plugin code
end

Also, you’ll need to use the return statement to return the function to Basic Admin Essential’s core

The final result should look a like this:

local Plugin = function(Data)
    -- plugin code
end

return Plugin

Edit: Are you sure you’d want separate messages for separate topics of information? It’d get quite chaotic.

It would show each rule for the training/interview in a separate message, if you can’t do that then its fine.

Is this correct?

local Plugin = function(Data)
local remoteEvent = Data[1]

local pluginName = "information"
local pluginPrefix = "!"
local pluginLevel = 1
local pluginUsage = ""
local pluginDescription = "Gives you information"

local information = "This is a test run number 1"

local pluginFunction = function(Args)
    local Player = Args[1]
    remoteEvent:FireClient(Player, 'Message', 'Information', information)
end

return Plugin
1 Like

Seems fine to me. If any error arise, feel free to report them to me in this thread.

1 Like

Hmm, didn’t work and I said in the chat

!information
and nothing happened, I checked the developer console and I didn’t see any errors.

Try adding a print statement to the beginning of the pluginFunction.

local pluginFunction = function(Args)
    print("Information command running...")
    -- plugin function code
end

Error message,

console:1: Expected identifier when parsing expression, got ‘!’

If it’s a parser issue, something should be underlined in red in the script. Can you show me the underline in the script?

Ah, I see. You forgot to put the end statement and return statement of the plugin. I think you got a bit confused.

Anyway, I’d made a bunch of mistakes also. Here’s the final plugin

local Plugin = function(...)
    local Data = {...}
	
    local remoteEvent = Data[1][1]

    local pluginName = "information"
    local pluginPrefix = "!"
    local pluginLevel = 0
    local pluginDescription = "Gives you information"

    local information = "Put in the information you want here..."

    local pluginFunction = function(Args)
	local Player = Args[1]
        remoteEvent:FireClient(Player, 'Message', 'Information', information)
    end

    pluginDescription = pluginName .. " " .. pluginDescription

    return pluginName, pluginFunction, pluginLevel, pluginPrefix, {pluginName, pluginUsage, pluginDescription}
end

return Plugin
2 Likes

Did not work. I tried to edit to add what I want it to say and it didnt work, then I pasted directly yours and it didnt work.