; This is the main configuration file for an instance of OpenSim running in standalone mode

[DatabaseService]
    ;
    ; ### Choose the DB
    ;

    ; SQLite
    Include-Storage = "config-include/storage/SQLiteStandalone.ini";

    ; MySql
    ; Uncomment these lines if you want to use mysql storage
    ; Change the connection string to your db details
    ;StorageProvider = "OpenSim.Data.MySQL.dll"
    ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"

    ; Uncomment this line if you are using MySQL and want to use a different database for estates.
    ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database.
    ; Most people won't need to do this so only uncomment if you know what you're doing.
    ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"

    ; MSSQL
    ; Uncomment these lines if you want to use MSSQL storage
    ; Change the connection string to your db details
    ; The value for server property is shown in your SQL Server Management Studio login dialog.
    ; (This sample is the default of express edition)
    ;StorageProvider = "OpenSim.Data.MSSQL.dll"
    ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;"

[Modules]
    ;; Choose one cache module and the corresponding config file, if it exists.
    ;; Copy the config .example file into your own .ini file and alter that
    ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained.

    AssetCaching = "FlotsamAssetCache"
    Include-FlotsamCache = "config-include/FlotsamCache.ini"

    ;AssetCaching = "CenomeMemoryAssetCache"
    ;Include-CenomeCache = "config-include/CenomeCache.ini"

    ;AssetCaching = "GlynnTuckerAssetCache"

    ;; Authorization is not on by default, as it depends on external php
    ;AuthorizationServices = "LocalAuthorizationServicesConnector"

[AssetService]
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"


[GridService]
    ;; For in-memory region storage (default)
    StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
    ;;--- For MySql region storage (alternative)
    ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"

    ;; Directory for map tile images of remote regions
    ; MapTileDirectory = "./maptiles"

    ;; Next, we can specify properties of regions, including default and fallback regions
    ;; The syntax is: Region_<RegioName> = "<flags>"
    ;; where <flags> can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut
    ;; For example:
    Region_Welcome_Area = "DefaultRegion, FallbackRegion"

    ; === HG ONLY ===
    ;; change this to the address of your simulator
    Gatekeeper="http://127.0.0.1:9000"

[LibraryModule]
    ; Set this if you want to change the name of the OpenSim Library
    ;LibraryName = "My World's Library"

[LoginService]
    WelcomeMessage = "Welcome, Avatar!"
    GatekeeperURI = "http://127.0.0.1:9000"

    SRV_HomeURI = "http://127.0.0.1:9000"    
    SRV_InventoryServerURI = "http://127.0.0.1:9000"
    SRV_AssetServerURI = "http://127.0.0.1:9000"
    SRV_ProfileServerURI = "http://127.0.0.1:9000"
    SRV_FriendsServerURI = "http://127.0.0.1:9000"
    SRV_IMServerURI = "http://127.0.0.1:9000"

    ;; For Viewer 2
    MapTileURL = "http://127.0.0.1:9000/"

    ;; Ask co-operative viewers to use a different currency name
    ;Currency = ""

    ;; Regular expressions for controlling which client versions are accepted/denied.
    ;; An empty string means nothing is checked.
    ;;
    ;; Example 1: allow only these 3 types of clients (any version of them)
    ;; AllowedClients = "Imprudence|Hippo|Second Life"
    ;;
    ;; Example 2: allow all clients except these
    ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
    ;;
    ;; Note that these are regular expressions, so every character counts.
    ;; Also note that this is very weak security and should not be trusted as a reliable means
    ;; for keeping bad clients out; modified clients can fake their identifiers.
    ;;
    ;;
    ;AllowedClients = ""
    ;DeniedClients = ""


[FreeswitchService]
    ;; If FreeSWITCH is not being used then you don't need to set any of these parameters
    ;;
    ;; The IP address of your FreeSWITCH server.  The common case is for this to be the same as the server running the OpenSim standalone
    ;; This has to be set for the FreeSWITCH service to work
    ;; This address must be reachable by viewers.
    ;ServerAddress = 127.0.0.1

    ;; The following configuration parameters are optional

    ;; By default, this is the same as the ServerAddress
    ; Realm = 127.0.0.1

    ;; By default, this is the same as the ServerAddress on port 5060
    ; SIPProxy = 127.0.0.1:5060

    ;; Default is 5000ms
    ; DefaultTimeout = 5000

    ;; The dial plan context.  Default is "default"
    ; Context = default

    ;; Currently unused
    ; UserName = freeswitch

    ;; Currently unused
    ; Password = password

    ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
    ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
    ;; stun.freeswitch.org is not guaranteed to be running so use it in
    ;; production at your own risk    
    ; EchoServer = 127.0.0.1
    ; EchoPort = 50505
    ; AttemptSTUN = false

