// Use with commandline: mirror_service -C. -L. --nobreak --writepid
AESAliasName= "ms";

ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
	// Create a gateway module
	"moduleManager.createModule StandardGateway gw",
	// add a layer 5 transport
	"gw.transportAdd L5Transport l5",
	// open the transport
	"gw.transportCmd l5(open)",

    /// Create default connection with admin executor service
    // Create a gateway module
    "moduleManager.createModule StandardGateway gw_aes",
    // create the admin executor service module
    "moduleManager.createModule AdminExecutorServiceClient aes_client",
    "aes_client.plug gw_aes",

    // create a layer 3 client to connect to aes gateway
    "gw_aes.transportAdd L3Client aes_l3c",
    "gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};

/// A list of vars to graph for any service
GraphVars =
{
	"ProcessUsedMemory", "60000",	// every minute
};


/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
 * PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
 * Only log analyser must have the $shard parameter to find all shards root directory
 */
PDRootDirectory = "";

// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;

// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;

// Number of seconds between 2 logs to file
PDLogUpdate = 10;

// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;

// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
	"matis_newbie",	"matis",
	"zorai_newbie",	"zorai",
	"terre",	"terre_oubliee",
	"sources",	"sources_interdites"
};

// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;


IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };

// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;

DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !

// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;

// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;

// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";

// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";

// Level limit for newb scenarios
FreeTrialSkillLimit=21;

// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;

// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;

// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };

// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;

// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;

// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;

// Use Shard Unifier or not
DontUseSU = 0;

// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;

// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";

// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;

// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory	= "";

// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory	= "data_shard";

// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;

// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";

// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";

// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";

// MFS - Directories
WebRootDirectory = "../www";

// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";

// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";

// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;

// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;

// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;

// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;

// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;

// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;

// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;

// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;

// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;

// This is the list of continent to use with their unique instance number
UsedContinents =
{
	"newbieland",	"20",
};

//	define the primitives configuration used.
UsedPrimitives =
{
	"newbieland_all",
};
#include "mirror_service_default.cfg"

GraphVars += {	"UserSpeedLoop", "0" };
GraphVars += {	"UserSpeedLoop", "60000" };
GraphVars += {	"L5CallbackCount", "0" };
GraphVars += {	"L5CallbackCount", "60000" };
GraphVars += {	"L5CallbackTime", "0" };
GraphVars += {	"L5CallbackTime", "60000" };
WebSrvHost = "http://localhost:50000/";
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", 	"Open",	"open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";

DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };

Paths = {
	".",
	"../common/data_common",
	"../common/data_leveldesign",
};