; Enable OSSL functions.
; Including this file in a region's set of INI files, causes the OpenSimulator
;   specific functions to be enabled.
; See http://opensimulator.org/wiki/Category:OSSL_Functions for a description of OSSL functions
; do not edit this file.
; copy the line you want to change and paste it on osslEnable.ini, then change there


[OSSL]
  ; Allow the use of os* functions (some are always available)
  AllowOSFunctions = true

  ; Allow the user of mod* functions.  This allows a script to pass messages
  ;   to a region module via the modSendCommand() function and is used by some
  ;   modules to extend the scripting language.
  AllowMODFunctions = true

  ; Allow the use of LightShare functions.
  ; The setting enable_windlight = true must also be enabled in the [LightShare] section.
  AllowLightShareFunctions = true

  ; Send function permission error to owner if true, to all if false
  PermissionErrorToOwner = false
  
  ; Function Threat level
  ; Several functions have a predefined threat level, one of:  None, VeryLow, Low, Moderate, High, VeryHigh, Severe.
  ; See http://opensimulator.org/wiki/Threat_level for more information on these levels.
  ; Blanket enabling the ossl functions is dangerous and we do not recommend setting higher
  ;   than 'Low' unless you have a high level of trust in all the users that can run scripts
  ;   in your simulator.  It is safer to explicitly allow certain types of user to run
  ;   higher threat level OSSL functions, as detailed later on.
  ; This setting defines the highest level allowed to execute
  OSFunctionThreatLevel = VeryLow

  ; The threat level can be replaced by more detailed rules by lines of the form
  ; Allow_FunctionName = parameters
  ; To use the default threat level coment the respective line
  ; parameters can be:
  ; 'false' disables the function.
  ; 'true' enables for everyone
  ;  or to enable for individuals or groups, set it to a comma separated list. This checks
  ;    against the owner of the object containing the script.
  ;    The comma separated entries in the list may be one of:
  ;           "GRID_GOD" -- enable for users with UserLevel >= 200
  ;           "GOD" -- enable for users with rights to be god (local or grid)
  ;           "ACTIVE_GOD" -- enable for users that are present and with active god power
  ;           "ESTATE_MANAGER" -- enable for estate manager
  ;           "ESTATE_OWNER" -- enable for estate owner
  ;           "PARCEL_OWNER" -- enable for parcel owner
  ;           "PARCEL_GROUP_MEMBER" -- enable for any member of the parcel group
  ;           uuid -- enable for specified ID (may be avatar or group ID)
  ;    from this we can also create macros that can be include in the list as
  ;    ${OSSL|macroname} see examples below

  ; parcel macros
  ; Allowing ossl functions for anyone owning a parcel can be dangerous especially if
  ;    a region is selling or otherwise giving away parcel ownership. By default, parcel
  ;    ownership or group membership does not enable OSSL functions. Uncomment the
  ;    appropriate line below to allow parcel ownership and groups to do restricted
  ;    OSSL functions. It might be better to check the list below and edit the ones
  ;    to enable individually.
  osslParcelO = ""
  osslParcelOG = ""
  ; osslParcelO = "PARCEL_OWNER,"
  ; osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER,"

  ; NPC macros
  ; These can be mis-used so limit use to those you can trust.
  osslNPC = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  
  ; The threat level also can be replaced by lines of the form
  ; Creators__FunctionName = comma separated list of UUIDs
  ; this will enable the function for users that are the script creators and owners of the prim


  ; *************************************************

  ; ThreatLevel  None
  Allow_osGetAgents =               ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetAvatarList =           ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  ;Allow_osGetGender =               true
  ;Allow_osGetHealth =               true
  ;Allow_osGetHealRate =             true
  Allow_osGetNPCList =              ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  ;Allow_osGetRezzingObject =        true
  ;Allow_osGetSunParam =             true
  Allow_osNpcGetOwner =             ${OSSL|osslNPC}
  Allow_osSetSunParam =             ESTATE_MANAGER,ESTATE_OWNER
  Allow_osTeleportOwner =           ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  ;Allow_osWindActiveModelPluginName = true

  ; ThreatLevel  Nuisance
  Allow_osSetEstateSunSettings =    ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetRegionSunSettings =    ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  VeryLow
  Allow_osEjectFromGroup =          ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceBreakAllLinks =      ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceBreakLink =          ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetWindParam =            true
  Allow_osInviteToGroup =           ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osReplaceString =           true
  Allow_osSetDynamicTextureData =       ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureDataFace =   ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureDataBlend =  ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureDataBlendFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetParcelMediaURL =       ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetParcelMusicURL =       ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetParcelSIPAddress =     ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetPrimFloatOnWater =     true
  Allow_osSetWindParam =            ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osTerrainFlush =            ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  Low
  Allow_osAvatarName2Key =          ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osFormatString =            true
  Allow_osKey2Name =                ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osListenRegex =             true
  Allow_osLoadedCreationDate =      ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osLoadedCreationID =        ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osLoadedCreationTime =      ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osMessageObject =           ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osRegexIsMatch =            true
  Allow_osGetAvatarHomeURI =        ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osNpcSetProfileAbout =      ${OSSL|osslNPC}
  Allow_osNpcSetProfileImage =      ${OSSL|osslNPC}
  Allow_osDie =                     ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  Moderate
  Allow_osDetectedCountry =         ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osDropAttachment =          ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osDropAttachmentAt =        ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetAgentCountry =         ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetGridCustom =           ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetGridGatekeeperURI =    ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetGridHomeURI =          ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetGridLoginURI =         ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetGridName =             true
  Allow_osGetGridNick =             true
  Allow_osGetNumberOfAttachments =  ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetRegionStats =          ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetSimulatorMemory =      ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetSimulatorMemoryKB =    ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osMessageAttachments =      ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osReplaceAgentEnvironment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetSpeed =                ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetOwnerSpeed =           ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osRequestURL =              ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osRequestSecureURL =        ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel High
  Allow_osCauseDamage =             ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osCauseHealing =            ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetHealth =               ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetHealRate =             ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceAttachToAvatar =     ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceAttachToAvatarFromInventory = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceCreateLink =         ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceDropAttachment =     ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osForceDropAttachmentAt =   ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetLinkPrimitiveParams =  ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetPhysicsEngineType =    true
  Allow_osGetRegionMapTexture =     ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetScriptEngineName =     true
  Allow_osGetSimulatorVersion =     true
  Allow_osMakeNotecard =            ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osMatchString =             true
  Allow_osNpcCreate =               ${OSSL|osslNPC}
  Allow_osNpcGetPos =               ${OSSL|osslNPC}
  Allow_osNpcGetRot =               ${OSSL|osslNPC}
  Allow_osNpcLoadAppearance =       ${OSSL|osslNPC}
  Allow_osNpcMoveTo =               ${OSSL|osslNPC}
  Allow_osNpcMoveToTarget =         ${OSSL|osslNPC}
  Allow_osNpcPlayAnimation =        ${OSSL|osslNPC}
  Allow_osNpcRemove =               ${OSSL|osslNPC}
  Allow_osNpcSaveAppearance =       ${OSSL|osslNPC}
  Allow_osNpcSay =                  ${OSSL|osslNPC}
  Allow_osNpcSayTo =                ${OSSL|osslNPC}
  Allow_osNpcSetRot =               ${OSSL|osslNPC}
  Allow_osNpcShout =                ${OSSL|osslNPC}
  Allow_osNpcSit =                  ${OSSL|osslNPC}
  Allow_osNpcStand =                ${OSSL|osslNPC}
  Allow_osNpcStopAnimation =        ${OSSL|osslNPC}
  Allow_osNpcStopMoveToTarget =     ${OSSL|osslNPC}
  Allow_osNpcTouch =                ${OSSL|osslNPC}
  Allow_osNpcWhisper =              ${OSSL|osslNPC}
  Allow_osOwnerSaveAppearance =     ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osParcelJoin =              ESTATE_MANAGER,ESTATE_OWNER
  Allow_osParcelSubdivide =         ESTATE_MANAGER,ESTATE_OWNER
  Allow_osRegionRestart =           ESTATE_MANAGER,ESTATE_OWNER
  Allow_osRegionNotice =            ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetProjectionParams =     ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetRegionWaterHeight =    ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetTerrainHeight =        ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetTerrainTexture =       ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetTerrainTextureHeight = ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  VeryHigh
  Allow_osAgentSaveAppearance =     ESTATE_MANAGER,ESTATE_OWNER
  ; Warning: The next function allows scripts to force animations on avatars without the user giving permission.
  ;   Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations.
  ;   Similar things can be said for several of the 'force' functions. Enable with care and control.
  ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions.
  Allow_osAvatarPlayAnimation =     false
  Allow_osAvatarStopAnimation =     false
  Allow_osForceAttachToOtherAvatarFromInventory = false
  Allow_osForceDetachFromAvatar =   false
  Allow_osForceOtherSit =           false
  ; The notecard functions can cause a lot of load on the region if over used
  Allow_osGetNotecard =             ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetNotecardLine =         ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osGetNumberOfNotecardLines = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureURL =    ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureURLBlend = ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetDynamicTextureURLBlendFace = ESTATE_MANAGER,ESTATE_OWNER
  Allow_osSetRot  =                 false
  Allow_osSetParcelDetails =        ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  Severe
  Allow_osConsoleCommand =          false
  Allow_osKickAvatar =              ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osTeleportAgent =           ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
  Allow_osTeleportObject =          ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER

  ; ThreatLevel  Severe with additional internal restrictions
  Allow_osGetAgentIP =              false  ; always restricted to Administrators (true or false to disable)
  Allow_osSetContentType =          false


; Always available
; see http://opensimulator.org/wiki/Category:OSSL_Functions

;; do no remove this line
Include-osslEnable = "config-include/osslEnable.ini"