I was trying to make a player support system for my game, and was wondering if asking for there discord tag, email, is allowed?
From looking at the Community Rules I’d say it’s not allowed, specifically personal information which includes email.
What about discord user, and other stuff
Short answer, no, no no no… not at ALL.
AT ALL.
This is considered P.I.I (Personally Identifiable Information), because having access to those socials means, no more roblox filtering… which means you can get their personal information.
And, if you really need this player support? Code a email system, but only store the user’s UserId, and the moderator’s UserId. It won’t be hard, but it sounds hard, and use text filtering.
But nonononono… thats really bad.
I would like to do a in-game ticket system but I am not sure how I would be able to contact them.
I thought of discord, but some players can’t use it.
Depending on your game playerbase, not everyone uses discord so I’d say it’s safer to have a in-game message system such as players being able to send feedback through an interface which you can access through various ways, such as a discord webhook to read and send them a response.
How would you guys do a player support system?
How would reply to them and how would they receive it?
They also wouldn’t allow it period.
You can’t ask on your game for the discord usernames of players or talk about discord existing either.
Social links only
So how would I do the player support system?
So, you just need to create a architecture in your head okay? Heres an example.
STAGE I
Player files a case about a bug or whatever, okay good.
In your code, attach a unique ID to the case. HttpService:GenerateGuid(false)
works great for that stuff by the way.
STAGE II
Okay, so lets make a basic table layout for a case.
local Case = {
PeopleInvolved = {}, -- userids in here
Messages = {}, -- message objects in here, they go like {msg: string, userId: number, date: number (unix epoch)
Locked = false
}
Great, now we can use JSON to encode and decode this.
Thats all nice and handy, but how the heck do we interact with our case?
(By the way, you can implement this all in OOP if you need to.)
Lets make some helper functions, alright?
local function assignPlayerToCase(ply,case)
case.PeopleInvolved[#case.PeopleInvolved + 1] = tostring(ply.UserId)
end
-- we use numerical indicies so we can tell whos been assigned to the case first, this will be GREAT for
-- UI stuff.
local function lockCase(case)
case.Locked = true -- just for aesthetic purposes
end
local function createNewCase()
local Case = {
PeopleInvolved = {}, -- userids in here
Messages = {}, -- message objects in here, they go like {msg: string, userId: number, date: number (unix epoch)
Locked = false
}
return Case
end
local function handleCaseJSON(data)
local HttpService = game:GetService("HttpService")
if type(data) == "string" then
return HttpService:JSONDecode(data)
elseif type(data) == "table" then
return HttpSevice:JSONEncode(data)
end
-- WARNING: THIS FUNCTION DOES NOT ERROR CHECK AT ALL, UP TO U :3c
end
Great, now we can assign people to cases, and lock cases, and even make new ones, and encode to JSON and vice versa.
Alright, I think I’ve set you up, you can add these to a DataStore to save these, which you need to do anyways. Make sure when saving to the DataStore, you use handleCaseJSON() to save it.
Hope you enjoy the post.
EDIT:
To make it work in Roblox, you need to keep it IN Roblox, however, sending case details to Discord for a just 1 time email thing is fine.
My method is just mimicking Welcome To Bloxburg’s method of player support.
Is making a game for player support allowed, it asks you a couple questions and sends it to discord.
The issue is how would they be notified that there ticket had been answered.
That’s not really a big issue if you think about it hard enough, you can add a new variable into your Case that counts the previous amounts of messages and then, do some math, and notify the player if they need to be.
Hmmm would you do it on discord or Roblox game.
If you’re asking me, just do it in Roblox, you are serving WAYY more of your playerbase, remember this platform is oriented to kids, not teens, so Discord is out of the picture for most of the players you get.
Alright, but I won’t be able to notify them from a game.
If you want to create a support system, you should detach it from Roblox. It’s not only that you can’t and probably shouldn’t ask for this kind of information via Roblox (as a start, direct and indirect Discord references in games are not allowed at all), but there are other variables that go into this as well.
There’s no guarantee that you will be able to contact users through Roblox, that they will have access to Discord (country and age need to be taken into account) or that they will come back to check on the support game for a response. All these scenarios have a higher success rate if done on a dedicated platform or the like, such as a forum or support website. You then just need to be concerned about how to direct players to your support page since it wouldn’t be a whitelisted link. Twitter is good for that.
Another downside to doing a support system through Roblox is that a user contacting you - speaking anecdotally and presumptuously here - will most likely be a young player. Their inquiry will be heavily gated by filtering requirements which I’m quite sure are required when sending client text inputs to external sources. Getting rung by the filter and not being able to have comprehensive discourse on a support inquiry can be annoying and cause useful information to be lost.
For my group we have both a support email that users can send messages through to. Sometimes it’s difficult to actually get across that we have that in the first place since we can’t display that on the website or anything. It’s passed around through word of mouth for those not in the Discord.
If your support place was integrated with the game itself and wasn’t a detached place then there’d be room to argue there as you can create a mailbox system and deliver system announcements or support responses through it. Just a thought. Dedicated support places are not the best.