Admin request ticket system

Greetings dev forum! Is there a way to make a admin request ticket system like Gate Studios has in there game FRCH.

I am not really sure how to make this.

I have looked it up on YT and I found nothing.

So pretty much there would be a gui that people could click and then they would put the info needed. Admins would check this by saying: !ticketlog . Please do not reply talking about discord webhooks as I would not be using that.

Not asking for a script. Just some pointers.

1 Like

You can store the requests (ticket) in DataStore.

You can try making a discord server and creating a webhook so if the player sends the ticket system, it will send the data to the webhook and there you go

Here’s a few different concepts you could use when creating something like this:

  • When someone creates a ticket, save the information about the ticket into a table with a unique id.
  • Also upon creation, add the id of the ticket into a table, which is saved on a separate key containing all unread tickets. Basically, when a staff member checks the next unread ticket, it takes and removes the first id (oldest) from the table. This id is used to get the ticket information.
  • Tickets should also be retrievable via id manually.

I said in my post dont reply about discord webhooks as I would not be using it.

This could be useable but he said that he isn’t using Discord WebHooks

You can store all of the important information into a table and use UpdateAsync to add it to a ticketdatastore. For the ticket gui for the admins, loop through the table adding a text label when needed.

Oh, sorry about that, didnt see

All good. Do you have any other ideas that don’t use webhooks?

Ok… I really have no clue what any of that means but I will look into it.

I will look into it. Thank you.

Have you had any experience in datastores, if not I can explain.

Well the other way is to use datastore

No not really. I am new to scripting and all that.

Datastores are ways to store data. Say you wanted to make a cash leaderstat. You leave the game and it doesen’t save. With a datastore you can save that stat and load it the next time they join a game.

local dataservice = game:GetService("DatastoreService") -- Referencing the service we are going to use
local mydatastore = dataservice:GetDataStore("CHANGENAME") -- This line is creating a new datastore. You can name it whatever you want.

game.Players.PlayerAdded:Connect(function(player) - A simple playeradded event to run this script whenever a player joins
 local playersdata = mydatastore:GetAsync(player.UserId)
if playersdata then -- Checking if the player has data, if the player has no data it will result to nil so we want to add this if statement.

game.Players.PlayerRemoving:Connect(function(player) - A simple player removing event to run this script whenever a player leaves the game.
mydatastore:SetAsync(player.UserId, "Already Been in this game before") -- When the player leaves the game, we are saving this string to their key (player.UserId)

This may look difficult, however there a couple things you need to know.

SetAsync is for saving data, there are two parameters. A key, and the data.
A key can be set to anything, but since we want to involve a player into this script we are going to set the key to their player UserId so we can check if they have data when they join.

GetAsync is for getting your data, you only need one parameter for this, a key. So in this script our key is player.UserId which holds that specific player’s data.

I did this script in the devforum chat so I did not check for errors. If you use it and there are errors, contact me.

Alright. Thanks. I will keep this in mind!