Sorry for the late reply.
Yes, brainCloud can handle RPG style games well, it provides a rich set of features that benefits any type of game - includes very flexible multiplayer tech, Our built-in real-time multiplayer services are more based around the idea of shared game experiences that last a finite period of time (i.e. arena shooters, casual multiplayer, etc.). Our matchmaking, lobby services, room server system, etc are all geared toward making this sort of experience easy and inexpensive to build - but also can integrate with 3rd party or custom tech. brainCloud provides support for custom Room Servers that can support any type of custom or 3rd party multiplayer tech. For all these characters related data (user data), you can use User Entity or Custom Entity to store and trace them.
The end-user profileId and anonymousId are stored securely in the client library wrapper on user devices.
Users' IAP items and currency end up “unlocking” “awarding” these to the associated profileId, so that will never be lost.
If a player is offline, you need to have some code on your side to handle this situation with the request callbacks, as long as “update()” is not called, it will not process sending packet bundles or process callbacks from the received packets. Shouldn't keep all calls for later. Instead, update player stats once connected, in 1 call.
Hope that helps!