#=========================================================================================================================
#                                             General Server Settings
#=========================================================================================================================
# Purpose:
#	This properties file is for the general settings of the server.
# 
# Note: 
#	The defaults are set to retail, if you modify any of these settings your server will NOT be "retail-like".
# 
# Warning: 
#	Please take extreme caution when changing anything. Also please understand what you change before you do so on
# 	a live server.
#=========================================================================================================================

#============================================================#
#                       Administrator                        #
#============================================================#

# If this option is set to true every newly created character will have access level 200.
# This means that every character created will have Administrator Privileges
# Retail: false
EverybodyHasAdminRights = False

# Setting for serverList
# Displays [] in front of server name on character selection
# Retail: false
ServerListBrackets = False
# Displays a clock next to the server name on character selection.
# Retail: false
ServerListClock = False
# If true, only accounts with GM access will enter, 
# regardless of Character access level. 
# Retail: false
ServerGMOnly = False

# Enable GMs to have the glowing aura of a Hero character on
# character login. 
# GM can do "///hero" on themselves and get this aura voluntarily.
# Advised to keep this off due to graphic lag.
# Retail: false
GMHeroAura = False

# Auto set invulnerable status to a GM on login.
# Retail: false
GMStartupInvulnerable = False

# Auto set invisible status to a GM on login.
# Retail: false
GMStartupInvisible = False

# Auto block private messages to a GM on login.
# Retail: false
GMStartupSilence = False

# Auto list GMs in GM list (/gmlist) on login.
# Retail: false
GMStartupAutoList = True

# The way //admin panel looks can be "modern" or "classic" 
# (default is modern while classic provides more compatibility)
# Retail: modern
GMAdminMenuStyle = modern

#============================================================#
#                      Server Security                       #
#============================================================#

# Bypass exploit protection, to ENABLE protection, set to true.
# To disable protection set this to false.
# Retail: true
BypassValidation = True

# Enforce gameguard for clients
#   GameGuardEnforce - enforces gameguard query on character login
#   GameGuardProhibitAction - don't allow player to perform trade, talk with npc
#     or move until gameguard reply is received.
# Retail: true, true
GameGuardEnforce = True
GameGuardProhibitAction = True

# To enable chat logging set option to true, otherwise set to false.
# To enable item logging set option to true, otherwise set to false.
# To enable GM Action logging set option to true, otherwise set to false.
# Note:
#		This will increase writing to your hard drive and rapidly
#		increase hard drive space used with large player populations
#		if enabled.
# Retail: true, false, false
LogChat = True
LogItems = False
GMAudit = False

#============================================================#
#                     Dev Configuration                      #
#============================================================#
# Do not touch these if you do not know what you are doing.
# These settings are for debugging servers ONLY, not meant for LIVE
# servers.

Debug = False
Assert = False
Developer = False
AcceptGeoeditorConn = False

# if true the server will be a test server (listed by testserver clients only)
TestServer = False
# if this is true then test servers will be listed like test servers.
ListTestServers = False
# Don't load quests
AltDevNoQuests = False
# Don't load spawntable
AltDevNoSpawns = False

#============================================================#
#                   Thread Configuration                     #
#============================================================#
# Extreme caution should be here, set to defaults if you do
# not know what you are doing.
# These could possibly hurt your servers performance, or improve 
# it drastically.

ThreadPoolSizeEffects = 10
ThreadPoolSizeGeneral = 13

#Default 2
UrgentPacketThreadCoreSize = 2
#Default 4
GeneralPacketThreadCoreSize = 4
#Default 4
GeneralThreadCoreSize = 4

AiMaxThread = 6

#Packet LifeTime in milliseconds, 0 - disabled feature
PacketLifeTime = 0

#============================================================#
#                         Optimize                           #
#============================================================#

# === Flood Protector ===
# set the initial size of the flood protector (should equal ~player count)
FloodProtectorInitialSize = 50
# === Items on ground management ===
# Allow players to drop items on the ground
AllowDiscardItem = True
# delete from world dropped reward items after n seconds. 0 - disabled
AutoDestroyDroppedItemAfter = 0
# Time in secs after which dropped herb will be auto-destroyed (default: 15 seconds)
AutoDestroyHerbTime = 15
# List of items that will not be destroyed (separated by ",")
# NOTE: Make sure the lists do NOT CONTAIN trailing spaces or spaces between the numbers!
# items on this list will be protected regardless below options
ListOfProtectedItems = 57,5575,6673