[GridInfoService]
    ; These settings are used to return information on a get_grid_info call.
    ; Client launcher scripts and third-party clients make use of this to
    ; autoconfigure the client and to provide a nice user experience. If you
    ; want to facilitate that, you should configure the settings here according
    ; to your grid or standalone setup.
    ;
    ; See http://opensimulator.org/wiki/GridInfo

    ; login uri: for grid this is the login server URI
    login = http://127.0.0.1:9000/

    ; long grid name: the long name of your grid
    gridname = "the lost continent of hippo"

    ; short grid name: the short name of your grid
    gridnick = "hippogrid"

    ; login page: optional: if it exists it will be used to tell the client to use
    ;                       this as splash page
    ; currently unused
    ;welcome = http://127.0.0.1/welcome

    ; helper uri: optional: if it exists if will be used to tell the client to use
    ;                       this for all economy related things
    ; currently unused
    ;economy = http://127.0.0.1:9000/

    ; web page of grid: optional: page providing further information about your grid
    ; currently unused
    ;about = http://127.0.0.1/about/

    ; account creation: optional: page providing further information about obtaining
    ;                             a user account on your grid
    ; currently unused
    ;register = http://127.0.0.1/register

    ; help: optional: page providing further assistance for users of your grid
    ; currently unused
    ;help = http://127.0.0.1/help

    ; password help: optional: page providing password assistance for users of your grid
    ; currently unused
    ;password = http://127.0.0.1/password

    ; HG address of the gatekeeper, if you have one
    ; this is the entry point for all the regions of the world
    ; gatekeeper = http://127.0.0.1:9000/

    ; HG user domain, if you have one
    ; this is the entry point for all user-related HG services
    ; uas = http://127.0.0.1:9000/

[MapImageService]
	; Set this if you want to change the default
	; TilesStoragePath = "maptiles"

[AuthorizationService]
	; If you have regions with access restrictions
	; specify them here using the convention
	; Region_<Region_Name> = <flags>
	; Valid flags are:
	; DisallowForeigners -- HG visitors not allowed
	; DisallowResidents -- only Admins and Managers allowed
	; Example:
	; Region_Test_1 = "DisallowForeigners"

;;
;; HG configurations
;;
[GatekeeperService]
    ExternalName = "http://127.0.0.1:9000"

    ; Does this grid allow incoming links to any region in it?
    ; If false, HG TPs happen only to the  Default regions specified in [GridService] section
    AllowTeleportsToAnyRegion = true

	;; Regular expressions for controlling which client versions are accepted/denied.
	;; An empty string means nothing is checked.
	;;
	;; Example 1: allow only these 3 types of clients (any version of them)
	;; AllowedClients = "Imprudence|Hippo|Second Life"
	;;
	;; Example 2: allow all clients except these
	;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
	;;
	;; Note that these are regular expressions, so every character counts.
	;; Also note that this is very weak security and should not be trusted as a reliable means
	;; for keeping bad clients out; modified clients can fake their identifiers.
	;;
	;;
    ;AllowedClients = ""
    ;DeniedClients = ""

    ;; Are foreign visitors allowed?
    ;ForeignAgentsAllowed = true
    ;;
    ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
    ;; Leave blank or commented for no exceptions.
    ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
    ;;
    ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
    ;; Leave blank or commented for no exceptions.
    ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"

[UserAgentService]
    ;; User level required to be contacted from other grids
    ;LevelOutsideContacts = 0

    ;; Restrictions on destinations of local users.
    ;; Are local users allowed to visit other grids?
    ;; What user level? Use variables of this forrm:
    ;; ForeignTripsAllowed_Level_<UserLevel> = true | false
	;; (the default is true)
    ;; For example:
    ; ForeignTripsAllowed_Level_0 = false
    ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it
    ;;
    ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept
    ;; Leave blank or commented for no exceptions.
    ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002"
	;;
    ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
    ;; Leave blank or commented for no exceptions.
    ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"

[HGInventoryService]
    HomeURI = "http://127.0.0.1:9000"

[HGAssetService]
    HomeURI = "http://127.0.0.1:9000"

    ;; The asset types that this grid can export to / import from other grids.
	;; Comma separated.
	;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
	;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, 
	;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh 
	;;
	;; Leave blank or commented if you don't want to apply any restrictions.
	;; A more strict, but still reasonable, policy may be to disallow the exchange 
	;; of scripts, like so:
    ; DisallowExport ="LSLText"
    ; DisallowImport ="LSLBytecode"


[HGInventoryAccessModule]
    HomeURI = "http://127.0.0.1:9000"
	Gatekeeper = "http://127.0.0.1:9000"

    ;; If you want to protect your assets from being copied by foreign visitors
    ;; uncomment the next line. You may want to do this on sims that have licensed content.
	;; true = allow exports, false = disallow exports. True by default.
    ; OutboundPermission = True

	;; Send visual reminder to local users that their inventories are unavailable while they are traveling
	;; and available when they return. True by default.
	;RestrictInventoryAccessAbroad = True

[HGFriendsModule]
    ; User level required to be able to send friendship invitations to foreign users
    ;LevelHGFriends = 0;

[Messaging]
    ; === HG ONLY ===
    ;; change this to the address of your simulator
    Gatekeeper = "http://127.0.0.1:9000"


[EntityTransfer]
	;; User level from which local users are allowed to HG teleport. Default 0 (all users)
	;LevelHGTeleport = 0

	;; Are local users restricted from taking their appearance abroad?
	;; Default is no restrictions
    ;RestrictAppearanceAbroad = false

	;; If appearance is restricted, which accounts' appearances are allowed to be exported?
	;; Comma-separated list of account names
    AccountForAppearance = "Test User, Astronaut Smith"
