• If you need help or want to discuss things, you now can also join us on our Discord Server!
Resource icon

TS3 SConomy NG - Simple Currency System 1.7.1

No permission to download
A very simple currency system based on the time spent on the server (v1.6).

Features (with a lot of options):
- Set an amount of money to deliver to connected client every X seconds / minutes
- Ignore channels (such as AFK)
- Commands
- Customizable commands
- Customizable messages
- Admin groups can manage wallets (for gifts or sanctions)
- Per group advantages (more money every tick and / or smaller tick as usual) => which are cumulative (tick duration has a -90% lower limit)
- Per channel advantages (same as the group advantages)
- Set servergroup for sales with your own price (or charge for the removal of servergroups, like for jail groups)
- Set soldable servergroups in limited quantity
- Limit the servergroup number that a user can have (global or servergroups for sale)
- Limit the user wallet maximum amount (no more currency is generated after that limit is reached)
- Channel description with the store buy / sell history
- Possible integration with other scripts (see below)

Default command list:
* !schelp
=> Display the help​
* !money
=> Display own money​
* !store
=> Display the servergroups available for sale​
* !buy <servergroup ID displayed in !store>
=> Buy a servergroup (if available in store and enough money)​
* !sell <servergroup ID displayed in !store>
=> Sell a servergroup (that is in the !store - can be disabled)​
* !give <client URL, UID or nicknames>
=> Give money to another user (with fees / to connected only - configurable in settings)​
* !see <client URL, UID or nicknames>
=> Admin ONLY: view user wallet​
* !set <client URL, UID or nicknames> <new amount>
=> Admin ONLY: set user wallet amount​
* !addmoney <client URL, UID or nicknames> <amount>
=> Admin ONLY: add the amount to the user wallet​
* !removemoney <client URL, UID or nicknames> <amount>
=> Admin ONLY: remove the amount from the user wallet​
* !setallmoney <new amount>
=> Admin ONLY: set all users wallet amount at the same time​
* !setquantity <group ID> <amount>
=> Admin ONLY: set an item quantity in the store (if you wan to reset the count)
* !sconomy-data-migration-tool
=> [Only hardcoded command] Admin ONLY: migrate data from one provider to another (private / public), see below​

Note: the '<' and '>' symbols are here to show a variable, don't use them in commands.

Storage provider
There is currently two provider: private (default) and public.

=> Private: only the Sconomy NG script is allowed to modify the data
=> Public: all the scripts can modify the data (wallet amount and / or progress)
Both of them are shared between instances.

To migrate the wallets (and progress) from one to another, use the following command:
!sconomy-data-migration-tool

It is hardcoded, long and kind of hard to remember for a reason: it overrides the data!
If you copy the data from the public to the private storage, all wallets that was on both sides will be overridden on the private side (the value the wallet has on the public storage will be the new value of the wallet of the private storage).
The command has a safeguard and will ask you to type it twice before performing the operation.
Use this command with care!

Parameters of the command (f.e. !sconomy-data-migration-tool private_public)
* private_public => Copy data from private to public storage
* public_private => Copy data from public to private storage
* unset_private => Clean all data from private storage
* unset_public => Clean sconomy data from public storage

Don't forget to change in the settings which storage provider you want to use after a migration!

Script integration (create your own script based on sconomy)
You won't learn how to create a script here, sorry. But I can show you how to integrate your script with SConomy NG!

This will be super easy, I promise!
There is two values you have access to: sconomy and progress.
=> sconomy: this is float representing the wallet amount
=> progress: this is an integer that represents the current user progress (less interesting, recommended not to use)

Once the admin managing the sinusbot configured SConomy NG to use the public provider (cf. Provider section), you can use the following methods:
- require('store').getGlobal(key)
- require('store').setGlobal(key, value)

The key is forged as follows: userUID+'sconomy' or userUID+'progress'. For example, the wallet amount key could be: OfkwDXL8tHv91ZL8zPzoZPowuBu=sconomy

Based on that, you can simply create an add-to-client-wallet function like that:
Code:
var store = require('store');

...

function addCoinsToUser(client, coinNumber)
{
    // Get the key
    var key = client.uid() + 'sconomy';

    // Load the wallet amount
    // https://sinusbot.github.io/scripting-docs/#storegetglobal
    var oldValue = store.getGlobal(key);

    // Do some checks if needed
    ...

    // Set ne new value
    // https://sinusbot.github.io/scripting-docs/#storesetglobal
    store.setGlobal(key, oldValue + coinNumber);
}
If you create a script that integrates SCnonomy NG, don't hesitate to ping me, I'll put a link in this post :)

Needed permissions:
i_client_private_textmessage_power (for communication)
i_group_member_add_power (for bought servergroups)
i_group_member_remove_power (for refund of servergroups)
i_client_permission_modify_power (for bought / refund of servergroups)
b_channel_modify_description (for store history)

Installation note: place the script into sinusbot script folder and restart the bot. After that, you can configure it like every script (in the web interface).

Update instructions:
Look at the changelog in the Update tab (link). Each update contains the instructions to be done (if any) to upgade to that version.
If you upgrade, please do all actions from updates that was published before the target one and after the current one.
When new settings are added: please fill them or default ones will be used.

If you wrote a script that uses SConomy NG, please let me know, I'll add it here :)

- Wheel of Fortune
- Upgrade store
- Auction

Warning: this uses the store API and money is therefor shared between instances.

Inspired by the outdated sconomy: https://forum.sinusbot.com/resources/sconomy-simple-currency-system.138/
Author
Mmoi
Downloads
103
First release
Last update
Rating
4.83 star(s) 6 ratings

More resources from Mmoi

Latest updates

  1. BugFix (for new users)

    Fix: regression causing new users not to have currency generated
  2. Group number limitation tweaking

    Added: servergroups can increase the maximum group a user can have
  3. Thank you

    Added: generated currency limit (default to 9007199254740991 - maximum safe JavaScript number)...

Latest reviews

Nice, I see you made an auction plugin too with the text message option for paysafecards for example. Would be really cool, if you would implement the option for text message (instead of server group) for the normal Sconomy Plugin too.

So I could just add 1x Text Message with first Paysafecard Code (limited for only 1 purchase)
2nd Text Message with second Paysafecard code (limited for only 1 purchase)
and so on. :D
Thanks a lot! Can u add a feature to list top 5 or top 10 richest users on server in channel description or by command?
M
Mmoi
It is not planned yet
Can u add a feature to multiplie boost gain money if someone is on specific channel?
M
Mmoi
It's already in the 1.6 update (that comes out very soon)
Request:
Add items (no server groups) to shop that are limited.

e.g.:
10,00€ Paysafecard (for 1000 points) - only 5 paysafecards available...

a user has 1000 points buys one of the five paysafecards through command. instead of getting a server group assigned, he gets a private message from the bot with the paysafecard code. (each of the 5 items has a different code). and once its bought the item gets deleted from shop
M
Mmoi
Will be working on it when I get some time
Request: A lucky wheel that can a client spin for one time a day (24hours) :)
Can you add an duration for sold groups. E.g If someone bought a gruop bot automaticly remover it after 1 month
M
Mmoi
There is a script that already do what you ask for: https://forum.sinusbot.com/resources/server-group-timer.327/
can i set the money of all players back to 0
M
Mmoi
An update has been posted with the feature
Where do you save the money amount of any player?
M
Mmoi
In the sinusbot default storage (https://sinusbot.github.io/scripting-docs/#store) using the following key : <user UID>sconomy