[RELEASED] CBS - Cross-platform Backend Solution

The plugin is based on PlayFab and Azure Storage Table. Supports platforms such as Standalone, Android, iOS, UWP, Xbox, PS4, WebGL. Powerful Playfab editor for Unity,user friendly interface to create your game economy. Configure the entire backend directly in Unity, you don’t need to do anything on the Playfab console. Almost all requests are rewritten through the PlayFab server script to protect you from cheaters. Contain structured API to create your own logic.

Asset-Store link

Game features:
1. Authorization

  • Mail / password authorization. Restore password.
  • Device ID authorization
  • Google authorization
  • Facebook authorization
  • Steam authorization

2. Profile

  • Auto nickname generation after registration.
  • Level / exp management. Customize the level table for your character and also the rewards for reaching a specific level. The table can be customized in a special visual Unity editor
  • Custom event for new level reach
  • Managing the player’s nickname / avatar
  • Saving personal data of the player

3. Game currency

  • Create your game currencies directly from Unity using the editor.
  • Fully customizable currency. Icon, initial deposit after registration.
  • Support for auto recovery currency
  • Currency shop. Customize your store. Create your own currency packs in different combinations of currency

4. Game items.

  • Create your own in-game items (building, armor, weapons, potions, whatever) using the visual editor in Unity
  • Fully customizable item. Name, icon, description, custom data, price. Playfab properties - IsConsumable, IsStackable, IsEquippable, IsTradebale, HasLifetime
  • Categories for items. Divide your items into categories for ease of use and sorting (e.g. weapons, armors, potions, etc.)
  • Packs of items. Unite items into groups so that, for example, they can be sold entirely in the store

5. Loot boxes

  • Create your loot boxes / chests through the visual editor in Unity. Make rewards for players
  • Fully customizable drop chance for each item

6. Chats

  • Global, server, regional chat
  • Chat history
  • Group chat
  • Private chat between players
  • Ability to customize the maximum message length
  1. Friends system
  • Friends list
  • Send / accept / decline friends request
  • Friends private chat with message list and unread message count

8. Inventory

  • Get inventory by category
  • Equip item
  • Use consumable items
  • Ability to overwrite custom data for each item in the inventory. For example, you want to improve a sword in a forge

9. Clan system

  • Create your own clans.
  • Customize clans. Name, description, icon
  • Ability to add custom data for the clan
  • For non clan user - search clan, create clan, join clan, accept clan invitations.
  • Clan management. Accept user join request. Ability remove clan user for admin. Change clan info. Remove clan
  • Invite user to clan
  • Clan chat

10. Leaderboard

  • Players leaderboard based on player exp / level
  • Clan leaderboard
  • Friends leaderboard
  • Ability to create your own leaderboard with your statistics

11. Tournament / league system

  • Possibility of players to participate in tournaments
  • Fully customizable tournaments with a visual editor for Unity. Create your own leagues with a limited number of players. At the end of the tournament, the player will automatically move to the next league if they take N place in the tournament
  • Ability to set the time for the tournament (Hourly, Daily, Weekly, Monthly, custom period)
  • Awards for tournaments. Customize prizes for each position

12. Daily rewards

  • Players receive rewards for logging into the game every day
  • Fully customizable rewards with visual editor for Unity

13. Roulette

  • Players can try their luck at roulette
  • Fully customizable roulette rewards and drop chances with a visual editor for Unity

Examples
Powerful examples that can be used in production. Optimized, using the pool manager for all spawn items. No memory leak. Endless scroll is used for all UI elements where needed

Video

1 Like

bro my friend list not showing display name, i need help

friend.DisplayName is empety, but my player have nickname

