LlSetAgentEnvironment
Looking for the current API? Open the llSetAgentEnvironment reference →
Wiki description
This function sets environment values for an individual agent in an experience. The changes to the environment persist until the agent moves to a new region or llSetAgentEnvironment is called for an agent with an empty list. Passing an empty list in params will strip all environmental settings applied to this agent as part of the experience
Specification
| Value | Constant | Description |
|---|---|---|
| ENV_OK | 1 | The agent has been instructed to change their environment. |
| ENV_NOT_EXPERIENCE | -1 | The script is not running as part of an experience with a valid experience key. |
| ENV_NO_EXPERIENCE_PERMISSION | -2 | The agent has not granted permission. |
| ENV_NO_ENVIRONMENT | -3 | The environment inventory object could not be found. |
| ENV_INVALID_AGENT | -4 | Unable to find specified agent. |
| ENV_INVALID_RULE | -5 | There was an issue with one of the rules. |
| ENV_VALIDATION_FAIL | -6 | Unable to validate values passed. |
| ENV_NO_EXPERIENCE_LAND | -7 | The experience has not been enabled or can not run on the land. |
| ENV_THROTTLE | -8 | The scripts have exceeded the throttle. Wait and retry the request. |
Parameters
| parameter | integer value | values to set | description |
|---|---|---|---|
| SKY_CLOUDS | 2 | vector color, float coverage, float scale, float variance, vector scroll, vector density, vector detail | Environmental cloud information:
|
| SKY_CLOUD_TEXTURE | 19 | string texture_ident | Name of item in inventory or UUID for texture to be used for the clouds. |
| SKY_DOME | 4 | float offset, float radius, float max_altitude | Sky dome information.
|
| SKY_GAMMA | 5 | float gamma | The gamma value applied to the scene. range = [0,20] |
| SKY_GLOW | 6 | float glow_size, float glow_focus | Glow applied to the sun and moon.
|
| SKY_MOON | 9 | rotation rot, float scale, float brightness | Detailed moon information:
|
| SKY_MOON_TEXTURE | 20 | string texture_ident | Name of texture in inventory or UUID for texture to be used for the moon. |
| SKY_STAR_BRIGHTNESS | 13 | float brightness | Brightness value applied to stars. range = [0,500] |
| SKY_SUN | 14 | rotation rot, float scale, vector sun_color | Detailed sun information:
|
| SKY_SUN_TEXTURE | 21 | string texture_ident | Name of texture in inventory or UUID for texture to be used for the sun. |
| SKY_PLANET | 10 | float planet_radius, float sky_bottom_radius, float sky_top_radius | Planet information used in rendering the sky.
|
| SKY_REFRACTION | 11 | float moisture_level, float droplet_radius, float ice_level | Sky refraction parameters for rainbows and optical effects.
|
| WATER_BLUR_MULTIPLIER | 100 | float multiplier | Multiplier applied to blur the scene when under water. range = [-0.5, 0.5] |
| WATER_FOG | 101 | vector color, float density, fload modulation | Fog parameters applied when underwater:
|
| WATER_FRESNEL | 102 | float offset, float scale | Fresnel scattering applied to the surface of the water.
|
| WATER_NORMAL_TEXTURE | 107 | string texture_ident | Name of texture in inventory or UUID of texture to be used for the water normal. |
| WATER_NORMAL_SCALE | 104 | vector scale | Scaling applied to the water normal map. range = [<0,0,0>, <10,10,10>] |
| WATER_REFRACTION | 105 | float scale_above, float scale_below | Refraction factors when looking through the surface of the water.
|
| WATER_WAVE_DIRECTION | 106 | vector large_wave, vector small_wave | Vector for the directions of the waves Y represents north/south and X represents movement east/west.
|
| SKY_AMBIENT | 0 | vector color | Ambient color used in the scene. |
| SKY_BLUE | 22 | vector blue_density, vector blue_horizon | Change the colors used to calculate blue density and blue horizon in the environment. |
| SKY_HAZE | 23 | float density, float horizon, float density_multiplier, float distance_multiplier | Values used to calculate the impact of blue_density and blue_horizon on the scene lighting. |
| SKY_REFLECTION_PROBE_AMBIANCE | 24 | float ambiance | Minimum ambiance value for all reflection probes. range = [0.0, 10.0] Caveat: This feature will be supported in the upcoming GLTF Materials project. Currently it will only work in supported testing areas with a supported test viewer. |
Caveats
- The list of valid parameters differs from those available for llGetEnvironment.
- The agent's viewer may choose to ignore this command.
- An environment set locally on the viewer will override any environment set from this function.
- The ENV_OK constant is only present on Lua-enabled sims. On older sims, use it's value of 1 instead
Examples
float gTransitionTime = 3.0;
list gListEnvironmentParams = [
SKY_CLOUD_TEXTURE, TEXTURE_PLYWOOD,
SKY_GAMMA, 10.0,
WATER_NORMAL_SCALE, <5.0, 5.0, 5.0>
];
default
{
touch_start(integer total_number)
{
key person = llDetectedKey(0);
if (llGetAgentSize(person) != ZERO_VECTOR)
{
llRequestExperiencePermissions(person, "");
}
else
{
llInstantMessage(person, "You need to be in the same region to change environment");
}
}
experience_permissions(key agent_id)
{
integer envTest = llSetAgentEnvironment(agent_id, gTransitionTime, gListEnvironmentParams);
if (envTest == 1)
{
llRegionSayTo(agent_id, 0, "Applying environment for " + (string)agent_id);
}
else
{
llRegionSayTo(agent_id, 0, "Cannot apply environment for " + (string)agent_id + " due to reason id: " + (string)envTest);
}
}
experience_permissions_denied(key agent_id, integer reason)
{
llRegionSayTo(agent_id, 0, "Denied experience permissions for " + (string)agent_id + " due to reason id: " + (string)reason);
}
}See also: functions
Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.