//****************************************************************************
// Copyright 2020 SphereServer development team
// Licensed under the Apache License, Version 2.0 (the "License").
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
//****************************************************************************

///////////////////////////////////////////////////////////////
//////// General Information
///////////////////////////////////////////////////////////////

[SPHERE]
// Name of your Sphere shard
ServName=MyShard
// The IP of your server, this will be 127.0.0.1 almost always
ServIP=127.0.0.1
// The port of your server, this is 2593 by default
ServPort=2593

// REST API URL used to set server public IP on ServIP automatically at server startup
// Enable this if your local IP is behind NAT router/firewall and can't be reached directly
// NOTE: Do not include "http://", and make sure to use an trusted API that return only a plain-text string
//       with the IP address (eg: diagnostic.opendns.com/myip, checkip.amazonaws.com, whatismyip.akamai.com)
//RestAPIPublicIP=

// Admin's contact email
AdminEmail=me@my.email.com
// Web page for this server
URL=www.myshard.com
// GMT offset, from -12 to +12 [London=0, EST=5, etc]
TimeZone=0

// Official staff language
Lang=English

// MySQL configuration
//MySQL=0
//MySQLHost=
//MySQLUser=
//MySQLPassword=
//MySQLDatabase=

///////////////////////////////////////////////////////////////
//////// File Locations
///////////////////////////////////////////////////////////////
// Directory where spheretables.scp is located, from there we will
// load any additional scripts
ScpFiles=scripts/

// Where your sphereworld.scp and spherechars.scp are located
WorldSave=save/

// Where your sphereaccu.scp and sphereacct.scp is located
AcctFiles=accounts/


// UO INSTALLATION  -  Note that if it's not set ( or commented ), sphere will scan windows registry to auto-detect it.
// If windows can't find the dir, then it must point to install's directory.
//
// For Old installations (client less than 7.0.20) this need: map0.mul, statics0.mul,
//  staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul.
// Optional files: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher
//  maps support (Malas, etc).
//
// For newer installs this need the same files in .uop format
//
// A full install folder is recommended as required files may change over time.
//MulFiles=mul/

// Where your log files will be saved by sphere
Log=logs/

// ***WARNING***
// These Map settings are required for a map to be enabled as of revision 1834.
// MAP0 is automatically loaded even if not present here as of revision 1836.
// Disabling one of theses map settings on a live shard will cause it to wipe that map from the saves.
// Remember to comment/uncomment associated sphere_mapX and .scp and sphere_map_pointsX.scp in spheretables.scp

//MapX=MaxX,MaxY,SectorSize,MapReadID,MapSendID
//MapX = Sets X to the given number, so .map X will send work over these settings
//MaxX = Sets Maximum X value for this map's size. Same for MaxY.
//SectorSize = Sets the size of sectors, in each server's tick all sectors for all maps are read in a loop, this should be taken in consideration for performance along with SectorSleep.
//MapReadID = Sets the mapX file to read from muls folder (This means which file will server read for walkchecks).
//MapSendID = Sets the mapX file to read for the client (this can be different than MapReadID but, obviously, not recomended for normal usage).

// Map of Felucca
//Map0=6144,4096,-1,0,0		//Old size
Map0=7168,4096,-1,0,0		//ML size

// Map of Trammel
//Map1=6144,4096,-1,1,1		//Old size
Map1=7168,4096,-1,1,1		//ML size

// Map of Ilshenar
Map2=2304,1600,-1,2,2

// Map of Malas
Map3=2560,2048,-1,3,3

// Map of Tokuno Islands
Map4=1448,1448,-1,4,4

// Map of Ter Mur
Map5=1280,4096,-1,5,5

// To enable the use of MapDif*.mul and StaDif*.mul files, set this to 1 (NOTE: these files were removed on clients 6+).
UseMapDiffs=0

///////////////////////////////////////////////////////////////
//////// World Save Information
///////////////////////////////////////////////////////////////
// How often for Sphere to save your world (minutes)
SavePeriod=20

// How many backup levels to keep (each level means 7 backups done for it, so 10*7=70 backup saves will be stored)
BackupLevels=10

// On would save in the background quietly over a longer period of time, and not interrupt the game
// Off would notify "World save has been initiated" and save faster, but pause the game momentarily
SaveBackground=0

// If EF_DYNAMICBACKSAVE is set: How many sectors should be saved per Backgroundsave-Tick?
SaveSectorsPerTick=1

// If EF_DYNAMICBACKSAVE is set: How many items should the dynamic backsave save at max per Backgroundsave-Tick?
SaveStepMaxComplexity=500

// Save NPC's skills that are bigger or equal to NPCSkillSave. If smaller, reset skill to 0
// NPCSkillSave=10

