EternalStore, Your Free Datastore Module

Eternal-Service [ OPEN SOURCE DATASTORE MODULE ]

: INFORMATION : version = 0.1

A free datastore at your disposal.
Ever wanted to permanently ban someone? Then this is perfect for you!

Features / Characteristics / Advantages

  • 1] Beginner Friendly ( Never give up, it gets fun! )

  • 2] Extremely secure ( Server manages Player-Data, no requests)

  • 3] Best practices ( This module only requests for data twice, >on leave, > on join )

  • 4] Modular ( You are in charge of your own Data Structure )
    EternalService - Roblox Studio 02_05_2022 13_04_38

5] Extremely fast ( Lightweight, varies )
open source datastore - Roblox Studio 02_05_2022 12_54_29

  • 6] Anti duplication ( Proper use of UpdateAsync() )

… … … … space … … … …

: SETTING UP :

Thankfully I’m a straightforward guy. Follow the steps & spare the hard work.

Link to module

local PlayerService			=	game:GetService("Players")
local ReplicatedStorage		=	game:GetService("ReplicatedStorage")

local EternalService		=	require(ReplicatedStorage:WaitForChild("EternalService"))	--Location of the Module

PlayerService.PlayerAdded:Connect(function(Player)
	
	EternalService:MyPlayerJoined(Player) --Sets up data
	
end)

PlayerService.PlayerAdded:Connect(function(Player)

	EternalService:MyPlayerLeft(Player) --Saves data

end)

- - - Questions and Answers - - -

1] Question: Is that it?
Answer: yes

2] Question: How can I access the Data?
Answer: Player Data is accessible in ReplicatedStorage.

Example for accessing Player Data in a local script :

local ReplicatedStorage		=	game:GetService("ReplicatedStorage")
local EternalService		=	require(ReplicatedStorage:WaitForChild("EternalService"))	--Location of the Module

local PlayerService			=	game:GetService("Players")
local Player				=	PlayerService.LocalPlayer

local Vault					=	ReplicatedStorage:WaitForChild(EternalService:GetPlayerKey(PlayerService.LocalPlayer))


Vault:GetAttributeChangedSignal("Cash"):Connect(function()
	
	print("New Value:",Vault:GetAttribute("Cash"))
	
end)

3] Question: Why did you make this?
i just want the " regular " rank to report bugs but i somehow i haven’t gotten it,

if you could, heart this & enjoy (& tag a mod jkjkjk)

13 Likes

image

Currently you cant get the Regular rank because its criteria havent been updated for awhile now.

but anyways, the module will totally be helpful for beginners since its easy to understand.
Good job :+1:

2 Likes

You should probably add something like this:

function EternalService:GetMyFormat()

    local tableFormat = {
        Coins = 500,
        Gems = 100,
        Rank = 0,
        RolePlayName = "SWAG:TRON",
        Banned = false
    }
    function tableFormat:SetMyFormat(format)
        tableFormat = format
        function tableFormat:SetMyFormat(format)
            tableFormat = format
        end
    end
end

Not sure if this works since I only wrote it in the devforum, but you get the idea. A function to set the format so you don’t have to manually do it. Anyways, nice module. Very easy for beginners to understand, and it makes data scripts really short.

3 Likes

Hello fellow repliers,

As the author of this post, I request commenters to solely provide feedback on the post.

I’ve thought over it, I’ll not provide support to that request. A line is drawn with intended & unintended formats to produce intended behaviour.

My objective is to make coding to look fun and not to completely automate it.

That being said, you may modify your own version to your liking.

oh my god NO

you don’t write code to look fun, you write code so that everything runs to the moment it needs to be and at the efficiency required so that nothing breaks, ESPECIALLY with data.

compiling errors are the last thing you want to deal with

1 Like

Hello Objectionist, please keep this to feedback.

Shall you feel this is related to the topic, I’ve a simple answer.

Making something look fun and challenging [may] lead[s] to people getting hooked & ascending further to a journey of their own.

This is a hobby of mine, I never found coding entertaining. Too many people using high end words like “compiling” and acting all mighty. I made a coder friend and I copied his scripts and broke it down to sections. I’ve ever since been interested and now can code in C, C++, java and so on. It’s a matter of experience. I want people to get into this industry without hesitation, pretty fun.

2 Likes

I appreciate your contribution as this is a great way to get beginners involved in understanding Module Scripts and learning Datastore, which is not an easy feat when starting out. :smile:

1 Like

Hello SafeGameZ,

I’m glad to hear you’re enjoying. If you have any questions on how to use the module or further feedback, feel free to leave a message.

Hi! This module is really cool, I do have a question though, how would you make it so instead of it being based off of attributes, it saves like a conventional datastore? And how can I access tables in it from a local or server sided script if I had complex save values such as an inventory table instead of “Coins = 100”? Thank you in advanced!

Are there any kind of data that cannot be saved by this module?

How would serialization and deserialization work in this case?

@Cffex @mocrews1

Hi, I’m glad this sparked some interest in you. Unfortunately, I am not developing this module anymore, nor the “FutureDatastore” for the public.

As a datastore must be flexible, secure and optimized, it’s a task which takes the scare time of a qualified individual. I simply forked it to my needs so my needs are fulfilled.

I currently have no delight in developing (not only because of a poor response by uneducated individuals) but rather that I am needed elsewhere.

If you’re keen on datastores, I’d advise you to make your own. If you do, don’t let the dead ends get to you, simply climb over it.

This should be automated by your module? You can then add events to tell scripts when data is loaded and just before unloaded.

1 Like

Oh alright I see, thank you for responding anyways! I definitely will figure it out someway.

I’ll see what I can do for ya but I can’t promise anything. I believe this version is stable and working as @bluebxrrybot displayed.

1 Like

I did not say that. I’m just pointing out a minor annoyance some people may have.

ohhh cool! I appreciate ya for the thought! :slight_smile:

Does this still work? As of 2024?