# This is the interval (in minutes), that the gameserver will update a players information such as location.
# The higher you set this number, there will be less character information saving so you will have less access to MySQL and your Hard Drive.
# The lower you set this number, there will be more frequent character information saving so you will have more access to your MySQL and your Hard Drive.
# A value of 0 disables periodic saving.
# Independent of this setting the character is always saved after leaving the world.
CharacterDataStoreInterval = 15

# This enables the server to only update items when saving the character
# Enabling this greatly reduces DB usage and improves performance.
# WARNING: This option causes item loss during crashes
LazyItemsUpdate = false

# This forces(even if using lazy item updates) the items owned by the character to be updated into DB when saving its character
# Increases DB usage
UpdateItemsOnCharStore = false

# also delete from world misc. items dropped by players (all except equip-able items)
# NOTE: work only if AutoDestroyDroppedItemAfter >0
DestroyPlayerDroppedItem = false
# Destroy also equip-able items (armor, weapon, jewelry)
# NOTE: Work only if DestroyPlayerDroppedItem = true
DestroyEquipableItem = false

# save into DB dropped items for restoring after reboot
SaveDroppedItem = false
# Empty table after items are loaded into memory - safety setting
# if server crash before saving items, on next start old items will be restored 
# and players may already picked up some of them - so this will prevent duplicates
EmptyDroppedItemTableAfterLoad = false
# Time interval in minutes to save in DB items on ground, 0 to disable
# NOTE: If SaveDroppedItemInterval is disabled items will be saved into DB only at server shutdown
SaveDroppedItemInterval = 60
# delete all saved items form DB On next start
# NOTE: Work only if SaveDroppedItem = false
ClearDroppedItemTable = false
--------------------------------------------
# delete invalid quest from player
AutoDeleteInvalidQuestData = False
# setting false can improve server performance on high rate servers
PreciseDropCalculation = True
# allows creating multiple nonstackable items at one time 
MultipleItemDrop = True

# Forces full item inventory packet to be sent for any item change
# Note: This can increase network traffic 
ForceInventoryUpdate = False

# Set the html cache's lazy loading True or False
# (Load html's into cache only on first time requested)
LazyCache = True

# Minimum and maximum variable in seconds for npc animation delay.
# You must keep MinNPCAnimation <= MaxNPCAnimation.
# "0" is default value.
MinNPCAnimation = 10
MaxNPCAnimation = 20
MinMonsterAnimation = 5
MaxMonsterAnimation = 20

# This is setting of experimental Client <--> Server Player coordinates synchronization,
#   0 - no synchronization at all
#   1 - partial synchronization Client --> Server only * using this option it is difficult for players to bypass obstacles
#   2 - partial synchronization Server --> Client only
#   3 - full synchronization Client <--> Server
#  -1 - Will synchronize Z only. Suggested with geodata.
CoordSynchronize = -1

# Knownlist (the list of things a character sees) update method. Default is currently
# time based updating, which also makes it possible to use config options for guards 
# to see moving monsters. Alternatively move based update can be used to cut down CPU
# use. Guards cannot track mobs with that option but otherwise it should
# work well. 
MoveBasedKnownlist = False

#============================================================#
#                         Geodata                            #
#============================================================#

#Grid options: Grids can now turn themselves on and off.  This also affects
#the loading and processing of all AI tasks and (in the future) geodata 
#within this grid.
#Turn on for a grid with a person in it is immediate, but it then turns on 
#the 8 neighboring grids based on the specified number of seconds.
#Turn off for self and neighbors occurs after the specified number of 
#seconds have passed during which a grid has had no players in or in 
#any of its neighbors.
#The always on option allows to ignore all this and let all grids be active
#at all times (not suggested)
GridsAlwaysOn = False
GridNeighborTurnOnTime = 1
GridNeighborTurnOffTime = 90