///////////////////////////////////////////////////////////////
//////// Account Management
///////////////////////////////////////////////////////////////

// Automatically create accounts when client try to login on nonexistent account
AutoAccountCreation=0

// Store password hashed with MD5
Md5Passwords=0

// Default number of chars allowed per account (maximum value is 7)
MaxCharsPerAccount=5

// Min time (in seconds) for a char to exist before delete allowed
MinCharDeleteTime=7*24*60*60

// Max wrong password tries on client login screen before temporary ban client IP (0 = disabled)
ClientLoginMaxTries=10

// Duration (in minutes) of temporary ban to client IPs that reach max wrong password tries
ClientLoginTempBan=3

///////////////////////////////////////////////////////////////
//////// Client Management
///////////////////////////////////////////////////////////////
// What client protocol version used
// Comment out the ClientVersion line to allow any client that is supported.
//ClientVersion=2.0.3

// Set this to 1 to allow login to encrypted clients
UseCrypt=1

// Set this to 1 to allow login to unencrypted clients
UseNoCrypt=0

// Maximum total open connections to server (0 = allow only local connections / 1 = allow only GM accounts)
ClientMax=256

// Maximum open connections to server per IP
ClientMaxIP=16

// Maximum total (not-in-game) connections to server 
ConnectingMax=32

// Maximum total simultaneous (not-in-game) connections to server per IP
ConnectingMaxIp=8

// How long logged out clients linger in seconds
ClientLinger=300

// Walk limiting code: buffer size (in tenths of second)
WalkBuffer=75

// Walk limiting code: regen speed (%)
WalkRegen=25

// Only commands issued by this plevel and higher will be logged
CommandLog=0

// Prefix for ingame commands
CommandPrefix=.

// Set from 0 - 7 to set what the default plevel is to use commands.
DefaultCommandLevel=7

// Function to call if client is executing a command to override the default.
//CommandTrigger=f_oncommand

// Use the built in http server
// 0 - disable http server and webpage generation
// 1 - disable http server and enable webpage generation
// 2 - enable http server and webpage generation (default)
UseHttp=2

// Use the OSI AuthID to avoid possible hijack to game server.
UseAuthID=1

// Set account RESDISP automatically based on player client version
AutoResDisp=1

// How often send my hits updates to visible clients (in seconds)
//HitsUpdateRate=1

///////////////////////////////////////////////////////////////
//////// Game Mechanics
///////////////////////////////////////////////////////////////

// Maximum distance to hear char whispering (client shortcut: ": msg")
//DistanceWhisper=1

// Maximum distance to hear char yelling (client shortcut: "! msg")
//DistanceYell=36

// Do not allow entering under roof being on horse?
MountHeight=0

// Archery does not work if too close (0 = not checked)
ArcheryMinDist=2

// Maximum Distance for Archery
ArcheryMaxDist=15

// Stamina to lose at each step when walking while overweight (NOTE: value is also increased by 1 at each 25 stones exceeded, and divided by 3 on mounted chars)
StaminaLossAtWeight=5

// Stamina penalty % to apply over StaminaLossAtWeight when running (0 = no penalty)
RunningPenalty=100

// Are house and boat keys newbied automatically
AutoNewbieKeys=1

// Maximum number of items allowed in bank
BankMaxItems=1000

// Maximum weight in stones allowed in bank (-1 = unlimited)
BankMaxWeight=1000

// Maximum weight in stones allowed in main backpack (-1 = unlimited)
BackpackMaxWeight=550

// If 1 vendors will take gold only from backpack
PayFromPackOnly=0

// Disable weather effects?
NoWeather=1

// Default light level in dungeons
DungeonLight=27

// Day light level 0-30
LightDay=0

// Night light level 0-30
LightNight=25

// Allow manual sector light override?
//AllowLightOverride=1

// Time (in minutes) to regen wool on sheep NPCs
WoolGrowthTime=30

// Suppress player speech with 75% of capital letters
SuppressCapitals=0

