Skip to content

Using Credits

Credits are GameFuse's virtual currency system. Each user has a credit balance that can be used to purchase store items, unlock features, or power your game's economy.

Overview

Credits are a numeric attribute of each game user stored as a simple integer value. They can be added manually through API calls and are automatically deducted when users purchase store items.

Getting User Credits

You can retrieve the current user's credit balance:

Example

void UMyObject::GetUserCredits()
{
    // Get the GameFuse User subsystem
    UGameFuseUser* GameFuseUser = GetGameInstance()->GetSubsystem<UGameFuseUser>();

    // Get current user data
    const FGFUserData& UserData = GameFuseUser->GetCurrentUserData();
    UE_LOG(LogTemp, Display, TEXT("Current credits: %d"), UserData.Credits);
}

Adding Credits

You can add credits to the current user's account:

Example

void UMyObject::AddCredits(int32 CreditsToAdd)
{
    // Get the GameFuse User subsystem
    UGameFuseUser* GameFuseUser = GetGameInstance()->GetSubsystem<UGameFuseUser>();

    // Create a typed callback for better type safety
    FGFUserDataCallback CompletionCallback;
    CompletionCallback.BindLambda([this](bool bSuccess, const FGFUserData& UserData)
    {
        if(bSuccess)
        {
            UE_LOG(LogTemp, Display, TEXT("Credits added successfully"));
            UE_LOG(LogTemp, Display, TEXT("New credit balance: %d"), UserData.Credits);
        }
        else
        {
            UE_LOG(LogTemp, Error, TEXT("Failed to add credits"));
        }
    });

    // Add credits to the user
    GameFuseUser->AddCredits(CreditsToAdd, CompletionCallback);
}

Setting Credits

You can set the user's credits to a specific amount:

Example

void UMyObject::SetCredits(int32 NewCreditAmount)
{
    // Get the GameFuse User subsystem
    UGameFuseUser* GameFuseUser = GetGameInstance()->GetSubsystem<UGameFuseUser>();

    // Create a typed callback for better type safety
    FGFUserDataCallback CompletionCallback;
    CompletionCallback.BindLambda([this](bool bSuccess, const FGFUserData& UserData)
    {
        if(bSuccess)
        {
            UE_LOG(LogTemp, Display, TEXT("Credits set successfully"));
            UE_LOG(LogTemp, Display, TEXT("New credit balance: %d"), UserData.Credits);
        }
        else
        {
            UE_LOG(LogTemp, Error, TEXT("Failed to set credits"));
        }
    });

    // Set user's credits to specific amount
    GameFuseUser->SetCredits(NewCreditAmount, CompletionCallback);
}

Function Parameters

Add Credits

Parameter Type Description
Credits int32 The amount of credits to add (must be positive)
Callback FGFUserDataCallback Callback function to handle the response

Set Credits

Parameter Type Description
Credits int32 The target credit amount to set (must be non-negative)
Callback FGFUserDataCallback Callback function to handle the response

Function Return Values

Add/Set Credits

HTTP Status Code Description
200 OK - Credits updated successfully
400 Bad request - Invalid parameters (negative values, etc.)
401 Unauthorized - User not signed in
500 Unknown server error