# ================================================================
# General server setting !!! REQUIRED to configure to everyone !!!
# ================================================================

# Bind ip of the gameserver, use * to bind on all available IPs
GameserverHostname=*
GameserverPort=7777

# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname
ExternalHostname=192.168.0.1

# This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname
InternalHostname=127.0.0.1

AdvIPSystem = False

# The Loginserver host and port
LoginPort=9014
LoginHost=127.0.0.1
LoginUseCrypt=True

# This is the server id that the gameserver will request (i.e. 1 is Bartz)
RequestServerID = 1
# If set to true, the login will give an other id to the server  if the requested id is already reserved
AcceptAlternateID = True

# Database info
Driver=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/l2pdb
Login=root
Password=
MaximumDbConnections=50
# Через сколько секунд после последней активности будут закрыватся соединения с базой, по умолчанию 600 (10 минут)
# данный параметр важно согласовывать с настройками в самом mysql сервере, параметр interactive_timeout
# насколько известно мне по умолчанию параметр interactive_timeout имеет значение 28800 (8 часов)
MaxIdleConnectionTimeout=600
# Интервал проверки неактивных соединений, по умолчанию 60 (1 минута)
# При условии стабильного соединения с базой и корректной настроки MaxIdleConnectionTimeout, можно выставлять 0 (не проверять)
IdleConnectionTestPeriod=60
UseDatabaseLayer=True

# БД логина, может использоваться если нужен прямой доступ к аккаунтам
Accounts_URL=jdbc:mysql://localhost/l2pdb
Accounts_Login=root
Accounts_Password=

# Позволяет существенно ускорить работу стекуемых вещей, откладывая обращения в бд (time in millisec)
LazyItemUpdate = True
LazyItemUpdateAll = False
LazyItemUpdateTime = 60000
LazyItemUpdateAllTime = 60000
DelayedItemsUpdateInterval = 10000
UserInfoInterval = 100
BroadcastStatsInterval = True
BroadcastCharInfoInterval = 100

# Интервал сохранения игрового времени (в секундах)
SaveGameTimeInterval = 120

# Define various player-typable name templates
# These ones are regular expressions, visit http://www.regular-expressions.info for details
# NOTE1: Generally checking lengths are done here, so pay them attention in templates
# NOTE2: Make sure you're know what are you doing before changing these from defaults ;)

# Character name
CnameTemplate=([0-9A-Za-z]{2,16})|([0-9\u0410-\u044f]{2,16})
# Clan name
ClanNameTemplate=([0-9A-Za-z]{3,16})|([0-9\u0410-\u044f]{3,16})
# Clan title
ClanTitleTemplate=([0-9A-Za-z \\p{Punct}]{1,16})|([0-9\u0410-\u044f \\p{Punct}]{1,16})
# Ally name
AllyNameTemplate=([0-9A-Za-z]{3,16})|([0-9\u0410-\u044f]{3,16})
# Password
ApasswdTemplate=([A-Za-z0-9]{8,24})

# Define how many players are allowed to play simultaneously on your server.
MaximumOnlineUsers=3000

TestServer = False

# Setting for serverList
# Displays [] in front of server name
ServerListBrackets = False
# Displays a clock next to the server name
ServerListClock = False
# If true, the server will be set as gm only at startup
ServerGMOnly = False

# Minimum and maximum protocol revision that server allow to connect.
# You must keep MinProtocolRevision <= MaxProtocolRevision.
# Gracia Final protocol revision = 83-87 / Gracia Epilogue = 148
MinProtocolRevision = 146
MaxProtocolRevision = 152

# ========================================
# Настройки рейтов, все кроме манора float
# ========================================

# Рейты XP и SP лучше ставить одинаковыми
RateXp = 8.
RateSp = 8.

# Адена считается по формуле RateDropAdena*PlayerBonusMod*RateDropAdenaMultMod+RateDropAdenaStaticMod
# Рекомендуется выставлять RateDropAdena=RateXp, RateDropAdenaMultMod=0.3, RateDropAdenaStaticMod=0.7
# Для классического механизма просто укажите RateDropAdena не трогая модификаторы
RateDropAdena = 7.
RateDropAdenaMultMod = 1.
RateDropAdenaStaticMod = 0.

