diff --git a/engine/server/application/LoginServer/src/shared/LoginServer.cpp b/engine/server/application/LoginServer/src/shared/LoginServer.cpp index 17e7e760..eacfee13 100755 --- a/engine/server/application/LoginServer/src/shared/LoginServer.cpp +++ b/engine/server/application/LoginServer/src/shared/LoginServer.cpp @@ -1076,7 +1076,25 @@ void LoginServer::validateAccount(const StationId& stationId, uint32 clusterId, // Check cluster npe user limit if (cle->m_numTutorialPlayers > cle->m_onlineTutorialLimit) { - canLogin = false; + canCreateRegular = false; + canCreateJedi = false; + } + + // limit login/character creation based on subscription feature bits + if (((subscriptionBits & ClientSubscriptionFeature::FreeTrial) != 0) + && ((subscriptionBits & ClientSubscriptionFeature::Base) == 0)) + { + // Check cluster free trial user limit + if (cle->m_numFreeTrialPlayers > cle->m_onlineFreeTrialLimit) + { + canLogin = false; + } + // Check cluster free trial character creation + if (!cle->m_freeTrialCanCreateChar) + { + canCreateRegular = false; + canCreateJedi = false; + } } }