ezPlayers | A developer-friendly library for extending Roblox's Players service

ezPlayers is a developer-friendly library for extending Roblox’s Players service, providing data management, moderation tools, and utilities through a simple interface.

The Library is still in development, but gets updated frequently.
There is a Documentation if you have any questions.

Script Examples & Info

Simple Join and Leave Signals

local Players = require(script.Parent.ezPlayersServer); --ezPlayersServer Module Script
Players.playerAdded:Connect(function(Player) --Assign a function to the playerAdded signal
	print(Player.Name.." joined the game!")
end)

Players.playerRemoving:Connect(function(Player) --Assign a function to the playerRemoving signal
	print(Player.Name.." left the game!")
end)

Create & Load Data

local Players = require(script.Parent.ezPlayersServer); --ezPlayersServer Module Script
Players.playerAdded:Connect(function(Player) --Assign a function to the playerAdded signal
	--Creating Data--
	-- :createData(dataName,dataValue,dataCategory,saveData,createInstance,orderedData)
	local Wins = Player:createData("Wins",0,"Stats",true,false,true);
	--We want the wins to save, and also save them extra in an ordered datastore
	
	local Coins = Player:createData("Coins",0,"Stats",true,false,false);
	--We want the coins to save only
	
	local Deaths = Player:createData("Deaths",0,"Stats",false,false,false);
	--We dont want to save the deaths
	
	local somePosition = Player:createData("somePos",Vector3.new(),"Stats",false,true,false);
	--We dont want this position to save, but we want an instance of it

	--If you dont want to use some boolean parameter,(arg4,arg5,arg6) you can keep it empty (nil), you dont have to set it to false

	--Load Data--
	--Now since we created all important data we can load it, if the player has already some data saved--
	Player:loadData()
end)

Edit Data

local Players = require(script.Parent.ezPlayersServer); --ezPlayersServer Module Script
Players.playerAdded:Connect(function(Player) --Assign a function to the playerAdded signal
	--Creating Data--
	-- :createData(dataName,dataValue,dataCategory,saveData,createInstance,orderedData)
	local Wins = Player:createData("Wins",0,"Stats",true,false,true);
	--We want the wins to save, and also save them extra in an ordered datastore
	
	local Coins = Player:createData("Coins",0,"Stats",true,false,false);
	--We want the coins to save only
	
	local Deaths = Player:createData("Deaths",0,"Stats",false,false,false);
	--We dont want to save the deaths
	
	local somePosition = Player:createData("somePos",Vector3.new(),"Stats",false,true,false);
	--We dont want this position to save, but we want an instance of it
	
	--Load Data--
	--Now since we created all important data we can load it, if the player has already some data saved--
	Player:loadData()
	
	--Add Wins--
	print(Wins()) --Output: 0 (if there was no saved data before)
	print(Wins.Value) --The same as the line above
	addWin(Player) --Add +1
	print(Wins()) --Output 1 (if it was 0 before)
	print(Wins.Value) --The same as the line above
	--You can also output a value using .Value (example: Wins.Value), but calling it also works
	--Add Deaths--
	Player.Died:Connect(function()
		Deaths += 1;
		--Or you can use: Deaths.Value += 1;
		print(Deaths())
	end)
	
end)

function addWin(Player) 
--This is just a test function, to simulate a player win, the parameter is an ezPlayers player class, if you have a player instance you can convert it
	local Wins = Player:getData("Wins","Stats")
	Wins += 1;
	--Or you can use: Wins = Player.Data.Stats.Wins
	--Wins.Value += 1;
end

Moderation Methods

This is not a script example, but you can use player:Ban() player:Warn() player:Kick() player:GetModerationLog() for moderation, read more about it here

About Data Saving

Data does save automaticly if the player leaves the game.
To load data you have to call the :loadData() method
You can also manually save data if you call the :saveData() method

Read how data is saved
Current Issues Reported

It costs $3,99 USD and you can buy it here: ezPlayers - Roblox Player Library by Byte Studios
(I choose itch.io because its a great site to sell stuff like this)

Why does it cost money!?!

I’ve created this in my free time after work. Selling it helps support the effort I’ve put into creating a tool that saves developers time and simplifies their workflow, while also funding future updates and improvements. $4 isn’t much compared to the time and effort it saves you

Let me know what you think about it

2 Likes

Why would you sell this? Its just basic methods that anyone can find online for free lmao

12 Likes

4 dollars for a merged DataStore module with the Players service itself is very scammy.

9 Likes

I understand your perspective!

  • Ease of Use: It simplifies common tasks like player data management(saving,loading,editing), moderation(banning,warnings), and saving/loading data, and also provides other useful properties and methods for the player.

  • Time-Saving: With ezPlayers, you can create data that automatically saves with just one line of code, so no need to write or manage DataStore logic yourself. Same goes for moderation methods

  • Support & Updates: When you buy it, you’re not just getting a library, you are getting ongoing support, updates, and improvements.

I’ve created this in my free time after work. Selling it helps support the effort I’ve put into creating a tool that saves developers time and simplifies their workflow, while also funding future updates and improvements. $4 isn’t much compared to the time and effort it saves you