# Лучше ставить как XP
RateDropItems = 6.
RateDropSpoil = 4.
RateQuestsReward = 3.
RateRaidBoss = 1.
#Рейты на дроп квестовых айтемов
RateQuestsDrop = 3.
#Рейты на дроп квестовых айтемов в квестах
RateQuestsDropProf = 3.
# Учитывать ли RateQuestsReward для квестов на профессии
RateQuestsRewardOccupationChange = True
RateFishDropCount = 1.
# При использовании бонусов/сервисов, повышающих рейты, партийные рейты расчитывается как средние для всей партии (false) или по участнику с наименьшими рейтами (true).
RatePartyMin = false

# Лучше оставлять 1.
RateClanRepScore = 1.
RateManor = 1

# Суммарное значение рейтов и других модификаторов (чемпионство мобов, бонусы рейтов игроков) при котором дроп начинает разбиваться на кучки
# Рекомендуется выставлять несколько больше, чем RateBonusValue * RateDropItems * 2 (если испольузется сервис бонуса рейтов)
RateBreakpoint = 15
# Максимум кучек (поскольку для каждой считается шанс реально будет намного меньше)
RateMaxIterations = 30

# Сторонний модификатор, RateDropItems также учитывается
RateDropCommonItems = 1.

# ClanRep ammounts with absolute values larger than this will not be affected by rate
# Useful for keeping untouched "classic big" amounts (such as academy/castle/CH/etc. rewards and penalties) while still rating clan wars and sieges.
RateClanRepScoreMaxAffected = 2

# Множитель регенерации HP для рейдов
RateRaidRegen = 1.
# Модификаторы защиты/атаки для рейдов (на отображаемые параметры не влияет)
RateRaidDefense = 1.
RateRaidAttack = 1.
RateEpicDefense = 1.
RateEpicAttack = 1.
# Максимальная разница в уровнях между атакующими и рейдом, а так же его миньонов, при которой не применяется пенальти
RaidMaxLevelDiff = 8
# Парализовывать ли чаров если они пытаются бить рейдов слишком маленького для себя уровня
ParalizeOnRaidLevelDiff = true

# Автоудаление лежащих на земле вещей, время в секундах, 0 - не удалять, рекомендуется 600 (10 минут)
AutoDestroyDroppedItemAfter = 600
# Отдельная настройка для выброшенного игроком или выпавшего с ПК
AutoDestroyPlayerDroppedItemAfter = 7200

# Склад и фрахт, можно выключить, если захочется
AllowWarehouse = True
AllowFreight   = False

# Можно ли игрокам кидать вещи на землю
AllowDiscardItem = True

# Включена ли вода (если включена геодата обязательно включить)
AllowWater = True

# Выдавать ли всем игрокам права администратора (удобно для тестовых серверов)
# Шаблон с привилегиями находятся в файле GMAccess.xml, для PlayerID set="0"
EverybodyHasAdminRights = False

# Разрешать ли всем игрокам специальные команды (начинаются с ///)
AllowSpecialCommands = False

# Punishment if account using l2walker and is not GM, AllowL2Walker = False
# 0 - none
# 1 - kick
# 2 - ban
L2WalkerPunishment = 0
BugUserPunishment = 2
IllegalActionPunishment = 1

# Использование глобальных чатов.
# В качестве параметра уровень чара, начиная с которого ему разрешено использовать общий чат.
# Офф-лайк: 999, по умолчанию 0.
# Shout Chat usabiliy
GlobalChat = 0
# Trade Chat usability
GlobalTradeChat = 0

# При отключенном глобальном чате (GlobalChat = 999)
# Режим 1 - слышно в соседних регионах, расстояние до 10000
# Режим 2 - слышно во всех локациях, принадлежащих текущему городу
ShoutChatMode = 2
# То же самое для трейда
TradeChatMode = 2

# Список торговых слов/фраз для следующих опций
TradeWords = продаю,проgаю,пр0даю,продам,проgам,пр0дам,покупаю,куплю,кyплю,обменяю,выменяю,ВТТ,ВТС,ВТБ,WTB,WTT,WTS
# Использовать более продвинутый RegEx синтаксис не позволяющий обойти систему добавив в средину слова разделитель типа пробела или точки
TradeChatsReplaceExPattern = False
# Изменять тип чата с общего на торговый, если сообщение содержит торговые фразы
TradeChatsReplaceFromAll = False
# тоже самое только для Shout чата
TradeChatsReplaceFromShout = False