# GeoData options: (no recommendations, for each his own) 
# 0 = GeoData and PathFinding OFF (default)
# 1 = GeoData is used to check Line Of Sight (LOS) targeting and 
#     L2Playable movement. You need to download files for data/geodata folder.
#     Monsters can pass walls but not aggro (no line of sight) through them.
# 2 = Full GeoData enabled. Includes PathFinding (requires also /data/pathnode 
#     files) and all character moves go through geodata checks (if a mob 
#     passes a wall, pathfinding didn't find a route but we allow attack).
#     Recommended server memory minimum 2 GB, rather 3 GB.
GeoData = 0

#[True]Loads GeoData buffer's content into physical memory.
#[False] Does not necessarily imply that the GeoData buffer's content is not resident in physical memory.
ForceGeodata = True

#============================================================#
#                         Features                           #
#============================================================#

# Zone Setting
#   0 = Peace All the Time
#   1 = PVP During Siege for siege participants
#   2 = PVP All the Time
ZoneTown = 0

# Activate the position recorder
# valid 3D points will be recorded and written to data/universe.txt on shutdown
ActivatePositionRecorder = False

# Chat configuration
# Global Chat - ON (=region), OFF, GM, GLOBAL
GlobalChat = ON
# Trade Chat - ON (=global, might be good for small servers), OFF, GM, LIMITED (=region)
TradeChat = LIMITED

# If you are experiencing problems with Warehouse or Freight transactions,
# feel free to disable them here. (They are both enabled by default).
AllowWarehouse   = True
# Enable Warehouse Cache - if WH is not used will server clear memory used by this WH
WarehouseCache   = False
# How long Warehouse should be store in Memory
WarehouseCacheTime = 15
AllowFreight     = True
# If True player can try on weapon and armor in shop
# Each Item tried cost WearPrice adena
AllowWear        = False
WearDelay        = 5
WearPrice        = 10
# =============== Test features ===============
AllowLottery     = False
AllowRace        = False
AllowWater       = True
# Enable pet for rent(wyvern&strider) from pet managers
AllowRentPet     = False
# Allow fishing disabled until all code uploaded
AllowFishing     = True
#Allow boat
AllowBoat        = True
#Allow cursed weapons
AllowCursedWeapons = True
#Allow Manor
AllowManor		 = True
#Allow WalkerNPC
AllowNpcWalkers = True


# Show "data/html/servnews.htm" when a character enters world.
ShowServerNews = False

# Type of the Community board
#  - Full = new Community Board ( /!\ Experimental)
#  - Old = old Community Board
#  - off =  no community Board
CommunityType = old
BBSShowPlayerList = False
BBSDefault = _bbshome
# show level of character to others in Community Board
ShowLevelOnCommunityBoard = False
ShowStatusOnCommunityBoard = True
NamePageSizeOnCommunityBoard = 50
NamePerRowOnCommunityBoard = 5

#============================================================#
#                         Olympiad                           #
#============================================================#

# Olympiad Start Time in Military hours Default 6pm (18) 
AltOlyStartTime = 18

# Olympiad Start Time for Min's, Default 00 so at the start of the hour.
AltOlyMin = 00

# Olympiad Competition Period, Default 6 hours.
# (If set different, should be increment by 10mins)
AltOlyCPeriod = 21600000

# Olympiad Battle Period, Default 6 minutes. (If set different, should be < AltOlyBWait)
AltOlyBattle = 360000

# Olympiad Battle Wait, Default 10 Minutes
AltOlyBWait = 600000

# Olympiad Initial Wait Period, Default 5 minutes
AltOlyIWait = 300000

# Olympiad Weekly Period, Default 1 week
AltOlyWPeriod = 604800000

# Olympiad Validation Period, Default 24 Hours.
AltOlyVPeriod = 86400000

# Required number of participants for Classed and Non-Classed matches, Default 5 & 9
AltOlyClassedParticipants = 5
AltOlyNonClassedParticipants = 9

# Olympiad battle winner reward for Class and Non_Class games.
# Retail 6651(Gate Pass) 
AltOlyBattleRewItem = 6651
# Retail 50 per winning
AltOlyClassedRewItemCount = 50
# Retail 30 per winning
AltOlyNonClassedRewItemCount = 30