// Extra combat flags to control the fight (default:0, 0.55i compatible)
// COMBATF_NODIRCHANGE			00001 // Not rotate player when fighting (like was in 0.51a)
// COMBATF_FACECOMBAT			00002 // Allow faced combat only (recommended)
// COMBATF_PREHIT				00004 // Allow prehit for close combat. first hit is instant (delay 0.1sec)
// COMBATF_ELEMENTAL_ENGINE		00008 // Use DAM*/RES* to split damage/resist into Physical/Fire/Cold/Poison/Energy (AOS) instead use old AR (pre-AOS)
// COMBATF_MAXITEMDURABILITY	00010 // Make damageable items get destroyed when lose max durability instead current durability
// COMBATF_DCLICKSELF_UNMOUNTS	00020 // Unmount horse when dclicking self while in warmode
// COMBATF_ALLOWHITFROMSHIP		00040 // Allow attacking opponents from ships
// COMBATF_NOPETDESERT			00080 // Allow pet owner attack own pet without make it desert its owner
// COMBATF_ARCHERYCANMOVE		00100 // Allow firing bow while moving
// COMBATF_STAYINRANGE			00200 // Abort attack swing when out of range instead of waiting to come back in range
// COMBATF_ATTACKONNOTICE		00400 // Make target instantly attack back when notice someone trying to attack it
// COMBATF_NPC_NOATTACKMSG		00800 // Disable *is attacking* message on NPCs
// COMBATF_STACKARMOR			01000 // If a region is covered by more than one armor part, all AR will count
// COMBATF_NOPOISONHIT			02000 // Disables old (55i like) poisoning style (0~100% chance based on Poisoning skill for monsters, or 50% chance for poisoned weapons)
//CombatFlags=0

// Delay (in tenths of second) to start next swing on Archery skill after the char stop moving (NOTE: this is only used when COMBATF_ARCHERYCANMOVE is disabled)
// Recommended values by era: pre-AOS=10, AOS=5, SE=2
CombatArcheryMovementDelay=10

// Damage formula to use on physical combat
// 0 = Sphere custom
// 1 = pre-AOS
// 2 = AOS
CombatDamageEra=0

// Hit Chance formula to use on physical combat
// 0 = Sphere custom	// Not compatible with Hit Chance Increase property
// 1 = pre-AOS			// Not compatible with Hit Chance Increase property
// 2 = AOS
CombatHitChanceEra=0

// Swing Speed formula to use on physical combat
// 0 = Sphere custom	// Recommended SpeedScaleFactor = 15000. Old Sphere 0.55 custom formula. Not compatible with Swing Speed Increase property, and uses DEX instead STAM
// 1 = pre-AOS			// Recommended SpeedScaleFactor = 15000. Not compatible with Swing Speed Increase property
// 2 = AOS				// Recommended SpeedScaleFactor = 40000
// 3 = SE 				// Recommended SpeedScaleFactor = 80000
// 4 = ML 				// Doesn't use SpeedScaleFactor. Only compatible with ML speed format (eg. 0.25 ~ 5.00 seconds instead 0 ~ 50), uncomment TAG.OVERRIDE.SPEED on all weapons to enable ML speed format
CombatSpeedEra=0

// Speed scale factor for weapons
SpeedScaleFactor=15000

// Extra magic flags to control magic/magery behaviour (default:0, 0.55i compatible)
// MAGICF_NODIRCHANGE			00001 // Not rotate player when casting/targeting
// MAGICF_PRECAST				00002 // Precasting (cast spell before target prompt)
// MAGICF_IGNOREAR				00004 // Magic damage ignore ar
// MAGICF_CANHARMSELF			00008 // Magic can do damage on self
// MAGICF_STACKSTATS			00010 // Different stat spells don't cancel each other out
// MAGICF_FREEZEONCAST			00020 // No movement whilst casting
// MAGICF_SUMMONWALKCHECK		00040 // Summoned creatures should be able to walk on the target location (e.g. water creatures to be summoned on water)
// MAGICF_NOFIELDSOVERWALLS		00080 // Field spells cannot cross over blocking objects
// MAGICF_NOANIM				00100 // Auto SPELLFLAG_NO_ANIM in every spell
// MAGICF_OSIFORMULAS			00200 // Calculate spell damage and duration based on OSI formulas
// MAGICF_NOCASTFROZENHANDS		00400 // Can't cast spells if got paralyzed holding something on hands
// MAGICF_POLYMORPHSTATS		00800 // Polymorph spells give out stats based on base chars (old behaviour backwards)
// MAGICF_OVERRIDEFIELDS		01000 // Prevent cast multiple field spells on the same tile, making the new field tile remove the previous field
//MagicFlags=0

// Max amount of each Stat gained through Polymorph spell. This affects separatelly to each stat.
MaxPolyStats=150

// Racial traits flags
// RACIALF_HUMAN_STRONGBACK		0001 // Increase carrying capacity (+60 stones of weight)
// RACIALF_HUMAN_TOUGH			0002 // Regenerate hitpoints faster (+2 Hit Point Regeneration)
// RACIALF_HUMAN_WORKHORSE		0004 // Find more resources while gathering hides, ore and lumber
// RACIALF_HUMAN_JACKOFTRADES	0008 // Skill calculations always consider 20.0 minimum ability on untrained skills
// RACIALF_ELF_NIGHTSIGHT		0010 // Permanent night sight effect
// RACIALF_ELF_DIFFTRACK		0020 // Increase difficulty to be tracked while hidden/invisible
// RACIALF_ELF_WISDOM			0040 // Permanent max mana bonus (+20 Mana Increase)
// RACIALF_GARG_FLY				0080 // Enable gargoyle fly ability (FEATURE_AOS_UPDATE_B is required to enable gargoyle ability book)
// RACIALF_GARG_BERSERK			0100 // Increase ferocity in situations of danger (15% Damage Increase + 3% Spell Damage Increase for each 20hp lost)
// RACIALF_GARG_DEADLYAIM		0200 // Throwing calculations always consider 20.0 minimum ability when untrained
// RACIALF_GARG_MYSTICINSIGHT	0400 // Mysticism calculations always consider 30.0 minimum ability when untrained
RacialFlags=0