# Logging ChatWindow
LogChat = True
LogKills = True
SqlLog = False

# Ограничение сообщений в чате по длине
ChatMessageLimit = 1000
# Filter mats in chat.Timer_to_UnBan - time banned in minuts.
MAT_BANCHAT = False
# PARTY (3) CLAN (4) ALLIANCE (9) SHOUT (1) TELL (2) GM (5) PETITION_PLAYER (6)
# PETITION_GM (7) TRADE (8) COMMANDCHANNEL_ALL (15) COMMANDCHANNEL_COMMANDER (16)
# HERO_VOICE (17) (default = 0 (global only))
# For use global and party or any other type MAT_BAN_CHANNEL = 0,3,4 etc
MAT_BAN_CHANNEL = 0
Timer_to_UnBan = 5
# Не банить за мат но просто блокировать сообщения, если true то MAT_BANCHAT игнорируется
MAT_REPLACE = True
MAT_REPLACE_STRING = [censored]

#Показывать анонс при выполнении команды nochannel
MAT_ANNOUNCE = true
#Анонсировать на весь мир или на текущий регион (true = весь мир)
MAT_ANNOUNCE_FOR_ALL_WORLD = true
#Показывать ник модератора в анонсе
MAT_ANNOUNCE_NICK = true

# =================================================================
# Community board configuration
# =================================================================
AllowCommunityBoard = True
BBSDefault = _bbshome
CommunityBoardHtmlRoot = data/html/CommunityBoard/
CommunityBoardSortPlayersList = False
NamePageSizeOnCommunityBoard = 50
NamePerRowOnCommunityBoard   = 5
# время кеширования списка игроков (но не для ГМов) в секундах, полезно при CommunityBoardSortPlayersList = True и при онлайне от пары сотен
CommunityBoardPlayersListCache = 0
# Кому можно показывать список игроков онлайн (закладка "Регион"), варианты: all, GM, none
AllowCommunityBoardPlayersList = all

# Minimum and maximum variable in seconds for npc animation delay.
# You must keep MinNPCAnimation <= MaxNPCAnimation.
# "0" is default value.
MinNPCAnimation = 30
MaxNPCAnimation = 90

# Можно использовать имя и/или титул NPC установленый в бд сервера вместо клиентского
# По умолчанию выключено и используются клиентские
ServerSideNpcName = False
ServerSideNpcTitle = False
# Показывать уровень, агрессивность и социальность монстров в титуле, требует для работы ServerSideNpcTitle
ServerSideNpcTitleWithLvl = False

### Уделение из базы ничьих вещей, кланов без лидера итп
### Рекомендуется делать это вручную предварительно запасшись бэкапом
### Некритичная информация (ярлыки, сохраненные эффекты) удаляются в любом случае
# HardDbCleanUpOnStart = False

# Не трогайте эти настройки если не знаете что они делают
ThreadPoolSizeGeneral = 15
ThreadPoolSizeMove = 25
ThreadPoolSizePathfind = 10
GeneralPacketThreadCoreSize = 4
UrgentPacketThreadCoreSize = 2
NpcAiMaxThread = 10
PlayerAiMaxThread = 20
InterestMaxThread = 10
SelectorSleepTime = 3
InterestAlt = True

# Использовать распаралеленное извлечение использованных objID из базы при загрузке
MultiThreadedIdFactoryExtractor = False
# Использовать распаралеленную очистку базы при загрузке
MultiThreadedIdFactoryCleaner = False

# Детектор дедлоков, интервал вызова в миллисекундах
DeadLockCheck = 10000

# Следующие значения могут быть изменены пользователями из игры командой .lang, устанавливается значение по умолчанию
# Язык диалогов по умолчанию, возможные варианты ru, en
DefaultLang = ru
# используется только с патчем Drin'a
UseClientLang = true
# Локализованные имена квестов
EngQuestNames = false

# Таймер на удаление чаров, 0 удалять сразу
DeleteCharAfterDays = 7

# Частота вызова пурджера байпасов, в секундах
PurgeTaskFrequency = 60

# Проверять является ли локализованный файл более новым чем английский, и если нет показывать английский
checkLangFilesModify = False

# output chat and log for telnet connection
# (in telnet you must use log_tell and log_chat options)
LogTelnet = True

