Member CombatMC


about 1 year ago


Map Plays Wins Best Time
Stone 1 0 29.862s
Sand 0 0 -
Snow 0 0 -
Ores 1 0 83.055s
Palace 1 0 47.401s
MetalMachine 1 0 72.255s
Statistic Value
Wins 30
Kills 181
Deaths 330
Coins 818
Exp 4352
Wool 199
K/D Ratio 0.55
Statistic Value
Wins 419
Kills 3627
Deaths 1457
Coins 27208
Exp 9794
K/D Ratio 2.49


You need to install all the 3 via plugins to
allow 1.8 players to join your server.
6 days ago
You're right but...

For me, you could call this either a "database management"
or "standarization of saving data".

CombatMC: PLAYER_UUID[2bbd185f-8124-4339-b5ae-db9a4c614fd5]:PLAYER_POINTS[2000]
SaladBox: PLAYER_UUID[a8939931-74ed-40dc-b8e0-925cdd47eb17]:PLAYER_POINTS[1500]

It's "standarization of saving data",
but could be also used to "manage database" as it's designed
for "database" just like the example.

The way you call it is more about opinion.
9 days ago

This is not a suggestion.
11 days ago
"Necro-posting is not allowed, responding to old thread and bumping it"
11 days ago

Some days ago, I came up with an idea about
database management in Skript.

Source Code:

What is useful about the database system?

In CubedCraft, there are no addons that support useful
data storage format (such as JSON). Player server developers usually save
player data using tons of variables. This database system allows Skript
developers to manage their player data better.

What the database designed for?

The database is mainly designed for player data such as
in-game currency.

Click on the spoilers below to check them out!

[New/Overwrite Data]     Return Type: TEXT
stringDatasAPI_setData(  DATA_NAME  ,  DATA_VALUE  ,  OLD_DATA  [@NULLABLE]   )

[Remove Data]
stringDatasAPI_removeData(  OLD_DATA  ,  DATA_NAME  )

[Get/Read Data]     Return Type: TEXT
stringDatasAPI_getData(  OLD_DATA  ,   DATA_NAME  )

[Get Data Names]     Return Type: TEXT LIST
stringDatasAPI_getDataNames(  OLD_DATA  )

[Check Data is Set]     Return Type: BOOLEAN
stringDatasAPI_isSet(  OLD_DATA  ,   DATA_NAME  )
Player Balance Example

on join:

    if stringDatasAPI_isSet({playerData::%UUID of player%}, "BALANCE") is true:
    # Check if data named BALANCE already exist in {playerData::%player%}

    set {playerData::%UUID of player%} to stringDatasAPI_setData("BALANCE", "0")
    # Since data named BALANCE is not set, set it to "0"

command /addOneToBalance:

        set {_oldBalance} to stringDatasAPI_getData({playerData::%UUID of executor%}, "BALANCE")
        # Read the balance of executor in text

        set {_oldBalance} to ({_oldBalance} parsed as number)
        # Parse the data from text to number

        set {_newBalance} to ({_oldBalance} + 1)
        # Get the new balance

        set {playerData::%UUID of player%} to stringDatasAPI_setData("BALANCE", "%{_newBalance}%")
        # Set the balance of executor

        set {_checkNewBalance} to stringDatasAPI_getData({playerData::%UUID of executor%}, "BALANCE")
        # Get the balance of executor again

        send "Your new balance: %{_checkNewBalance}%" to executor
Multiple Data

command /iWantSomeDatas:

        set {playerData::%UUID of executor%} to stringDatasAPI_setData("BALANCE", "0")
        set {playerData::%UUID of executor%} to stringDatasAPI_setData("HEALTH", "20", {playerData::%UUID of executor%})
        set {playerData::%UUID of executor%} to stringDatasAPI_setData("HUNGER", "20", {playerData::%UUID of executor%})
        set {playerData::%UUID of executor%} to stringDatasAPI_setData("IQ", "180", {playerData::%UUID of executor%})
        # Set data named BALANCE, HEALTH, HUNGER, and IQ for executor

command /tellMeDatas:

        set {_balance} to stringDatasAPI_getData({playerData::%UUID of executor%}, "BALANCE")
        # Read data named BALANCE in executor's data (data return as text)

        set {_hunger} to stringDatasAPI_getData({playerData::%UUID of executor%}, "HUNGER")
        # Read data named HUNGER in executor's data (data return as text)

        send "Your Balance: %{_balance}%" to executor
        # Since printing out data accept text format, we dont need to parse it to number.

        if ({_hunger} parsed as number) < 20:
        # Parse the hunger data to number and check if it's lower than 20
This is how it looks like when multiple data are stored


13 days ago