// Reveal flags related to Invisibility spell
// REVEALF_DETECTINGHIDDEN		001 // Reveal when someone use Detecting Hidden skill
// REVEALF_LOOTINGSELF			002 // Reveal when loot self bodies (NOTE: chars hidden by Hiding skill will be always revealed by default)
// REVEALF_LOOTINGOTHERS		004 // Reveal when loot others bodies (NOTE: chars hidden by Hiding skill will be always revealed by default)
// REVEALF_SPEAK				008 // Reveal when speak
// REVEALF_SPELLCAST			010 // Reveal when cast spells
RevealFlags=01|02|04|08|010

// Time (in seconds) for a char to remember his attacker, used by ATTACKER.x property (default = 300)
AttackerTimeout=300

// Time (in seconds) for a player to choose a target when casting spells (0 = no timeout)
SpellTimeout=0

// Zero point for sextant coordinates counting (comment this line out if you are not using ML maps)
ZeroPoint=1323,1624,0

// How far from land i can be to take off a ship
//MaxShipPlankTeleport=18

// Enable death screen animation on classic clients (on enhanced clients this is always enabled)
PacketDeathAnimation=1

// List of static chat channels to create on server startup
ChatStaticChannels=General, Help, Trade, Looking For Group

// Chat flags for both new (clients >= 7.0.4.1) and old (clients < 7.0.4.1) chat system
// CHATF_AUTOJOIN				001 // Auto join first static channel available (new chat system: join after client login / old chat system: join after open chat window)
// CHATF_CHANNELCREATION		002 // Enable channel creation
// CHATF_CHANNELMODERATION		004 // Enable channel moderation (old chat system only)
// CHATF_CUSTOMNAMES			008 // Enable custom name selection when open chat window for the first time (old chat system only)
// CHATF_GLOBALCHAT				010 // Enable global chat system on clients >= 7.0.62.2 (INCOMPLETE)
ChatFlags=01|02|04|08

///////////////////////////////////////////////////////////////
//////// NPC/Item/Player Management
///////////////////////////////////////////////////////////////

// Distance in tiles before an NPC that's wandered too far from it's home will teleport back
LostNPCTeleport=50

// Whether PCs get a resurrection robe when they get resurrected.
NoResRobe=0

// Time (in minutes) for a NPC corpse decay
CorpseNPCDecay=7

// Time (in minutes) for a player corpse decay
CorpsePlayerDecay=7

// Ghosts are not able to see and hear living players and creatures (0=disabled, 1=only npcs, 2=both npcs and players)
DeadCannotSeeLiving=0

// At this Spirit Speak skill level players can understand ghosts speech instead hear 'oOOoO ooO'
MediumCanHearGhosts=1000

// Time (in minutes) for a item decay
DecayTimer=30

// Show [NPC] tags over chars
CharTags=0

// Show job title on vendor names (NOTE: enhanced clients require vendor trade title to make buy/sell gump work, so don't disable this setting if enhanced client is allowed on server)
VendorTradeTitle=1

// Flip dropped items
FlipDroppedItems=0

// Max amount allowed for stackable items (can't be higher than 65535)
ItemsMaxAmount=60000

// Monsters run when scared of death
MonsterFear=0

// Monsters may fight each other
MonsterFight=0

// Percent setting of the all NPC move rate, default 100
MoveRate=100

// Do players receive sounds
GenericSounds=1

// Max number of items to sell to one person at once
VendorMaxSell=255

// Cost (in gp) of each 0.1 skill trained on NPCs
NPCTrainCost=1

// Max level npc trainers can go
NPCTrainMax=420

// Percent of own ability npcs can train to
NPCTrainPercent=30

// NPC will not be addressed as "Lord" or such if this is set
NPCNoFameTitle=1

// Max level of skill trainable on dummies, archery butte ecc..
SkillPracticeMax=300

// Max skill player's will start with on skills they haven't chosen during
// character creation
MaxBaseSkill=200

// Time (in seconds) for hitpoint regeneration (0 = no regen)
Regen0=40

// Time (in seconds) for mana regeneration (0 = no regen)
Regen1=20

// Time (in seconds) for stamina regeneration (0 = no regen)
Regen2=10

