# llGetEnv

*LSL function*

```lsl
string string llGetEnv(string name);
```

- `string name`: Name of the regional data to request (unrecognized strings return an empty string).

- Returns: `string`
- Energy: 10

Note that the value returned is a string, you may need to cast it to an integer for use in calculations.

Returns a [string](https://wiki.secondlife.com/wiki/string) with the requested data about the [region](https://wiki.secondlife.com/wiki/region).

```lsl title="How to use" frame="terminal"
string result = llGetEnv("");
```

## Specification

**Table of valid **name** values.**

| Name | Description | Type to typecast to |
| --- | --- | --- |
| "agent_limit" | Get the maximum number of avatars normally allowed on this region (teleport home, and login to last location, are allowed to exceed this). | [integer](https://wiki.secondlife.com/wiki/integer) |
| "agent_limit_max" | Get the maximum configurable setting for number of agents in the region. | [integer](https://wiki.secondlife.com/wiki/integer) |
| "agent_reserved" | Get the number of agent slots reserved for premium members in the region. | [integer](https://wiki.secondlife.com/wiki/integer) |
| "agent_unreserved" | Get the number of unreserved (non-premium) agent slots configured for the region. | [integer](https://wiki.secondlife.com/wiki/integer) |
| "dynamic_pathfinding" | Get the region's effective dynamic_pathfinding status, "enabled" or "disabled". This option is configured in the [Region Debug Console](https://wiki.secondlife.com/wiki/SimConsole) | N/A |
| "estate_id" | Numerical index identifying which estate a region belongs to. Main grid mainland is "1" | [integer](https://wiki.secondlife.com/wiki/integer) |
| "estate_name" | "mainland", "Linden Homes", "My Happy Estate", etc. | N/A |
| "frame_number" | Get the frame number of the simulator, for example "42042". | [integer](https://wiki.secondlife.com/wiki/integer) |
| "region_cpu_ratio" | Get number of regions per CPU for this region type. Returns "1" or "4". | [integer](https://wiki.secondlife.com/wiki/integer) |
| "region_idle" | Get the region's [idle](http://community.secondlife.com/t5/Second-Life-Server/Region-Idling-FAQ/m-p/1535497) status, "1" or "0". | [integer](https://wiki.secondlife.com/wiki/integer) [boolean](http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29) |
| "region_product_name" | Get the type of region this is: "Estate / Full Region", "Mainland / Homestead", "Estate / Openspace", "Estate / Full Region - Skill Gaming" etc. | N/A |
| "region_product_sku" | Get the region's product number (as string). | N/A |
| "region_start_time" | Get the time the region was last (re)started, in [llGetUnixTime](/functions/llGetUnixTime/) format | [integer](https://wiki.secondlife.com/wiki/integer) |
| "sim_channel" | Get the region's [channel](https://wiki.secondlife.com/wiki/Het-Grid_FAQ#what-is-a-channel-3f) string, for example "Second Life Server". | N/A |
| "sim_version" | Get the region's [version number](https://wiki.secondlife.com/wiki/Version_numbering#second-life-server-versioning) string, for example "10.11.30.215699". | N/A |
| "simulator_hostname" | Get the simhost running this region. Same as [llGetSimulatorHostname](/functions/llGetSimulatorHostname/) but without the script delay. | N/A |
| "region_max_prims" | Get the maximum number of prims allowed on this region. | [integer](https://wiki.secondlife.com/wiki/integer) |
| "region_object_bonus" | Get the region's object bonus factor. | [float](https://wiki.secondlife.com/wiki/float) |
| "whisper_range" | Get the range for whispered chat in the region. | [float](https://wiki.secondlife.com/wiki/float) |
| "chat_range" | Get the range for spoken chat in the region. | [float](https://wiki.secondlife.com/wiki/float) |
| "shout_range" | Get the range for shouted chat in the region. | [float](https://wiki.secondlife.com/wiki/float) |
| "region_rating" | Get the maturity rating of the region. Same as [DATA_SIM_RATING](/constants/DATA_SIM_RATING/) from [llRequestSimulatorData](/functions/llRequestSimulatorData/). | N/A |
| "grid" | Get the [grid](https://wiki.secondlife.com/wiki/Land#grid) the region is running on. | N/A |
| "allow_damage_adjust" | Are scripts allowed to adjust damage. Allowed by default. | [integer](https://wiki.secondlife.com/wiki/integer) [boolean](http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29) |
| "restrict_combat_log" | Whether scripts are restricted from writing into the combat log. Allowed by default. | [integer](https://wiki.secondlife.com/wiki/integer) [boolean](http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29) |
| "restore_health" | Is health reset to 100% on death. On by default. | [integer](https://wiki.secondlife.com/wiki/integer) [boolean](http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29) |
| "invulnerability_time" | invulnerability time applied after avatar death. 0.0 by default. | [float](https://wiki.secondlife.com/wiki/float) |
| "damage_throttle" | The maximum number of points of damage a single source may inflict on a target per second. 0.0s by default. | [float](https://wiki.secondlife.com/wiki/float) |
| "health_regen_rate" | The speed of health regeneration in hitpoints per second. 1/6s by default. | [float](https://wiki.secondlife.com/wiki/float) |
| "death_action" | Set the action to take when an avatar dies in the region. Teleport home by default. 0 = Teleport home 1 = Teleport to parcel landing point. 2 = Teleport to region telehub. 3 = No action | [integer](https://wiki.secondlife.com/wiki/integer) |
| "damage_limit" | The maximum number of points of damage that may be delivered by a single bullet or a single call to [llDamage](/functions/llDamage/). If 0, there is no limit. | [float](https://wiki.secondlife.com/wiki/float) |

## Examples

<details open>
<summary>Example 1</summary>

```lsl
default
{
    touch_start(integer total_number)
    {
        string version = llGetEnv("sim_version");
        llOwnerSay("Region " + llGetRegionName() + " is running "
                   + llGetEnv("sim_channel") + " version " + version );

        list ver = llParseString2List(version, ["."], []);

        llOwnerSay("Build: "+llList2String(ver, 3));
        llOwnerSay("Build Date: "+llList2String(ver, 2)+"-"+llList2String(ver, 1)+"-20"+llList2String(ver, 0));
    }
}
```

</details>

## Notes

- Region idling lowers a region's framerate when no avatars are currently on or looking into the region. Scripts measuring time dilation with [llGetRegionTimeDilation](/functions/llGetRegionTimeDilation/) may report significant time dilation if the region is idle.

## History

- [SVC-4874](https://jira.secondlife.com/browse/SVC-4874)
- Introduced in [Second Life RC LeTigre 10.11.30.215699](https://wiki.secondlife.com/wiki/Release_Notes/Second_Life_RC_LeTigre/10#10-11-30-215699), deployed on 2010-12-01.
- Deployed to rest of Agni with Second Life Server 10.11.30.215699, Second Life RC BlueSteel 10.12.06.216207, Second Life RC Magnum 10.11.30.215699
- "frame_number" option added in Second Life RC BlueSteel 12.01.03.247042
- Returns an integer that represents the current 'frame' of the simulator. Generally only useful for specific debugging cases.
- Removed (temporarily?) in Second Life RC BlueSteel 12.01.06.247303

## See also

### Functions

- [llRequestSimulatorData](/functions/llRequestSimulatorData/)
- [llGetSimulatorHostname](/functions/llGetSimulatorHostname/)
- [llGetRegionFlags](/functions/llGetRegionFlags/)

---

*Source: [LlGetEnv](https://wiki.secondlife.com/wiki/LlGetEnv) on the Second Life Wiki. Content from the Second Life Wiki article LlGetEnv (revision 1217168, 2024-08-23), CC BY-SA 3.0.*

---

From lsl.dev: https://lsl.dev/functions/llGetEnv/
