-- The Forgotten Server Config
-- Account manager
accountManager = false
namelockManager = true
newPlayerChooseVoc = false
newPlayerSpawnPosX = 857
newPlayerSpawnPosY = 964
newPlayerSpawnPosZ = 7
newPlayerTownId = 1
newPlayerLevel = 1
newPlayerMagicLevel = 0
generateAccountNumber = false
generateAccountSalt = false
-- Rook system
useRookSystem = false
rookTownId = 1
rookLevelToGetRooked = 5
rookLevelToLeaveRook = 8
-- Unjustified kills
-- advancedFragList is not advised if you use huge frags
-- requirements.
useFragHandler = true
redSkullLength = 30 * 24 * 60 * 60
fragsLimit = 24 * 60 * 60
fragsSecondLimit = 7 * 24 * 60 * 60
fragsThirdLimit = 30 * 24 * 60 * 60
fragsToRedSkull = 3
fragsSecondToRedSkull = 5
fragsThirdToRedSkull = 10
fragsToBanishment = fragsToRedSkull
fragsSecondToBanishment = fragsSecondToRedSkull
fragsThirdToBanishment = fragsThirdToRedSkull
advancedFragList = false
-- Banishments
-- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment
notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 7 * 24 * 60 * 60
killsBanLength = 7 * 24 * 60 * 60
finalBanLength = 30 * 24 * 60 * 60
ipBanLength = 1 * 24 * 60 * 60
allowedMaxSizePackets = 20
-- Battle
-- NOTE: showHealth/ManaChangeForMonsters inherites from showHealth/ManaChange.
-- deathLostPercent set to nil enables manual mode.
worldType = "open"
protectionLevel = 1
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 60 * 1000
huntingDuration = 60 * 1000
criticalHitChance = 7
criticalHitMultiplier = 1
displayCriticalHitNotify = false
removeWeaponAmmunition = true
removeWeaponCharges = true
removeRuneCharges = true
whiteSkullTime = 15 * 60 * 1000
noDamageToSameLookfeet = false
showHealthChange = false
showManaChange = false
showHealthChangeForMonsters = false
showManaChangeForMonsters = false
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = false
deathLostPercent = 10
pushCreatureDelay = 2 * 1000
deathContainerId = 1987
gainExperienceColor = 215
addManaSpentInPvPZone = true
recoverManaAfterDeathInPvPZone = false
squareColor = 0
fistBaseAttack = 7
useFairfightReduction = true
optionalWarAttackableAlly = false
-- Connection config
worldId = 0
ip = "127.0.0.1"
bindOnlyGlobalAddress = false
loginPort = 7171
gamePort = 7172
loginTries = 3
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 1000
motd = "Welcome to the Forgotten Server!"
displayOnOrOffAtCharlist = false
charlistBasicInfo = false
onePlayerOnlinePerAccount = true
allowClones = 0
serverName = "Forgotten"
loginMessage = "Welcome to the Forgotten Server!"
statusTimeout = 5 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = false
packetsPerSecond = 50
-- Database
-- NOTE: ONLY MYSQL
-- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
-- encryptionType can be plain, md5, sha1, sha256, sha512.
sqlHost = "127.0.0.1"
sqlPort = 3306
sqlUser = "root"
sqlPass = ""
sqlDatabase = "tfs"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
mysqlReconnectionAttempts = 3
encryptionType = "sha1"
-- Deathlist
deathListEnabled = true
deathListRequiredTime = 1 * 60 * 1000
deathAssistCount = 19
maxDeathRecords = 5
multipleNames = false
-- Guilds
-- NOTE: externalGuildWarsManagement supports Automatic Account Creator(webpage or whatever you want)
externalGuildWarsManagement = false
ingameGuildManagement = true
levelToFormGuild = 8
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20
-- Houses
buyableAndSellableHouses = true
houseNeedPremium = true
bedsRequirePremium = true
levelToBuyHouse = 1
housesPerAccount = 0
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 1000
houseSkipInitialRent = true
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = false
houseProtection = true
-- Item usage
timeBetweenActions = 200
timeBetweenExActions = 1000
timeBetweenCustomActions = 500
hotkeyAimbotEnabled = true
tibiaClassicSlots = true
-- Map
-- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
mapName = "ot_map.otbm"
mapAuthor = ""
randomizeTiles = true
storeTrash = true
cleanProtectedZones = true
-- Mailbox
mailboxDisabledTowns = ""
mailMaxAttempts = 20
mailBlockPeriod = 60 * 60 * 1000
mailAttemptsFadeTime = 10 * 60 * 1000
-- Process
-- NOTE: daemonize works only on *nix, same as niceLevel, while
-- defaultPriority works only on Windows.
-- coresUsed are seperated by comma cores ids used by server process,
-- default is -1, so it stays untouched (automaticaly assigned by OS).
daemonize = false
defaultPriority = "high"
niceLevel = 5
serviceThreads = 1
coresUsed = "-1"
-- Startup
startupDatabaseOptimization = false
updatePremiumStateAtStartup = true
skipItemsVersionCheck = false
-- Spells
bufferMutedOnSpellFailure = false
spellNameInsteadOfWords = false
emoteSpells = false
unifiedSpells = true
runesHitTopCreature = false
-- Outfits
allowChangeOutfit = true
allowChangeColors = true
disableOutfitsForPrivilegedPlayers = false
-- Miscellaneous
-- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
-- called "exception tracer" (__EXCEPTION_TRACER__ flag).
dataDirectory = "data/"
logsDirectory = "data/logs/"
bankSystem = true
promptExceptionTracerErrorBox = true
maximumDoorLevel = 500
maxMessageBuffer = 4
logPlayersStatements = true
tradeLimit = 100
useCapacity = true
tileHeightBlock = false
autoStack = false
-- set playerFollowExhaust to 1500 if someone causes lags and kicks
-- by following unreachable creatures too often
playerFollowExhaust = 0
-- Depot
defaultDepotSizePremium = 2000
defaultDepotSize = 1000
-- VIP list
separateVipListPerCharacter = false
vipListDefaultLimit = 20
vipListDefaultPremiumLimit = 100
-- Saving-related
-- houseDataStorage usage may be found at README.
houseDataStorage = "binary"
saveGlobalStorage = true
storePlayerDirection = false
savePlayerData = true
-- Ghost mode
ghostModeInvisibleEffect = false
ghostModeSpellEffects = true
-- Limits
idleWarningTime = 14 * 60 * 1000
idleKickTime = 15 * 60 * 1000
reportsExpirationAfterReads = 1
playerQueryDeepness = -1
tileLimit = 0
protectionTileLimit = 0
houseTileLimit = 0
-- Premium-related
freePremium = false
premiumForPromotion = true
-- Blessings
-- NOTE: blessingReduction* regards items/containers loss.
-- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
-- pvpBlessingThreshold is damage percent received from PvP that is required to
-- enable pvpBlessing.
-- fairFightTimeRange is last X seconds from which damage to player counts.
-- Applies to pvp blessing.
blessings = true
blessingOnlyPremium = true
blessingReductionBase = 30
blessingReductionDecrement = 5
eachBlessReduction = 8
pvpBlessingThreshold = 40
fairFightTimeRange = 60
-- Rates
-- NOTE: experienceStages configuration is located in data/XML/stages.xml.
-- rateExperienceFromPlayers 0 to disable.
-- For constant spawn count increment, use exact values in rateSpawn* variables.
experienceStages = false
rateExperience = 250.0
rateExperienceFromPlayers = 0
rateSkill = 3.0
rateMagic = 3.0
rateLoot = 2.0
offlineRateSkill = 3.0
offlineRateMagic = 3.0
rateSpawnMin = 1
rateSpawnMax = 1
-- Monster rates
rateMonsterHealth = 1.0
rateMonsterMana = 1.0
rateMonsterAttack = 1.0
rateMonsterDefense = 1.0
-- Experience from players
-- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
-- player will gain experience from every lower leveled player.
-- max~Threshold* set to 0 will disable the maximum threshold:
-- player will gain experience from every higher leveled player.
minLevelThresholdForKilledPlayer = 0.9
maxLevelThresholdForKilledPlayer = 1.1
-- Stamina
-- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
-- set useStamina to false to disable
-- rateStaminaHits multiplies every hit done a creature, which are later
-- multiplied by player attack speed.
-- rateStaminaGain is multiplying every second of logged out time, eg:
-- 60 * 1000 / 3 = 20 seconds, what gives 1 stamina minute for 3 being logged off.
-- rateStaminaThresholdGain is dividing in case the normal gain (that is
-- multiplied by rateStaminaGain, btw.) passed above threshold, eg:
-- 60 * 1000 / 3 = 20 / 4 = 5 seconds (3 * 4 = 12 minutes for 1 stamina minute).
-- staminaRatingLimit* is in minutes.
useStamina = true
rateStaminaLoss = 1
rateStaminaGain = 3
rateStaminaThresholdGain = 12
staminaRatingLimitTop = 40 * 60
staminaRatingLimitBottom = 14 * 60
staminaLootLimit = 14 * 60
rateStaminaAboveNormal = 1.5
rateStaminaUnderNormal = 0.5
staminaThresholdOnlyPremium = true
-- Party
-- NOTE: experienceShareLevelDifference is float number.
-- experienceShareLevelDifference is highestLevel * value
experienceShareRadiusX = 30
experienceShareRadiusY = 30
experienceShareRadiusZ = 1
experienceShareLevelDifference = 2 / 3
extraPartyExperienceLimit = 20
extraPartyExperiencePercent = 5
experienceShareActivity = 2 * 60 * 1000
-- Global save
-- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
-- if you want such a system please check out data/globalevents/globalevents.xml.
globalSaveEnabled = false
globalSaveHour = 8
globalSaveMinute = 0
shutdownAtGlobalSave = true
cleanMapAtGlobalSave = false
closeInstanceOnShutdown = true
-- Spawns
deSpawnRange = 0
deSpawnRadius = 0
monsterSpawnWalkback = false
allowBlockSpawn = true
-- Summons
maxPlayerSummons = 2
summonsDropCorpse = true
teleportAllSummons = false
teleportPlayerSummons = false
-- Status
statusPort = 7171
ownerName = ""
ownerEmail = "@otland.net"
url = "http://otland.net/"
location = "Europe"
displayGamemastersWithOnlineCommand = false
-- Logs
disableLuaErrors = false
displayPlayersLogging = true
prefixChannelLogs = ""
runFile = ""
outputLog = ""
truncateLogOnStartup = false