// Time (in seconds) for food decay (0 = no regen)
// 60*60*24 = 1 day of real life time
Regen3=60*60*24

// Speech block associated to players
SpeechSelf=spk_player

// Speech block associated to pets
SpeechPet=spk_pet

// Events related to all NPCs
//EventsPet=your_event

// Events related to all players
//EventsPlayer=your_event

// Events related to all regions
//EventsRegion=your_event

// Events related to all items
//EventsItem=your_event

// When player skills/stats goes this times more than skillclass allowed, drop
// them to skillclass level. Setting this to 0 disables the action.
OverSkillMultiply=2

// NPC AI settings
// NPC_AI_PATH				0001	Enable advanced NPC pathfinding engine (this can significantly increase server CPU usage)
// NPC_AI_FOOD				0002	Enable basic NPC food search (objects + grass) when hungry
// NPC_AI_EXTRA				0004	Make NPCs human (brain_human) equip/unequip weapons on combat or light sources at night
// NPC_AI_ALWAYSINT			0008	Make NPC_AI_PATH consider all NPCs as smart as possible to find better paths
// NPC_AI_INTFOOD			0010	Enable advanced NPC food search (more intelligent and trusworthy) when hungry
// NPC_AI_COMBAT			0040	Make NPCs cast good spells in his friends while in combat
// NPC_AI_LOOTING			0100	Make NPCs loot nearby items and corpses
// NPC_AI_MOVEOBSTACLES		0200	Make NPCs with CAN=mt_usehands able to move items blocking its way
// NPC_AI_PERSISTENTPATH	0400	Make NPCs try to follow its target even when it is unreachable instead give up
// NPC_AI_THREAT			0800	Make NPCs select combat target based on highest threat level (damage done) instead closest distance
//NPCAI=0

///////////////////////////////////////////////////////////////
//////// Crime/Murder/Karma/Fame/Guard Settings
///////////////////////////////////////////////////////////////
// Lowest karma level a character can achieve
MinKarma=-10000

// Highest karma level a character can achieve
MaxKarma=10000

// Highest fame level a character can achieve
MaxFame=10000

// Karma when player goes from good to neutral (from -10000 to 10000)
PlayerNeutral=-2000

// Karma when player goes from neutral to evil (from -10000 to 10000)
PlayerEvil=-8000

// How many minutes are criminals flagged for
CriminalTimer=3

// Chance to get flagged criminal when using Snooping skill (0% - 100%)
SnoopCriminal=100

// Set if opening a container in a trade window needs to be open using Snooping skill or not (1=true,0=false)
TradeWindowSnooping=1

// Time (in seconds) to decay a murder count (default 8*60*60 is 8 hours)
MurderDecayTime=8*60*60

// Amount of murders before we get title
MurderMinCount=1

// Looting or carving a blue player is a crime
LootingIsaCrime=1

// Attacking is considered a crime (even without hit)
AttackingIsaCrime=1

// Flag players criminal for helping criminals?
HelpingCriminalsIsaCrime=1

// How long do guards linger about in minutes
GuardLinger=3

// Will guards kill instantly or follow normal combat rules
GuardsInstantKill=1

// Will guards attack Murderers and Criminals (1) or criminals only (0)
GuardsOnMurderers=1

// Limits the MAXHITS/MAXMANA/MAXSTAM changes
// STAT_FLAG_NORMAL		00 // MAX* status allowed (default)
// STAT_FLAG_DENYMAX	01 // MAX* denied
// STAT_FLAG_DENYMAXP	02 //             .. for players
// STAT_FLAG_DENYMAXN	04 //             .. for npcs
StatsFlags=0

// Uses the new LoS algorithm
// ADVANCEDLOS_DISABLED	00 // Disabled, use the old method
// ADVANCEDLOS_PLAYER	01 // Enabled only for players
// ADVANCEDLOS_NPC		02 // Enabled only for NPCs
AdvancedLos=0

// Default color settings for characters names (notoriety)
//ColorNotoGood=059			// blue
//ColorNotoGuildSame=03f	// green (ally)
//ColorNotoNeutral=03b2		// grey (can be attacked)
//ColorNotoCriminal=03b2	// grey (criminal)
//ColorNotoGuildWar=090		// orange (enemy guild)
//ColorNotoEvil=022			// red
//ColorNotoInvul=035		// yellow
//ColorNotoInvulGameMaster=0b	// purple
//ColorNotoDefault=03b2		// grey (if not any other)

ColorInvis=0			// 04001 = transparent color, 0 = default
ColorInvisSpell=0		// 04001 = transparent color, 0 = default (This one is for s_invisibility spell, this includes the invis potion.)
ColorHidden=0			// 04001 = transparent color, 0 = default