# Olympiad Competition Rewards
# Minimum Points needed to to exchange nobless gate pass, Retail 50
AltOlyMinPointForExchange = 50
# ItemId for this Reward, Retail 6651(Gate Pass)
AltOlyCompRewItem = 6651
# Rate to exchange Points to Reward item, Retail 1 Point * 1000
AltOlyGPPerPoint = 1000

# Noblesse points awarded to Heros. Retail 300
AltOlyHeroPoints = 300

# Restrict same item in olympiad. ItemID's need to be separated whit coma (ex. 1,200,350)
AltOlyRestrictedItems = 0

#============================================================#
#                           Manor                            #
#============================================================#

# Manor Refresh Time in Military hours Default 8pm (20) 
AltManorRefreshTime = 20

# Manor Refresh Time for Min's, Default 00 so at the start of the hour.
AltManorRefreshMin = 00

# Manor Next Period Approve Time in Military hours Default 6am 
AltManorApproveTime = 6

# Manor Next Period Approve Time for Min's, Default 00 so at the start of the hour.
AltManorApproveMin = 00

# Manor Maintenance time, Default 6 minutes. 
AltManorMaintenancePeriod = 360000

# Manor Save Type. 1-Save data into db after every action; Default false
AltManorSaveAllActions = True

# Manor Save Period (used only if AltManorSaveAllActions=false) Default very 2 hours
AltManorSavePeriodRate = 2

#============================================================#
#                          Lottery                           #
#============================================================#

# Initial Lottery prize
AltLotteryPrize = 50000

# Lottery Ticket Price
AltLotteryTicketPrice = 2000

# What part of jackpot amount should receive characters who pick 5 wining numbers
AltLottery5NumberRate = 0.6

# What part of jackpot amount should receive characters who pick 4 wining numbers
AltLottery4NumberRate = 0.2

# What part of jackpot amount should receive characters who pick 3 wining numbers
AltLottery3NumberRate = 0.2

# How much adena receive characters who pick two or less of the winning number
AltLottery2and1NumberPrize = 200

#============================================================#
#                      Dimension Rift                        #
#============================================================#

# Minimal party size to enter rift. Min = 2, Max = 9.
# If in rift party will become smaller all members will be teleported back
# Default: 2
RiftMinPartySize = 2

# Number of maximum jumps between rooms allowed, after this time party will be teleported back
MaxRiftJumps = 4

# Time in ms the party has to wait until the mobs spawn when entering a room. C4 retail: 10s
RiftSpawnDelay = 10000

# Time between automatic jumps in seconds
AutoJumpsDelayMin = 480
AutoJumpsDelayMax = 600

# Time Multiplier for stay in the boss room
BossRoomTimeMultiply = 1.5

# Cost in dimension fragments to enter the rift, each party member must own this amount
RecruitCost = 18
SoldierCost = 21
OfficerCost = 24
CaptainCost = 27
CommanderCost = 30
HeroCost = 33

#============================================================#
#                        Punishment                          #
#============================================================#

# Player punishment for illegal acions
#   1 - broadcast warning to gms only
#   2 - kick player(default)
#   3 - kick & ban player
#   4 - jail player (define minutes of jail with param: 0 = infinite)
DefaultPunish = 2
DefaultPunishParam = 0

# Apply default punish if player buy items for zero adena.
# Retail: true
OnlyGMItemsFree = True
# Jail is a PvP zone
JailIsPvp = True
# Disable all chat in jail (except normal one)
JailDisableChat = True

#============================================================#
#                   Database Customizations                  #
#============================================================#

# Option to store additional spawnlist data on a custom table.
CustomSpawnlistTable = false

# Option to save GM spawn only in the custom table.
SaveGmSpawnOnCustom = false

# Option to delete spawn in alternate table.
DeleteGmSpawnOnCustom = false

# Option to store additional npc data on a custom table.
CustomNpcTable = false

# Option to store additional Items data on custom tables.
CustomEtcitemTable = false
CustomArmorTable = false
CustomArmorSetsTable = false
CustomWeaponTable = false

# Option to store additional Teleport location on a custom table.
CustomTeleportTable = false

# Option to store alternative drop on a custom table.
CustomDroplistTable = false

# Option to store alternative merchant data on a custom table.
CustomMerchantTables = false