# Авторестарт через заданный промежуток времени, по умолчанию 24 часа,
# 0 - авторестарт через заданный промежуток времени отключен
AutoRestart = 0

# Ежесуточный авторестарт по расписанию. Время рестарта по умолчанию 05:00,
# -1 - ежесуточный авторестарт отключен.
# Надо указывать ровный час суток, конструкции типа 5:30 не работают.
AutoRestartAt = 6

# Кеширование диалогов, уменьшает нагрузку но затрудняет редактирвоание диалогов при работающем сервере
useFileCache = True

# Путь для генерации статики внешнему вебсерверу (с / в конце)
WebServerRoot = ./webserver/
# Период генерации, 0 - отключить
WebServerDelay = 10

# Hide GM status when use /gmlist or use CommunityBoard
HideGMStatus = False

# Show message when GM Login and GM will not invis/silence as default
ShowGMLogin = False

# Сохранять ГМам эффекты silence, gmspeed, invul и т.д.
SaveGMEffects = False

# Disable Create items by Id. Example 57,4037
DisableCreateItems=

# log multisell
LogMultisellId=65535,65536

# Размер сектора территории. По умолчанию - 32.
LinearTerritoryCellSize = 32

# Отправлять ли с после каждого удара по мобам StatusUpdate? Не рекомендуется.
ForceStatusUpdate = False

# Время после логаута, которое чар будет оставаться в игре
LogoutIngameTime = 0
# Время после дисконнекта, которое чар будет оставаться в игре
DisconnectedIngameTime = 20

#-------------------------------------------------------------
# Настройки геодаты
#-------------------------------------------------------------

# Отладка гео, помечает путь монетками + выводит информацию в чат
# Работает только для ГМ.
GeodataDebug = False

#--------------------------------------------------------------

DamageFromFalling = True

# Хост для соединения с L2J-GeoEditor
GeoEditorHost = 127.0.0.1

# Zariche (default false)
AllowCursedWeapons = True
DropCursedWeaponsOnKick = False

# Allow Boats
AllowBoat = True

#-------------------------------------------------------------
# Weddings config
#-------------------------------------------------------------
# Allow Wedding
AllowWedding = False
# Price in Adena
WeddingPrice = 500000
# Punish Infidelity
WeddingPunishInfidelity = True
# Allow couple teleports
WeddingTeleport = True
# Couple Teleport price
WeddingTeleportPrice = 500
# Couple Teleport tme in seconds
WeddingTeleportInterval = 120
# Same Sex Marriage
WeddingAllowSameSex = True
# Formal Wear needed ?
WeddingFormalWear = True
# Divorce Costs in %
WeddingDivorceCosts = 20

# Disabling loading Quests & Spawn
# Don't load spawntable
StartWhisoutSpawn = False
StartWhisoutQuest = False

# Проверка на GameGuard
GGCheck = False

#Проверка геймсервера пингом, время ожидания ответа указывается в секундах
PingServer = True
WaitPingTime = 5

#Настройка АнтиФлуда, пока экспериментально
#При включении с одного IP разрешается не более чем MaxUnhandledSocketsPerIP соединений, которые не послали ни одного пакета
#если чарез такое соединение не приходит ниодного пакета в течении UnhandledSocketsMinTTL мс. то оно закрывается
AntiFloodEnable = False
MaxUnhandledSocketsPerIP = 5
UnhandledSocketsMinTTL = 5000

# Задержка на повторное использование пакетов движения и атаки
MovePacketDelay = 100
AttackPacketDelay = 500

# Логирование пакетов
LogClientPackets = False
LogServerPackets = False
# Минимум байт которые должны накопится в буфере прежде чем они будут записаны на диск
LogPacketsFlushSize = 8192
# Список IP адресов которые нужно логировать (разделять запятой)
LogPacketsFromIPs =
# Список аккаунтов которые нужно логировать (разделять запятой)
LogPacketsFromAccounts =
# Список чаров которые нужно логировать (разделять запятой)
LogPacketsFromChars =

# Директория для снапшотов
SnapshotsDirectory = ./log/snapshots
# Делать снапшот памяти при выключении сервера (снапшот можно анализировать потом YJP)
MemorySnapshotOnShutdown = False

# Проверка таймаута авторизации клиента (по умолчанию - 2000 мс)
TimeOutChecker = 2000