Have a good day

I understand you.
However, this library is much more than just a merged DataStore module. It’s a library designed to save developers time and effort by providing features like:

  • Automatic Data Management: Create,Save,Edit player data without effort with just one - a few lines of code.

  • Moderation Tools: Functions for bans (using roblox’s ban api), warnings, and more.

  • Other Usefull Properties and Methods to save time: Like player:Teleport(), player:Kill() etc. without any extra code

  • Support & Updates: When you buy it, you’re not just getting a library, you are getting ongoing support, updates, and improvements.

I’ve created this in my free time after work. Selling it helps support the effort I’ve put into creating a tool that saves developers time and simplifies their workflow, while also funding future updates and improvements. $4 isn’t much compared to the time and effort it saves youworth it. :blush:

Have a great day

This is a great resource for simplifying code but the price is not justified. No offense but everybody with a decent scripting knowledge can make this module in like an hour.

6 Likes

Thanks for the feedback.

Yes I know, anyone could create this.
The goal of this library is to make work easy & fast without putting any effort into datastore,moderation scripts or writing code for simple stuff like Teleporting the player.
There is also a config for more options / control of the library.

It depends on whether you want to save time and buy the library or do it yourself.

I have to admit, I’m also someone who prefers to do everything myself before buying anything

Have a great day :slight_smile:

1 Like

I’m sorry, but this costs money??? I would skip this if it was free, I would maybe use it. But it’s paid?? For a module that I can recreate in some hours? No. You can’t be serious. And yes, I’ve read the “Why does it cost money!?!”.

5 Likes

This whole module realistically could be written in less than an 30 minutes imo. If you wanted to diy this you’d only really need a datastore wrapper (like ProfileService, DataStore2, etc), and a signal module. I have not bought this so I cannot say exactly how it works but from the look of it, it just loads the player’s data and then has a ton of helper functions to do stuff with the player’s data and character. If you want something like this but don’t want to pay for it. I would recommend looking into:

If you are a very new to scripting I’d recommend learning the basics and then trying to make your own module.

3 Likes

I mean, it’s a nice little thing you’ve made, but selling it is a bit OTT as anyone with a basic amount of programming knowledge could create this in 30 minutes - an hour tops.

No disrespect ofc, but I just don’t think this should be a paid system.

1 Like

@HACANTERO, some people are very busy and can not work on 2 things at the same time (moderation, datastores, and etc) and (games) so people work on the games first, but some people can buy this module and work on the game, saves them lots of time and stress. tbh 4 dollars isnt that expensive, and hiring someone to help u do the moderation and datastores and etc isnt worth it

2 Likes

All of the things you listed above can be done easily There is already a datastore editor plugin on the marketplace banning players using ban API, is just 1 line of code is there anything that makes this product special? Something that already hasn’t been done many experiences on roblox also create custom wrapper for the profile service

1 Like

why would you work on creating experience on roblox if you dont have time?

1 Like

so u are saying i should disrupt my sleep schedule in order to do the 2 things? (for a day)
and yeah im lazy,
And also some people are begineers, they might not know datastores and ban api (from players service)

Maybe have a schedule where you work on your project for an hour and split stuff into tasks so you can be more organized and use Trello. Also doing all the things you listed above is like 1 hour of work also buying products to build experience on roblox most of the time is a very bad idea because the product you are buying isn’t specifically designed for your experience meaning you may face issues in the future and also have less control over scripts and how they work just imagine working on the game and there’s like 30 scripts and each script has different formatting

that’s why documentation exist roblox uses luau and because its really easy to learn and if you cant learn luau maybe hire a scripter?

3 Likes

As I said in an reply before, its up to the user if he wants to buy and safe time, or do the work himself.
Nobody forces you to buy anything.

Have a great day

Guys stop disrespecting his module you gotta respect the hustle :money_mouth_face::money_mouth_face:

I’ve been using this module for 27 years now and it has worked perfectly. Thank you so much for making it :man:

3 Likes

As I said in an reply before, its up to the user if he wants to buy and safe time, or do the work himself even if this could be recreated in a short amount of time.

ezPlayers changes they way how you interact with Players

Have a good day :slight_smile:

Thanks for the response.

I think you misunderstood something.
ezPlayers is not a plugin like the datastore editor plugin
I guess the datastore plugin lets you create/edit data directly in studio (Please correct me if I’m wrong - i never used the plugin).

ezPlayers lets you create data by script without worrying about saving anymore, gives you moderation methods like player:Ban() player:Warn() player:getModerationLog() - Yes you can ban players easy already using Players:BanAsync() , this lib simplifies it by just using player:Ban()

ezPlayers also handles errors, and has some other methods to make stuff EVEN more simple

And as I said in some other replies before, nobody forces anyone to buy this, anyone has the choice to buy something or do the work by himself, this is just a very cheap solution.

Have a great day :slight_smile:

For anyone who wants to complain about the price again:

Nobody forces you to buy this, its up to you.

  • If you can find / or know a free / cheaper solution, then use it.
  • If you want to recreate it by yourself, then do it.

I know that people dont like paid stuff, but not everything can be free, right?
That $4 can’t drive anyone to financial ruin