// Which notoriety flags do pets inherit from their masters? (default 0)
// Set flags to indicate which notoriety statuses a pet can inherit from its owner.
// NotoGood			001 // blue
// NotoGuildSame	002 // green (ally)
// NotoNeutral		004 // grey (can be attacked)
// NotoCriminal		008 // grey (criminal)
// NotoGuildWar		010 // orange (enemy guild)
// NotoEvil			020 // red
// NotoInvul		040 // yellow
// e.g. "07a" will show pets as criminal/warring/evil/allied/invul when their master has one of these statuses, regardless of the pet's true notoriety.
PetsInheritNotoriety=0

// Time (in seconds) to cache character on notoriety list (0 = no timeout)
NotoTimeout=30

///////////////////////////////////////////////////////////////
//////// Server Mechanics
///////////////////////////////////////////////////////////////
// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
// EF_NoDiagonalCheckLOS		000001 // Disable LOS checks on diagonal directions
// EF_DynamicBackgroundSave		000002
// EF_ItemStacking				000004 // Enable item stacking feature when drop items on ground
// EF_ItemStackDrop				000008 // The item stack will drop when an item got removed from the stack
// EF_FastWalkPrevention		000010 // Use new client fastwalk prevention instead old WalkBuffer/WalkRegen checks. To avoid false-positive results, make sure that your OS/CPU/BIOS have HPET (High Precision Event Timer) feature enabled
// EF_Intrinsic_Locals			000020 // Disables the needing of 'local.', 'tag.', etc. Be aware of not creating variables with the same name of already-existing functions
// EF_Item_Strict_Comparison	000040 // Don't consider log/board and leather/hide as the same resource type
// EF_AllowTelnetPacketFilter	000200 // Enable packet filtering for telnet connections as well
// EF_Script_Profiler			000400 // Record all functions/triggers execution time statistics (it can be viewed pressing P on console)
// EF_UsePingServer				008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
// EF_FixCanSeeInClosedConts	020000 // Change CANSEE to return 0 for items inside containers that a client hasn't opened
Experimental=0

// Option flags
// Flags for options that affect server behaviour but not compatibility
// See the revisions.txt file for more details on this
// OF_NoDClickTarget			000001 // Weapons won't open a target in the cursor after DClicking them for equip.
// OF_NoSmoothSailing			000002 // Disable boat smooth sailing feature on clients >= 7.0.9.0
// OF_ScaleDamageByDurability	000004 // Weapons/armors will lose DAM/AR effect based on it's current durability (pre-AOS)
// OF_Command_Sysmsgs			000008 // Shows status of hearall, allshow, allmove... commands after toggling them
// OF_PetSlots					000010 // Enable AOS pet follower slots on chars. If enabled, all players must have MAXFOLLOWER property set (default=5)
// OF_OSIMultiSight				000020 // Only send items inside multis when the player enter on the multi area
// OF_Items_AutoName			000040 // Auto rename potions/scrolls to match its spell name
// OF_FileCommands				000080 // Enable the usage of FILE commands
// OF_NoItemNaming				000100 // Disable the DEFMSG."grandmaster_mark" in crafted items
// OF_NoHouseMuteSpeech			000200 // Players outside multis won't hear what is told inside
// OF_MapBoundarySailing		000800 // Boats will move to the other side of the map when reach map boundary
// OF_Flood_Protection			001000 // Prevent the server send messages to client if its the same message as the last already sent
// OF_Buffs						002000 // Enable the buff/debuff bar on ML clients >= 5.0.2b
// OF_NoPrefix					004000 // Don't show "a" and "an" prefix on item names
// OF_DyeType					008000 // Allow use i_dye on all items with t_dye_vat typedef instead only on i_dye_tub itemdef
// OF_DrinkIsFood				010000 // Typedef t_drink will increase food level like t_food
// OF_NoDClickTurn				020000 // Don't turn the player when DClick or targ an item
OptionFlags=01|08|020|0200|0800|02000|020000

// T2A expansion features
// FEATURE_T2A_UPDATE			01 // Monster and Lost lands
// FEATURE_T2A_CHAT				02 // In game chat
FeatureT2A=01|02

// LBR expansion features
// FEATURE_LBR_UPDATE			01 // Lbr Monsters
// FEATURE_LBR_SOUND			02 // MP3 instead of MIDI
FeatureLBR=0

// AOS expansion features
// FEATURE_AOS_UPDATE_A			01 // AOS Monsters, Map
// FEATURE_AOS_UPDATE_B			02 // Tooltip, Fightbook, Necro/paladin on creation, Single/Six char selection screen, Skills, Newer spellbook support
// FEATURE_AOS_POPUP			04 // PopUp Menus
// FEATURE_AOS_DAMAGE			08 // Show damage values above char head when deal/receive any damage
FeatureAOS=0

