Sandbank Database
The fast, easy database for s&box! Store any kind of data you want. Load and save in a single line of code.
- Faster than a conventional SQL database for 99% of use cases...
- Perform any type of query or lookup...
- Advanced features such as automatic backups, save-on-change and file obfuscation...
- No need to waste money paying for hosting...
- No writing indecipherable database code...
- No setup required!
Example
Tag your saveable data with [Saved] or [AutoSaved]...
class MyPlayer : Component
{
[Saved] public string UID { get; set; }
[AutoSaved, Sync] public float Health { get; set; } // [AutoSaved] automatically saves on change.
[Saved, Sync] public string Name { get; set; }
}
Use it!
myPlayer.Health = 100;
myPlayer.Name = "Bob";
myPlayer.UID = "123456789"; // Using their Steam ID is a good choice for players!
// Insert.
Sandbank.Insert("players", myPlayer);
// Fetch.
var playerWith100Health = Sandbank.SelectOne<MyPlayer>("players", x => x.Health == 100);
// Bob has rejoined. Fetch and inject their data.
var previousData = Sandbank.SelectOneWithID<MyPlayer>("players", "123456789");
Sandbank.CopySavedData<MyPlayer>(previousData, rejoiningPlayer);
// Delete.
Sandbank.DeleteWithID<MyPlayer>("players", playerWith100Health.UID);
Tell Me More
Sandbank is a local data store and doesn't upload anything to the internet.
However, we now have something called Sandbank Server, which is an online service that lets you sync data across multiple servers, or run serverside logic from anywhere. This is currently available at zero cost for those with regular bandwidth/storage requirements. If this is something you'd be interested in, please get in touch with me on Discord (anthonysharpy)!
If you like this project, star the repo on GitHub! It makes me look more important than I actually am.
Licence
The library is free for personal and commercial use. By continuing to use the software you agree to the licence included with the code.