diff --git a/config.lua.dist b/config.lua.dist index 7d0360d9360..bd01a61d002 100644 --- a/config.lua.dist +++ b/config.lua.dist @@ -1,31 +1,42 @@ --- Core settings --- Note: If you want to use datapack folder canary (custom), put only "data-canary" --- If you want to use the global datapack folder, put "data-otservbr-global" --- If "useAnyDatapackFolder" is set to true then you can choose any datapack folder for your server +-- Core Settings +-- useAnyDatapackFolder: If you want to use a custom datapack folder, set to true. +-- dataPackDirectory: Datapack folder to use. +-- coreDirectory: Core directory for server data files. useAnyDatapackFolder = false dataPackDirectory = "data-otservbr-global" --- Don't change this unless you know what you're doing coreDirectory = "data" --- Set log level --- It can be trace, debug, info, warning, error, critical, off (default: info). --- NOTE: It will only be valid after the server starts up and only display logs with level higher or equal the one set. --- NOTE: Debug and trace logs are only available if compiled in debug mode. +-- Logging Settings +-- logLevel: Set log level: trace, debug, info, warning, error, critical, off. +-- toggleMaintainMode: Toggles server maintenance mode. +-- maintainModeMessage: Message displayed during maintenance mode. logLevel = "info" - ---- Toggles the server's maintenance mode. --- When enabled, it restricts user access and indicates maintenance operations. --- @field [parent=#global] #boolean toggleMaintainMode false by default, set to true to enable maintenance mode. toggleMaintainMode = false ---- Message displayed during maintenance mode. --- Should inform the expected downtime or resumption details succinctly. --- @field [parent=#global] #string maintainModeMessage an empty string by default, set a custom message if needed. maintainModeMessage = "" --- Combat settings --- NOTE: valid values for worldType are: "pvp", "no-pvp" and "pvp-enforced" --- NOTE: removeBeginningWeaponAmmunition: spears, arrows, bolt have endless ammo (allows training for paladins) --- NOTE: refundManaOnBeginningWeapons: wand of vortex and snakebite refund mana used (allows training for mages) +-- Combat Settings +-- worldType: Valid values: "pvp", "no-pvp", "pvp-enforced". +-- hotkeyAimbotEnabled: Enables aimbot feature for hotkeys. +-- protectionLevel: Protection level for players. +-- pzLocked: Time in milliseconds for which players are locked in protection zones. +-- removeChargesFromRunes: Removes charges from runes when used. +-- removeChargesFromPotions: Removes charges from potions when used. +-- removeWeaponAmmunition: Removes weapon ammunition after use. +-- removeWeaponCharges: Removes weapon charges after use. +-- removeBeginningWeaponAmmunition: Allows training for paladins by providing endless ammo for beginning weapons. +-- refundBeginningWeaponMana: Refunds mana used for specific beginning weapons. +-- timeToDecreaseFrags: Time to decrease frags in milliseconds. +-- whiteSkullTime: Duration for white skull status in milliseconds. +-- stairJumpExhaustion: Exhaustion time for stair jumping in milliseconds. +-- experienceByKillingPlayers: Experience gained from killing players. +-- expFromPlayersLevelRange: Level range for experience from players. +-- dayKillsToRedSkull: Number of kills required for red skull status. +-- weekKillsToRedSkull: Number of kills required for red skull status in a week. +-- monthKillsToRedSkull: Number of kills required for red skull status in a month. +-- redSkullDuration: Duration of red skull status in days. +-- blackSkullDuration: Duration of black skull status in days. +-- orangeSkullDuration: Duration of orange skull status in days. +-- cleanProtectionZones: Cleans protection zones after specific events. worldType = "pvp" hotkeyAimbotEnabled = true protectionLevel = 7 @@ -47,14 +58,23 @@ monthKillsToRedSkull = 10 redSkullDuration = 1 blackSkullDuration = 3 orangeSkullDuration = 7 - cleanProtectionZones = false -- Connection Config --- NOTE: allowOldProtocol can allow login on 10x protocol. (11.00) --- NOTE: maxPlayers set to 0 means no limit --- NOTE: MaxPacketsPerSeconds if you change you will be subject to bugs by WPE, keep the default value of 25, --- It's recommended to use a range like min 50 in this function, otherwise you will be disconnected after equipping two-handed distance weapons. +-- ip: Server IP address. +-- allowOldProtocol: Allows login on old protocol. +-- bindOnlyGlobalAddress: Binds only to global address. +-- loginProtocolPort: Port for login protocol. +-- gameProtocolPort: Port for game protocol. +-- statusProtocolPort: Port for status protocol. +-- maxPlayers: Set to 0 for no limit on players. +-- serverName: Name of the server. +-- serverMotd: Message of the day. +-- statusTimeout: Timeout for status requests in milliseconds. +-- replaceKickOnLogin: Replaces kick on login. +-- maxPacketsPerSecond: Maximum packets per second allowed. +-- maxPlayersOnlinePerAccount: Maximum players allowed online per account. +-- maxPlayersOutsidePZPerAccount: Maximum players allowed outside protection zones per account. ip = "127.0.0.1" allowOldProtocol = false bindOnlyGlobalAddress = false @@ -71,65 +91,44 @@ maxPlayersOnlinePerAccount = 1 maxPlayersOutsidePZPerAccount = 1 -- Packet Compression --- Minimize network bandwith and reduce ping --- Levels: 0 = disabled, 1 = best speed, 9 = best compression +-- packetCompressionLevel: Levels: 0 = disabled, 1 = best speed, 9 = best compression. packetCompressionLevel = 6 --- Depot Limit +-- Depot Limits +-- freeDepotLimit: Free depot limit. +-- premiumDepotLimit: Premium depot limit. +-- depotBoxes: Number of depot boxes available. freeDepotLimit = 2000 premiumDepotLimit = 10000 depotBoxes = 20 --- Item and containers limit --- NOTE: 'maxContainerDepth' defines the maximum depth to which containers can be nested +-- Item and Container Limits +-- maxItem: Maximum items allowed. +-- maxContainer: Maximum containers allowed. +-- maxContainerDepth: Maximum depth of nested containers. maxItem = 5000 maxContainer = 500 maxContainerDepth = 200 --- Augments System (Get more info in: https://github.com/opentibiabr/canary/pull/2602) --- NOTE: the following values are for all weapons and equipments that have type of "increase damage", "powerful impact" and "strong impact". --- To customize the percentage of a particular item with these augment types, please add to the item "augments" section on items.xml as the example above. --- NOTE: The values represent percentage. --- NOTE: augmentIncreasedDamagePercent = value between 1 and 100 (damage percent to increase. ex: 5 = 5%, 50 = 50%) --- NOTE: augmentPowerfulImpactPercent = value between 1 and 100 (damage percent to increase. ex: 10 = 10%, 100 = 100%) --- NOTE: augmentStrongImpactPercent = value between 1 and 100 (damage percent to increase. ex: 7 = 7%, 70 = 70%) -augmentIncreasedDamagePercent = 5 -augmentPowerfulImpactPercent = 7 -augmentStrongImpactPercent = 10 - --- Prey system --- NOTE: preyRerollPricePerLevel: Price multiplier in gold coin for rerolling prey list. --- NOTE: preySelectListPrice: Price to manually select creature on list and to lock prey slot. --- NOTE: preyBonusRerollPrice: Price to manually reroll bonus type and to enable automatic reroll. --- NOTE: preyBonusTime: Time in seconds that players will have of prey bonus. --- NOTE: preyFreeRerollTime: Time in seconds that players will have to wait to get a new free prey list. -preySystemEnabled = true -preyFreeThirdSlot = false -preyRerollPricePerLevel = 200 -preySelectListPrice = 5 -preyBonusRerollPrice = 1 -preyBonusTime = 2 * 60 * 60 -preyFreeRerollTime = 20 * 60 * 60 - --- Task hunting system --- NOTE: taskHuntingLimitedTasksExhaust: Time to wait to select a new creature on the task hunting slot after claiming the reward. --- NOTE: taskHuntingRerollPricePerLevel: Price multiplier in gold coin for rerolling task hunting list. --- NOTE: taskHuntingFreeRerollTime: Time in seconds that players will have to wait to get a new free task hunting list. -taskHuntingSystemEnabled = true -taskHuntingFreeThirdSlot = false -taskHuntingLimitedTasksExhaust = 20 * 60 * 60 -taskHuntingRerollPricePerLevel = 200 -taskHuntingSelectListPrice = 5 -taskHuntingBonusRerollPrice = 1 -taskHuntingFreeRerollTime = 20 * 60 * 60 - --- Forge system --- NOTE: forgeAmountMultiplier, amount dusts multiplies of influenced monsters, default 3 --- NOTE: forgeMinSlivers, min slivers from influenced monsters --- NOTE: forgeMaxSlivers, max slivers from influenced monsters --- NOTE: forgeInfluencedLimit, limit of influenced monsters that will be created in interval type and time --- NOTE: forgeFiendishLimit, limit of diabolic monsters that will be created in interval type and time, less than forgeInfluencedLimit --- NOTE: forgeFiendishIntervalType: "hour", "minute" or "second" +-- Forge System +-- forgeMaxItemTier: Maximum item tier for forge. +-- forgeCostOneSliver: Cost of one sliver in forge. +-- forgeSliverAmount: Amount of slivers from influenced monsters. +-- forgeCoreCost: Core cost for forge operations. +-- forgeMaxDust: Maximum dust allowed in forge. +-- forgeFusionDustCost: Cost of fusion dust in forge. +-- forgeConvergenceFusionDustCost: Cost of convergence fusion dust in forge. +-- forgeTransferDustCost: Cost of transfer dust in forge. +-- forgeConvergenceTransferCost: Cost of convergence transfer in forge. +-- forgeBaseSuccessRate: Base success rate for forge operations. +-- forgeBonusSuccessRate: Bonus success rate for forge operations. +-- forgeTierLossReduction: Tier loss reduction in forge. +-- forgeAmountMultiplier: Amount multiplier for influenced monsters. +-- forgeMinSlivers: Minimum slivers from influenced monsters. +-- forgeMaxSlivers: Maximum slivers from influenced monsters. +-- forgeInfluencedLimit: Limit of influenced monsters created. +-- forgeFiendishLimit: Limit of fiendish monsters created. +-- forgeFiendishIntervalType: Interval type for fiendish monsters. forgeMaxItemTier = 10 forgeCostOneSliver = 20 forgeSliverAmount = 3 @@ -148,37 +147,76 @@ forgeMaxSlivers = 7 forgeInfluencedLimit = 300 forgeFiendishLimit = 4 forgeFiendishIntervalType = "hour" -forgeFiendishIntervalTime = "1" -ruseChanceFormulaA = 0.0307576 -ruseChanceFormulaB = 0.440697 -ruseChanceFormulaC = 0.026 - -onslaughtChanceFormulaA = 0.05 -onslaughtChanceFormulaB = 0.4 -onslaughtChanceFormulaC = 0.05 - -momentumChanceFormulaA = 0.05 -momentumChanceFormulaB = 1.9 -momentumChanceFormulaC = 0.05 +-- Augments System +-- augmentIncreasedDamagePercent: Damage percent to increase for augment. +-- augmentPowerfulImpactPercent: Damage percent to increase for powerful impact augment. +-- augmentStrongImpactPercent: Damage percent to increase for strong impact augment. +augmentIncreasedDamagePercent = 5 +augmentPowerfulImpactPercent = 7 +augmentStrongImpactPercent = 10 -transcendanceChanceFormulaA = 0.0127 -transcendanceChanceFormulaB = 0.1070 -transcendanceChanceFormulaC = 0.0073 +-- Prey System +-- preySystemEnabled: Enables the prey system. +-- preyFreeThirdSlot: Allows a free third prey slot. +-- preyRerollPricePerLevel: Price multiplier for rerolling prey list. +-- preySelectListPrice: Price to manually select creature on list. +-- preyBonusRerollPrice: Price to manually reroll bonus type. +-- preyBonusTime: Time in seconds for prey bonus. +-- preyFreeRerollTime: Time in seconds for new free prey list. +preySystemEnabled = true +preyFreeThirdSlot = false +preyRerollPricePerLevel = 200 +preySelectListPrice = 5 +preyBonusRerollPrice = 1 +preyBonusTime = 2 * 60 * 60 +preyFreeRerollTime = 20 * 60 * 60 -transcendanceAvatarDuration = 7000 +-- Task Hunting System +-- taskHuntingSystemEnabled: Enables task hunting system. +-- taskHuntingFreeThirdSlot: Allows a free third task hunting slot. +-- taskHuntingLimitedTasksExhaust: Time to wait to select a new creature after claiming the reward. +-- taskHuntingRerollPricePerLevel: Price multiplier for rerolling task hunting list. +-- taskHuntingSelectListPrice: Price to manually select task hunting creature. +-- taskHuntingBonusRerollPrice: Price to manually reroll task hunting bonus. +-- taskHuntingFreeRerollTime: Time in seconds for new free task hunting list. +taskHuntingSystemEnabled = true +taskHuntingFreeThirdSlot = false +taskHuntingLimitedTasksExhaust = 20 * 60 * 60 +taskHuntingRerollPricePerLevel = 200 +taskHuntingSelectListPrice = 5 +taskHuntingBonusRerollPrice = 1 +taskHuntingFreeRerollTime = 20 * 60 * 60 --- Bestiary & Bosstiary system --- NOTE: bestiaryKillMultiplier, multiplier value of monster killed, default 1 --- NOTE: bosstiaryKillMultiplier, multiplier value of boss killed, default 1 +-- Bestiary & Bosstiary System +-- bestiaryKillMultiplier: Multiplier for monster kills. +-- bosstiaryKillMultiplier: Multiplier for boss kills. +-- bestiaryRateCharmShopPrice: Charm shop price rate. +-- boostedBossSlot: Enables boosted boss slot. +-- boostedBossLootBonus: Loot bonus for boosted bosses. +-- boostedBossKillBonus: Kill bonus for boosted bosses. bestiaryKillMultiplier = 1 bosstiaryKillMultiplier = 1 -bestiaryRateCharmShopPrice = 1.0 +bestiaryRateCharmShopPrice = 1.0 boostedBossSlot = true boostedBossLootBonus = 250 boostedBossKillBonus = 3 --- Hazard system +-- Hazard System +-- toogleHazardSystem: Enables hazard system. +-- hazardCriticalInterval: Interval for critical hazards. +-- hazardCriticalChance: Chance for critical hazards. +-- hazardCriticalMultiplier: Multiplier for critical hazards. +-- hazardDamageMultiplier: Damage multiplier for hazards. +-- hazardDefenseMultiplier: Defense multiplier for hazards. +-- hazardDodgeMultiplier: Dodge multiplier for hazards. +-- hazardPodsDropMultiplier: Drop multiplier for hazard pods. +-- hazardPodsTimeToDamage: Time to damage from hazard pods. +-- hazardPodsTimeToSpawn: Time to spawn hazard pods. +-- hazardExpBonusMultiplier: Experience bonus multiplier for hazards. +-- hazardLootBonusMultiplier: Loot bonus multiplier for hazards. +-- hazardPodsDamage: Damage from hazard pods. +-- hazardSpawnPlunderMultiplier: Spawn plunder multiplier for hazards. toogleHazardSystem = true hazardCriticalInterval = 2000 hazardCriticalChance = 750 @@ -194,73 +232,88 @@ hazardLootBonusMultiplier = 2 hazardPodsDamage = 5 hazardSpawnPlunderMultiplier = 25 --- Loyalty system +-- Loyalty System +-- loyaltyEnabled: Enables loyalty system. +-- loyaltyPointsPerCreationDay: Loyalty points per creation day. +-- loyaltyPointsPerPremiumDaySpent: Loyalty points per premium day spent. +-- loyaltyPointsPerPremiumDayPurchased: Loyalty points per premium day purchased. +-- loyaltyBonusPercentageMultiplier: Loyalty bonus percentage multiplier. loyaltyEnabled = true loyaltyPointsPerCreationDay = 1 loyaltyPointsPerPremiumDaySpent = 0 loyaltyPointsPerPremiumDayPurchased = 0 loyaltyBonusPercentageMultiplier = 1.0 --- Custom PvP system --- NOTE: Rate is additive percent for each level and applied multiplicative to totalDamage --- NOTE: Damage multipliers for each vocation are adjusted in data/XML/vocations.xml -pvpRateDamageTakenPerLevel = 0.0 -- recommended to start with 0.1 -pvpRateDamageReductionPerLevel = 0.0 -- recommended to start with 0.1 +-- PvP Settings +-- pvpRateDamageTakenPerLevel: Damage taken per level in PvP. +-- pvpRateDamageReductionPerLevel: Damage reduction per level in PvP. +-- pvpMaxLevelDifference: Maximum level difference in PvP. +pvpRateDamageTakenPerLevel = 0.0 +pvpRateDamageReductionPerLevel = 0.0 pvpMaxLevelDifference = 0 --- Wheel of destiny system --- NOTE: set wheelSystemEnabled = false to disable the wheel of destiny --- NOTE: only the wheel points are modified, all other data is on the client executable and cannot be modified +-- Wheel of Destiny System +-- wheelSystemEnabled: Enables the wheel of destiny. +-- wheelPointsPerLevel: Points per level for wheel of destiny. wheelSystemEnabled = true wheelPointsPerLevel = 1 -- Gem Atelier +-- wheelAtelierRotateLesserCost: Cost for lesser rotate in gem atelier. +-- wheelAtelierRotateRegularCost: Cost for regular rotate in gem atelier. +-- wheelAtelierRotateGreaterCost: Cost for greater rotate in gem atelier. wheelAtelierRotateLesserCost = 125000 wheelAtelierRotateRegularCost = 250000 wheelAtelierRotateGreaterCost = 500000 -wheelAtelierRevealLesserCost = 125000 -wheelAtelierRevealRegularCost = 1000000 -wheelAtelierRevealGreaterCost = 6000000 - --- Familiar system --- NOTE: the time will be divided by 2 to get half the value, the familiar lasts 15 minutes by default and the cooldown of the spell is 30 minutes --- Only change it here if you know what you are doing or to make testing easier with familiars +-- Familiar System +-- familiarTime: Duration of familiar in minutes. familiarTime = 30 +-- Party Settings +-- partyAutoShareExperience: Enables auto sharing of experience in party. +-- partyShareRangeMultiplier: Range multiplier for party share experience. +-- partyShareLootBoosts: Enables loot boosts for party. +-- partyShareLootBoostsDimishingFactor: Diminishing factor for loot boosts in party. partyAutoShareExperience = true --- partyShareRangeMultiplier: the range of the party share experience, default 3/2 (1.5) partyShareRangeMultiplier = 1.5 partyShareLootBoosts = false partyShareLootBoostsDimishingFactor = 0.7 --- Tibiadrome concoctions -tibiadromeConcoctionCooldown = 24 * 60 * 60 -- 24 hours -tibiadromeConcoctionDuration = 60 * 60 -- 1 hour -tibiadromeConcoctionTickType = "online" -- "online" | "experience" +-- Tibiadrome Concoctions +-- tibiadromeConcoctionCooldown: Cooldown for concoctions. +-- tibiadromeConcoctionDuration: Duration for concoctions. +-- tibiadromeConcoctionTickType: Tick type for concoctions. +tibiadromeConcoctionCooldown = 24 * 60 * 60 +tibiadromeConcoctionDuration = 60 * 60 +tibiadromeConcoctionTickType = "online" --- NOTE: Access only for Premium Account +-- Premium Account Settings +-- onlyPremiumAccount: Access only for premium accounts. onlyPremiumAccount = false --- Customs --- NOTE: stashMoving = true, stow an container inside your stash --- NOTE: stashItemCount, the maximum items quantity in stash --- NOTE: depotChest, the non-stackable items will be moved to the selected depot chest(I - XVIII). --- NOTE: autoBank = true, the dropped coins from monsters will be automatically deposited to your bank account. --- NOTE: toggleGoldPouchAllowAnything will allow players to move items or gold to gold pouch --- NOTE: toggleGoldPouchQuickLootOnly will ONLY allow quickloot to move items to gold pouch --- NOTE: toggleServerIsRetroPVP will make this server as retro, setting PARTY_PROTECTION and ADVANCED_SECURE_MODE to 0 --- NOTE: toggleTravelsFree will make all travels from boat free --- NOTE: buyAolCommandFee will add fee when player buy aol by command (!aol), active changing value more than 0 (fee value. ex: 1 = 1gp aol will be 50001) --- NOTE: buyBlessCommandFee will add fee when player buy bless by command (!bless), active changing value between 1 and 100 (fee percent. ex: 3 = 3%, 30 = 30%) --- NOTE: teleportPlayerToVocationRoom will enable oressa to teleport player to his/her room vocation --- NOTE: toggleReceiveReward = true, will enable players to choose one of reward exercise weapon by command !reward --- NOTE: randomMonsterSpawn = true, will enable monsters from the same spawn to be randomized between them, thus making a variable hunt --- NOTE: enablePlayerPutItemInAmmoSlot = true, will enable players to put any items on ammo slot, more used in custom shopping system --- NOTE: startStreakLevel will make a reward streak level for new players who never logged in --- NOTE: if showLootsInBestiary is true, will cause all loots to be shown in the bestiary even if the player has not reached the required number of kills --- NOTE: minTownIdToBankTransferFromMain blocks towns less than defined from receiving money transfers --- NOTE: enableSupportOutfit enable GODS and GMS to select support outfit (gamemaster, customer support or community manager) +-- Custom Settings +-- stashMoving: Enables stash moving. +-- stashItemCount: Maximum items in stash. +-- depotChest: Selected depot chest. +-- autoLoot: Enables auto loot. +-- autoBank: Enables auto bank. +-- toggleGoldPouchAllowAnything: Allows players to move items to gold pouch. +-- toggleGoldPouchQuickLootOnly: Allows quick loot to move items to gold pouch. +-- toggleServerIsRetroPVP: Makes server retro. +-- toggleTravelsFree: Makes all travels from boat free. +-- buyAolCommandFee: Fee for buying AOL by command. +-- buyBlessCommandFee: Fee for buying bless by command. +-- teleportPlayerToVocationRoom: Teleports player to vocation room. +-- toggleReceiveReward: Enables reward selection for players. +-- randomMonsterSpawn: Enables random monster spawn. +-- lootPouchMaxLimit: Maximum limit for loot pouch. +-- storeInboxMaxLimit: Maximum limit for store inbox. +-- enablePlayerPutItemInAmmoSlot: Enables players to put items in ammo slot. +-- startStreakLevel: Reward streak level for new players. +-- showLootsInBestiary: Shows all loots in bestiary. +-- minTownIdToBankTransferFromMain: Minimum town ID for bank transfer. +-- enableSupportOutfit: Enables support outfit for staff. stashMoving = false stashItemCount = 5000 depotChest = 4 @@ -283,67 +336,49 @@ showLootsInBestiary = false minTownIdToBankTransferFromMain = 4 enableSupportOutfit = true --- Teleport summon --- Set to true will never remove the summon +-- Teleport Summon Settings +-- teleportSummons: Set to true to never remove the summon. teleportSummons = false --- NOTE: true will allow the /reload command to be used --- NOTE: Using this script might cause unwanted changes --- This script forces a reload in the entire server, this means that everything that is stored in memory might stop to work properly and/or completely, this script should be used in test environments only -allowReload = false - --- Stamina in Trainers -staminaTrainer = false -staminaTrainerDelay = 5 -staminaTrainerGain = 1 --- Stamina in PZ -staminaPz = false -staminaOrangeDelay = 1 -staminaGreenDelay = 5 -staminaPzGain = 1 --- Max players allowed on a dummy. -maxAllowedOnADummy = 1 - --- Save interval per time --- NOTE: toggleSaveInterval: true = enable the save interval, false = disable the save interval --- NOTE: toggleSaveAsync = true, will enable save async (experimental), not recommended for use in production --- NOTE: saveIntervalType: "minute", "second" or "hour" --- NOTE: toggleSaveIntervalCleanMap: true = enable the clean map, false = disable the clean map --- NOTE: saveIntervalTime: time based on what was set in "saveIntervalType" +-- Save Interval Settings +-- toggleSaveAsync: Enables asynchronous save (experimental). +-- toggleSaveInterval: Enables save interval. +-- saveIntervalType: Type of save interval. +-- toggleSaveIntervalCleanMap: Enables clean map on save interval. +-- saveIntervalTime: Time based on save interval type. toggleSaveAsync = false toggleSaveInterval = true saveIntervalType = "hour" toggleSaveIntervalCleanMap = true saveIntervalTime = 1 --- Imbuement +-- Imbuement Settings +-- toggleImbuementShrineStorage: Enables imbuement shrine storage. +-- toggleImbuementNonAggressiveFightOnly: Enables non-aggressive fight only for imbuement. toggleImbuementShrineStorage = false toggleImbuementNonAggressiveFightOnly = false --- Free quests --- Add quest access to player when logging in --- NOTE: Only quests that are in the "freequests.lua" script table will work --- toggleFreeQuest = enable/disable the system --- freeQuestStage = if you add more quests to the table, change this value to run freeQuest again +-- Free Quests Settings +-- toggleFreeQuest: Enables free quest system. +-- freeQuestStage: Stage for free quest. toggleFreeQuest = false freeQuestStage = 1 --- Deaths --- NOTE: Leave deathLosePercent as -1 if you want to use the default --- death penalty formula. For the old formula, set it to 10. For --- no skill/experience loss, set it to 0. +-- Death Settings +-- deathLosePercent: Leave as -1 for default death penalty formula. deathLosePercent = -1 --- Houses --- NOTE: set housePriceEachSQM to -1 to disable the ingame buy house functionality --- NOTE: set houseBuyLevel to 0 to disable the min level purchase functionality. ---[[ NOTE: The togglehouseTransferOnRestart setting controls whether house transfers/leave are true/false upon server restart. -• When set to true, the transfers will only occur during a server restart. -Setting this to false may pose risks; if a house is abandoned and contains a large number of items on the floor, those items will be transferred to the player's depot instantly. -• This could potentially freeze the server due to the heavy operation. It's advised to keep this setting enabled (true) to minimize risks. -]] --- Periods: daily/weekly/monthly/yearly/never --- Base: sqm,rent,sqm+rent +-- House Settings +-- housePriceRentMultiplier: Rent multiplier for houses. +-- housePriceEachSQM: Price per square meter for houses. +-- houseRentPeriod: Rent period for houses. +-- houseRentRate: Rent rate for houses. +-- houseOwnedByAccount: House ownership by account. +-- houseBuyLevel: Minimum level to buy houses. +-- housePurchasedShowPrice: Show price when purchasing house. +-- houseLoseAfterInactivity: Days of inactivity before losing house. +-- onlyInvitedCanMoveHouseItems: Only invited players can move house items. +-- togglehouseTransferOnRestart: Controls house transfers on server restart. housePriceRentMultiplier = 0.0 housePriceEachSQM = 1000 houseRentPeriod = "never" @@ -351,50 +386,62 @@ houseRentRate = 1.0 houseOwnedByAccount = false houseBuyLevel = 100 housePurchasedShowPrice = false -houseLoseAfterInactivity = 30 -- days; 0 = never +houseLoseAfterInactivity = 30 onlyInvitedCanMoveHouseItems = true togglehouseTransferOnRestart = true --- Item Usage +-- Item Usage Settings +-- timeBetweenActions: Time between actions. +-- timeBetweenExActions: Time between extended actions. timeBetweenActions = 200 timeBetweenExActions = 1000 --- Push --- NOTE: pushDelay: interval for every push --- NOTE: pushDistanceDelay: delay for every distance push --- NOTE: pushWhenAttacking: true = enable the push during attack, false = disable the push during attack +-- Push Settings +-- pushDelay: Delay for push actions. +-- pushDistanceDelay: Distance delay for push actions. +-- pushWhenAttacking: Enables push during attack. pushDelay = 1000 pushDistanceDelay = 1500 pushWhenAttacking = false --- Map --- Note: Set mapName without .otbm at the end. --- Note: If toggleDownloadMap is set to false, the mapDownloadUrl will not be used. --- Note: If a map with the same name already exists in the world folder, the map will not be downloaded, even if toggleDownloadMap is set to true. +-- Map Settings +-- toggleDownloadMap: Enables map download. +-- mapDownloadUrl: URL for map download. +-- mapName: Name of the map. +-- mapAuthor: Author of the map. toggleDownloadMap = true mapDownloadUrl = "https://github.com/opentibiabr/canary/releases/download/v3.1.0/otservbr.otbm" mapName = "otservbr" mapAuthor = "OpenTibiaBR" --- Party List limitations --- max distance in which players in party list are visible --- NOTE partyListMaxDistance set to 0 means no limit +-- Party List Limitations +-- partyListMaxDistance: Max distance for party list visibility. partyListMaxDistance = 30 --- Custom Map --- NOTE: toggleMapCustom set to true will load all maps in custom map folder +-- Custom Map Settings +-- toggleMapCustom: Loads all maps in custom map folder. toggleMapCustom = true --- Market --- NOTE: marketRefreshPricesInterval (in minutes, minimum is 1 minute) --- NOTE: set it to 0 for disable, is the time in which the task will run updating the prices of the items that will be sent to the client +-- Market Settings +-- marketOfferDuration: Duration for market offers. +-- marketRefreshPricesInterval: Interval for refreshing market prices. +-- premiumToCreateMarketOffer: Premium required to create market offer. +-- checkExpiredMarketOffersEachMinutes: Checks for expired market offers every minute. +-- maxMarketOffersAtATimePerPlayer: Max market offers per player. marketOfferDuration = 30 * 24 * 60 * 60 marketRefreshPricesInterval = 30 premiumToCreateMarketOffer = true checkExpiredMarketOffersEachMinutes = 60 maxMarketOffersAtATimePerPlayer = 100 --- MySQL +-- MySQL Settings +-- mysqlHost: MySQL host. +-- mysqlUser: MySQL user. +-- mysqlPass: MySQL password. +-- mysqlDatabase: MySQL database name. +-- mysqlPort: MySQL port. +-- mysqlSock: MySQL socket. +-- passwordType: Password hashing type. mysqlHost = "127.0.0.1" mysqlUser = "root" mysqlPass = "root" @@ -403,24 +450,38 @@ mysqlPort = 3306 mysqlSock = "" passwordType = "sha1" --- NOTE: memoryConst: This is the memory cost for the Argon2 hash algorithm. It specifies the amount of memory that the algorithm will use when calculating a hash. ---The memory cost is measured in units of KiB (1024 bytes). A higher memory cost makes the algorithm more resistant to brute-force and hash-table attacks, but also consumes more memory. --- NOTE: temporaryConst: This is the time cost for the Argon2 hash algorithm. It specifies the amount of computational time that the algorithm will spend when calculating a hash. ---A higher time cost makes the algorithm more secure but also slower. --- NOTE: parallelism: This is the parallelism factor for the Argon2 hash algorithm. It specifies the number of parallel threads that the algorithm will use when calculating a hash. ---In general, a higher level of parallelism can make the algorithm faster on systems with multiple CPU cores, but it can also increase memory usage. --- NOTE: These settings have to be the same on the site and server. +-- Memory Settings +-- memoryConst: Memory cost for Argon2 hash algorithm. +-- temporaryConst: Time cost for Argon2 hash algorithm. +-- parallelism: Parallelism factor for Argon2 hash algorithm. memoryConst = "1<<16" -temporaryConst= 2 +temporaryConst = 2 parallelism = 2 --- Session Auth -authType = "password" -- 'session' | 'password' +-- Session Auth Settings +-- authType: Authentication type. +-- resetSessionsOnStartup: Resets sessions on startup. +authType = "password" resetSessionsOnStartup = false --- Misc. --- NOTE: experienceDisplayRates: set to false to ignore exp rate or true to include exp rate --- NOTE: disableLegacyRaids: set to true to disable legacy XML raids +-- Miscellaneous Settings +-- allowChangeOutfit: Allows changing outfit. +-- toggleMountInProtectionZone: Allows mounts in protection zones. +-- freePremium: Enables free premium. +-- kickIdlePlayerAfterMinutes: Kicks idle players after specified minutes. +-- maxMessageBuffer: Maximum message buffer. +-- emoteSpells: Enables emote spells. +-- allowWalkthrough: Allows walkthrough. +-- coinPacketSize: Size of coin packets. +-- coinImagesURL: URL for coin images. +-- classicAttackSpeed: Enables classic attack speed. +-- showScriptsLogInConsole: Shows scripts log in console. +-- minDelayBetweenConditions: Time to suppress negative conditions. +-- criticalChance: Maximum value of critical imbuement. +-- inventoryGlowOnFiveBless: Enables inventory glow on five blessings. +-- adventurersBlessingLevel: Level for adventurer's blessing. +-- skulledDeathLoseStoreItem: Lose store item on death if skulled. +-- experienceDisplayRates: Displays experience rates. allowChangeOutfit = true toggleMountInProtectionZone = false freePremium = false @@ -432,28 +493,20 @@ coinPacketSize = 25 coinImagesURL = "http://127.0.0.1/images/store/" classicAttackSpeed = false showScriptsLogInConsole = false --- time to suppress negative conditions after being affected by them (ms) minDelayBetweenConditions = 0 --- configure maximum value of critical imbuement criticalChance = 10 inventoryGlowOnFiveBless = false adventurersBlessingLevel = 21 skulledDeathLoseStoreItem = false experienceDisplayRates = true --- configure attack base on Fist Fighting skill/experience --- multiplierSpeedOnFist * 5 (multiplies the value obtained from the player fist skill and multiplies it * 5) max 25 is recommended due minTicks limits else player stop attack --- maxSpeedOnFist 500 miliseconds (The maximum attack speed that can be obtained no matter how high the player has the Fist Fighting skill.) -toggleAttackSpeedOnFist = false -multiplierSpeedOnFist = 5 -maxSpeedOnFist = 500 -disableLegacyRaids = false -disableMonsterArmor = false -minElementalResistance = -200 -maxElementalResistance = 200 -maxDamageReflection = 200 - --- Chain system --- NOTE: combatChainDelay: set to minimum 50 miliseconds + +-- Combat Chain System +-- toggleChainSystem: Enables combat chain system. +-- combatChainDelay: Minimum delay for combat chain. +-- combatChainTargets: Number of targets in combat chain. +-- combatChainSkillFormulaAxe: Skill formula for axe. +-- combatChainSkillFormulaClub: Skill formula for club. +-- combatChainSkillFormulaSword: Skill formula for sword. toggleChainSystem = false combatChainDelay = 50 combatChainTargets = 5 @@ -461,130 +514,16 @@ combatChainSkillFormulaAxe = 0.9 combatChainSkillFormulaClub = 0.7 combatChainSkillFormulaSword = 1.1 --- Global server Save --- NOTE: globalServerSaveNotifyDuration in minutes +-- Global Server Save Settings +-- globalServerSaveNotifyMessage: Enables server save notifications. +-- globalServerSaveNotifyDuration: Duration for save notifications in minutes. +-- globalServerSaveCleanMap: Cleans map on server save. +-- globalServerSaveClose: Closes server on save. +-- globalServerSaveShutdown: Shuts down server on save. +-- globalServerSaveTime: Time for global server save. globalServerSaveNotifyMessage = true globalServerSaveNotifyDuration = 5 globalServerSaveCleanMap = false globalServerSaveClose = false globalServerSaveShutdown = true globalServerSaveTime = "06:00:00" - --- Sort loot by chance, most rare items drop first --- it is good to be setted when you have a higher --- rateLoot to avoid losing all rare items when --- the corpse size is less than the total of loots --- the monster can drop -sortLootByChance = false - --- Rates --- NOTE: rateExp, rateSkill and rateMagic is used when 'rateUseStages = false' - or a fallback only --- To configure rates see file data/stages.lua --- lowLevelBonusExp works up to level 50 -rateUseStages = false -lowLevelBonusExp = 50 -rateExp = 1 -rateSkill = 1 -rateLoot = 1 -rateMagic = 1 -rateSpawn = 1 - --- Killing in the name of Quest -rateKillingInTheNameOfPoints = 1 - --- Today regeneration condition over an loop every 1 second, --- So values which should regenerated less then 1 second or won't will work -rateHealthRegen = 1.0 -rateHealthRegenSpeed = 1.0 -rateManaRegen = 1.0 -rateManaRegenSpeed = 1.0 -rateSoulRegen = 1.0 -rateSoulRegenSpeed = 1.0 - -rateSpellCooldown = 1.0 -rateAttackSpeed = 1.0 -rateOfflineTrainingSpeed = rateAttackSpeed -rateExerciseTrainingSpeed = rateAttackSpeed - --- Monster rates -rateMonsterHealth = 1.0 -rateMonsterAttack = 1.0 -rateMonsterDefense = 1.0 - --- Npc rates -rateNpcHealth = 1.0 - --- Boss rates -rateBossHealth = 1.0 -rateBossAttack = 1.0 -rateBossDefense = 1.0 - -bossDefaultTimeToFightAgain = 20 * 60 * 60 -- 20 hours -bossDefaultTimeToDefeat = 20 * 60 -- 20 minutes - --- Monsters -defaultRespawnTime = 60 -deSpawnRange = 2 -deSpawnRadius = 50 - --- Stamina -staminaSystem = true - --- Scripts -warnUnsafeScripts = true -convertUnsafeScripts = true - --- Startup --- NOTE: defaultPriority only works on Windows and sets process --- priority, valid values are: "normal", "above-normal", "high" -defaultPriority = "high" -startupDatabaseOptimization = true - --- Status server information -ownerName = "OpenTibiaBR" -ownerEmail = "opentibiabr@outlook.com" -url = "http://docs.opentibiabr.com/" -location = "South America" - --- Sends Discord webhook notifications on startup, raids and shutdown. --- The URL layout is https://discord.com/api/webhooks/:id/:token --- Leave empty if you wish to disable. -discordWebhookURL = "" -discordSendFooter = true -discordWebhookDelayMs = 1000 - --- Vip System (Get more info in: https://github.com/opentibiabr/canary/pull/1063) --- NOTE: set vipSystemEnabled to true to enable the vip system functionalities (this overrides premium checks) --- NOTE: vipBonusExp = 0 is deactivated, active changing value between 1 and 100 (percent xp bonus to gain. ex: 3 = 3%, 30 = 30%) --- NOTE: vipBonusLoot = 0 is deactivated, active changing value between 1 and 100 (percent loot bonus to gain. ex: 3 = 3%, 30 = 30%) --- NOTE: vipBonusSkill = 0 is deactivated, active changing value between 1 and 100 (percent skill bonus to gain. ex: 3 = 3%, 30 = 30%) --- NOTE: vipAutoLootVipOnly = activates only vip to get automatic loot, config 'autoLoot' need to be enabled, for this config works --- NOTE: vipStayOnline = when this config is activated, players vip will not be kicked after 'kickIdlePlayerAfterMinutes' config --- NOTE: vipFamiliarTimeCooldownReduction = the minutes that will be debited from the familiar time cooldown for vip accounts, use 0 to deactivate the reduction (the default maximum value is 15, but it is calculated automatically) --- examples: The default config 'familiarTime' is 30, this value is divided by 2 (15 minutes familiar and 15 minutes to cooldown) --- If you use 'vipFamiliarTimeCooldownReduction = 10' the vip players will have only, in this case, 5 minutes of cooldown. --- If you use 'vipFamiliarTimeCooldownReduction' greater than half of 'familiarTime', it will get the highest possible value, in this case 15 --- NOTE: GainCoin function, please configure script: data-otservbr-global/scripts/globalevents/vip/online_coins.lua --- NOTE: GainToken function, please configure script: data-otservbr-global/scripts/globalevents/vip/online_tokens.lua -vipSystemEnabled = false -vipBonusExp = 0 -vipBonusLoot = 0 -vipBonusSkill = 0 -vipAutoLootVipOnly = false -vipStayOnline = false -vipFamiliarTimeCooldownReduction = 0 -vipKeepHouse = false - --- NOTE: set rewardChestCollectEnabled to true to enable the reward collect system --- NOTE set rewardChestMaxCollectItems max items per collect action -rewardChestCollectEnabled = true -rewardChestMaxCollectItems = 200 - --- Metrics ---- Prometheus -metricsEnablePrometheus = false -metricsPrometheusAddress = "0.0.0.0:9464" - ---- OStream -metricsEnableOstream = false -metricsOstreamInterval = 1000