// SE expansion features
// FEATURE_SE_UPDATE			01 // Basic SE features
// FEATURE_SE_NINJASAM			02 // Ninja and Samurai
FeatureSE=0

// ML expansion features
// FEATURE_ML_UPDATE			01 // Basic ML features
FeatureML=0

// KR expansion features (still not complete but usable)
// FEATURE_KR_UPDATE			01 // Basic KR features
FeatureKR=0

// SA expansion features
// FEATURE_SA_UPDATE			01 // Unlocks gargoyle character creation and housing items
// FEATURE_SA_MOVEMENT			02 // Activates new movement packets (not good)
FeatureSA=0

// TOL expansion features
// FEATURE_TOL_UPDATE			01 // Basic TOL features
// FEATURE_TOL_VIRTUALGOLD		02 // Use virtual gold/platinum currency instead default 'physical' gold
FeatureTOL=0

// Misc expansion features
// FEATURE_EXTRA_CRYSTAL		001 // Unlocks ML crystal/shadow items on house design
// FEATURE_EXTRA_GOTHIC			002 // Unlocks SA gothic items on house design
// FEATURE_EXTRA_RUSTIC			004 // Unlocks SA rustic items on house design
// FEATURE_EXTRA_JUNGLE			008 // Unlocks TOL jungle items on house design
// FEATURE_EXTRA_SHADOWGUARD	010 // Unlocks TOL shadowguard items on house design
// FEATURE_EXTRA_ROLEPLAYFACES	020 // Unlocks extra roleplay face styles on character creation (enhanced clients only)
FeatureExtra=0

// In game effects to turn on and off
// Messages echoed to the server console while in debug mode
// DEBUGF_NPC_EMOTE			00001
// DEBUGF_ADVANCE_STATS		00002
// DEBUGF_EXP				00200 // experience gain/loss
// DEBUGF_LEVEL				00400 // experience level changes
// DEBUGF_SCRIPTS			00800 // debug flag for scripts
// DEBUGF_LOS				01000 // debug flag for AdvancedLOS
// DEBUGF_WALK				02000 // debug flag for new walking check stuff
// DEBUGF_PACKETS			04000 // log packets to file
// DEBUGF_NETWORK			08000 // debug flags for networking
//DebugFlags=0

// Allow rapid Buy/Sell through Buy/Sell agent
AllowBuySellAgent=0

// Secure mode attempts to ignore errors, protect from accidently shutdowns
Secure=1

// Value from 1 to 32, set sectors inactive when unused to conserve resources, 0 disables Sleep (NOT recommended).
SectorSleep=10

// Always force a full garbage collection on save
ForceGarbageCollect=1

// Time (in seconds) before restarting when server appears hung
FreezeRestartTime=60

// Length of the game world minute in real world in seconds
GameMinuteLength=20

// Bit Mask of the subjects you want to log when logging is on
// LOGM_ACCOUNTS		000080 // account login/operations
// LOGM_INIT			000100 // start up messages
// LOGM_SAVE			000200 // world save
// LOGM_CLIENTS_LOG		000400 // all clients as they log in and out
// LOGM_GM_PAGE			000800 // player gm pages
// LOGM_PLAYER_SPEAK	001000 // all that the players say
// LOGM_GM_CMDS			002000 // all gm commands
// LOGM_CHEAT			004000 // possible cheat attempts
// LOGM_KILLS			008000 // player combat results
// LOGM_HTTP			010000 // http protocol operations
LogMask=080|0100|0200|0400|0800|01000|02000|04000|08000|010000

// Time (in seconds) to cache map data
MapCacheTime=120

// Max NPC chars for a sector to prevent lag
MaxComplexity=32

// Amount of items in one tile so start showing "too many items here"
MaxItemComplexity=25

// Amount of items in one sector to start showing "x items too complex"
MaxSectorComplexity=1024

// Limit the number of cycles the while/for loop can proceed. Setting this to
// zero disables the limitation
MaxLoopTimes=0

// Amount of minutes to call f_onserver_timer (0 disables this, default)
TimerCall=0

// Should sphere record the time it takes to do actions like treating npcs, scripts, clients and such?
// Can be viewed by right clicking the mouse on sphere screen.
Profile=0

///////////////////////////////////////////////////////////////
//////// Magic/Effects Settings
///////////////////////////////////////////////////////////////

// Allow casting while equipped
EquippedCast=1

// Words of power for player using magic
WOPPlayer=1

// Words of power for staff using magic
WOPStaff=0

// Words of power font
//WOPFont=3

// Words of power color (0 = inherit color from char SPEECHCOLOR value)
//WOPColor=03b2

// Reagents lost if magic fails
ReagentLossFail=0

// Magic requires reagents
ReagentsRequired=0