private void OnGetFriends(GetFriendsResult result)
{
if (result.IsSuccess)
{
Debug.Log(“Amigos obtenido correctamente”);
for(int i = 0; i < RutaMisAmigos.childCount - 1; i++)
{
Destroy(RutaMisAmigos.GetChild(i).gameObject);
}
var friendsList = result.Friends;
foreach (var friend in friendsList)
{
Debug.Log("User name " + friend.DisplayName);
IdAmigos.Add(friend);
GameObject Item = Instantiate(BotonMisAmigos, RutaMisAmigos);
Item.GetComponent().RecibirInformacion(friend.ProfileID, friend.DisplayName, friend.AvatarUrl);
}
VentanaChatAmigos.SetActive(false);
VentanaMisAmigos.SetActive(true);
VentanaSolicitudesAmigos.SetActive(false);
VentanaAgregarAmigo.SetActive(false);
}
else
{
Debug.LogError(result.Error.Message);
}

already solved :slight_smile:

Hi,
Glad you joined us:)
Sorry for the late reply. Join our discord channel to get answers faster
https://discord.gg/qUwPVPfxve

Could you please explain what the problem was and how did you manage to solve it?

Best regards,
Simple Assets

Version 0.3.1 is released

Fixes

  • Fix id login error on webGL
  • Fix editor achievement error
  • Fix add reward to level in editor
  • Fix GetInventoryItem method from API

New

  • Added achievements module
  • Added autologin method
1 Like

Version 0.4.0 is released

New

  • Migration from deprecated Cloud Script to Azure Functions (.NET 6, C#)
  • Add asmdef for CBS scripts

Version 0.5.0 is released

New

  • Add daily tasks module
  • Tournamnets. Return reward for player position
  • Add duplicate items in custom Editor
  • Add OnAvatarUpdated event

Fixes

  • Add AvatarDrawer to user panel info
  • Fix upload azure functions method

Version 0.7.0 is released

New

  • Add new module. Battle Pass.
  • Add Apple login method

Fixes

  • Fix chat messages sorting

hey i have a problem when some items are equipped and then i try to get all the equipped item, the result is null. I’m using CBSInventory Module then in the result i get the equipped item by result.EquippedItems. Am i doing something wrong?

private void SetEquipment(GetInventoryResult result)
{
    foreach (var equippedItem in result.EquippedItems)
    {
        EquipmentSystem.AddEquipment(equippedItem.ID, equippedItem.Category);
    }
}

here is how i get all the equipped item

before this i have equipped some item with IsEquippable checked in data, and equipped the item using below code :

InventoryModule.EquipItem(itemId, OnEquipInventoryItem);

please help me.

thanks in advance

Hello, is the result of calling InventoryModule.EquipItem IsSuccess?
I suspect that your Azure Functions are not configured correctly, please contact me on Discord

1 Like

Version 1.0.0 is released!

Fixes

  • Fully refactoring all modules

New

  • Add account linking
  • Add craft system
  • Add item upgrade system
  • Add IAP
  • Events module
  • Store module
  • Notification module
  • Title data module

Hi @SimpleAssets , correct me if I am wrong, this asset seems to be using the legacy PlayFab Economy v1 API. Do you have any plans supporting the new Economy v2 API? If so, when do you expect it to be supported?

I’m confused, this plugin is very confusing. I can successfully GRANT items, but not remove them. Removing items is done through an entirely different class?

    private ICBSItems ItemModule { get; set; }
    private ICBSInventory Inventory { get; set; }

    [SerializeField] string itemID;

    Inventory inventory;

    private void Awake()
    {
        Inventory = CBSModule.Get<CBSInventoryModule>();
        ItemModule = CBSModule.Get<CBSItemsModule>();
        Inventory.GetInventory(OnGetInventory);
    }

    public void GiveTheItem()
    {
        ItemModule.GrantItem(itemID, OnChangeItems);
    }

    public void RemoveTheItem()
    {     
        Inventory.RemoveInventoryItem(itemID, OnRemoveItem);
    }

This is how i was granting items, this class is just for testing purposes. On grant/remove, it refreshes the inventory. I see the inventory refresh on both grant and remove, but only grant gives items, remove doesn’t subtract them.