// What % of hitpoints players will resurrect with
HitPointPercentOnRez=10

// How many % of hits will the character loose when starving. 0 disables
//HitsHungerLoss=0

// Amount of skill of lock picking needed to unlock a magically locked door
MagicUnlockDoor=900

// Teleport effect for GMs and players. Setting 0 disables the effect
TeleportEffectNPC=0376a
TeleportEffectPlayers=03728
TeleportEffectStaff=03709
TeleportSoundNPC=01fe
TeleportSoundPlayers=01fe
TeleportSoundStaff=01f3

///////////////////////////////////////////////////////////////
//////// Experience and Level system
///////////////////////////////////////////////////////////////

// Enable experience system
//ExperienceSystem=0

// Experience system settings
// 001	Gain experience in combat
// 002	Gain experience in crafts
// 004	Allow experience to go down
// 008	Limit experience decrease by a range within current level
// 010	Auto-init EXP/LEVEL for NPCs if not set in @Create
//ExperienceMode=0

// If combat experience gain is allowed, use these percents for gaining exp in
// Player versus Monster and Player versus Player combats. Value 0 disables gain.
//ExperienceKoefPVM=100
//ExperienceKoefPVP=100

// Enable levels system (as a part of experience system)
//LevelSystem=0

// Level system settings
// 0 = Linear		// Level up at each LevelNextAt exp
// 1 = Double		// Level up at each (LevelNextAt * (level + 1)) exp
//LevelMode=1

// Amount of experience to raise to the next level
//LevelNextAt=0

///////////////////////////////////////////////////////////////
//////// Network Behaviour
///////////////////////////////////////////////////////////////
// WARNING: These are advanced settings that should not normally be changed from the recommended default values!

// Disconnect inactive socket in x min
DeadSocketTime=5

// Maximum number of packets to send per tick
MaxPacketsPerTick=50

// Number of connections a client can make before being blocked
MaxPings=15

// Maximum number of packets before lowering packet priorities (0 for no limit)
MaxQueueSize=75

// Maximum number of bytes to send per tick (also governs maximum size of outgoing packets)
MaxSizePerTick=18000

// Time (in seconds) to remember previous connection history
NetTTL=300

// Prioritize outgoing packets (provides a smoother experience in crowded areas)
UsePacketPriority=0

// Enables an additional buffer for outgoing data
UseExtraBuffer=1

// Tooltip modes
// 0 = Always send full tooltip
// 1 = Wait for client to request full tooltip
TooltipMode=1

// Time (in seconds) to cache tooltip data
TooltipCache=30

///////////////////////////////////////////////////////////////
//////// Third-Party Tools Support
///////////////////////////////////////////////////////////////

// Axis / TNG
// Path where STRIP console command will strip an index of all script templates to use with Axis / TNG
//  on Windows the path format is "\foo\bar\"
//  on Linux the path format is "/foo/bar/"
StripPath=scripts/web/

// ConnectUO
// Enable or disable the response to ConnectUO pings
// If enabled, it returns: Items, Chars, Clients and Memory
CUOStatus=1

// UOGateway
// Enable or disable the response to UOGateway pings
// If enabled, it returns: Name, Age, Clients, Items, Chars and Memory
UOGStatus=1

[RESOURCELIST]
ITEMDEF
CHARDEF

///////////////////////////////////////////////////////////////
//////// Webpage Settings
///////////////////////////////////////////////////////////////

// Note, that you can catch error codes by creating sphere404.htm and so on
// for all HTTP error codes sphere support.

[WEBPAGE 1]
// Determines what html file is used as base for the status page
WebPageSrc=scripts/web/spherestatusbase.html
// Determines where the status page is saved
WebPageFile=scripts/web/status.html
// In seconds, how often the status file is updated
WebPageUpdate=60
// Required PLevel to view this page (0 = anyone, 6 = admins only)
PLevel=0

///////////////////////////////////////////////////////////////
//////// Abuse Control
///////////////////////////////////////////////////////////////

// Block these ips from the server
// 255 is a wildcard, so 255.255.255.255 disables anyone connecting.
[BlockIP]
//123.34.45.56
//123.45.56.78

///////////////////////////////////////////////////////////////
//////// Connection Information
///////////////////////////////////////////////////////////////

//First line should be the name of your shard (this is what people see when they connect)
//Second line should be the IP of your shard (this is almost always 127.0.0.1)
//Third line should be the port of your shard (this should be whatever ServPort is set to)

//Uncomment next 3 lines below this if you have a router
//First line should be a name different than your shard name above this
//Second line should be your real/external IP (www.whatismyip.com)
//Third line should be the shard port (this should be whatever ServPort is set to)
[SERVERS]
MyShard
127.0.0.1
2593

//External
//my.ip.goes.here
//2593

[EOF]
