diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 491228c7..389e58e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -220,21 +220,53 @@ jobs: # files: ./coverage.info # token: ${{ secrets.CODECOV_TOKEN }} -# web: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v1 -# - uses: actions/checkout@v2 -# with: -# repository: emscripten-core/emsdk -# path: emsdk -# - name: emsdk install -# run: | -# cd emsdk -# ./emsdk install latest -# ./emsdk activate latest -# - name: make -# run: | -# source emsdk/emsdk_env.sh -# emcmake cmake . -DLUAU_BUILD_WEB=ON -DCMAKE_BUILD_TYPE=Release -# make -j2 Luau.Web + verify-builtins: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/checkout@v4 + with: + repository: secondlife/lsl-definitions + path: lsl-definitions + + - name: Install dependencies + run: pip install pyyaml llsd + + - name: Generate builtins.txt + run: | + cd lsl-definitions + python gen_definitions.py lsl_definitions.yaml gen_builtins_txt builtins.txt + + - name: Verify builtins.txt matches + run: | + if ! diff -q builtins.txt lsl-definitions/builtins.txt; then + echo "ERROR: builtins.txt is out of sync with secondlife/lsl-definitions" + diff builtins.txt lsl-definitions/builtins.txt || true + echo "" + echo "To fix: clone secondlife/lsl-definitions and run:" + echo " python gen_definitions.py lsl_definitions.yaml gen_builtins_txt /path/to/slua/builtins.txt" + exit 1 + fi + echo "builtins.txt is up to date" + + web: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + with: + repository: emscripten-core/emsdk + path: emsdk + - name: emsdk install + run: | + cd emsdk + ./emsdk install latest + ./emsdk activate latest + - name: make + run: | + source emsdk/emsdk_env.sh + emcmake cmake . -DLUAU_BUILD_WEB=ON -DCMAKE_BUILD_TYPE=Release + make -j2 Luau.Web + - name: smoke test + run: node CLI/test/Web.test.js ./Luau.Web.js diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index bd5f46a3..eff72907 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -77,3 +77,31 @@ jobs: runs-on: "ubuntu-22.04" steps: - uses: secondlife/action-autobuild-release@v3 + + web: + needs: ["release"] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + with: + repository: emscripten-core/emsdk + path: emsdk + - name: emsdk install + run: | + cd emsdk + ./emsdk install latest + ./emsdk activate latest + - name: make + run: | + source emsdk/emsdk_env.sh + emcmake cmake . -DLUAU_BUILD_WEB=ON -DCMAKE_BUILD_TYPE=Release + make -j2 Luau.Web + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: Luau.Web.js + asset_name: Luau.Web.js + asset_content_type: application/octet-stream diff --git a/CLI/src/LSLBuiltins.cpp b/CLI/src/LSLBuiltins.cpp index b06a1ed5..29bd567e 100644 --- a/CLI/src/LSLBuiltins.cpp +++ b/CLI/src/LSLBuiltins.cpp @@ -63,16 +63,16 @@ void luauSL_init_global_builtins(const char* builtins_file) sSLConstantStrings.clear(); LUAU_ASSERT(builtins_file != nullptr); - std::ifstream fp(builtins_file, std::ios::binary); - if (!fp.good()) + std::ifstream file_stream(builtins_file); + if (!file_stream) { - fprintf(stderr, "couldn't open %s", builtins_file); + fprintf(stderr, "couldn't open %s\n", builtins_file); exit(EXIT_FAILURE); } std::string line; - while (std::getline(fp, line)) + while (std::getline(file_stream, line)) { // ignore comment and blank lines if (!line.rfind("//", 0) || !line.rfind('\r', 0) || !line.rfind('\n', 0) || line.empty()) diff --git a/CLI/src/Web.cpp b/CLI/src/Web.cpp index 92fedda7..f4378532 100644 --- a/CLI/src/Web.cpp +++ b/CLI/src/Web.cpp @@ -2,10 +2,12 @@ #include "lua.h" #include "lualib.h" #include "luacode.h" +#include "llsl.h" #include "Luau/Common.h" #include "Luau/Frontend.h" #include "Luau/BuiltinDefinitions.h" +#include "Luau/LSLBuiltins.h" #include #include @@ -62,17 +64,48 @@ struct DemoConfigResolver : Luau::ConfigResolver Luau::Config defaultConfig; }; +// SL mode state +static lua_SLRuntimeState sl_state; + +static void userthread_callback(lua_State* LP, lua_State* L) +{ + if (LP == nullptr) + return; + lua_setthreaddata(L, lua_getthreaddata(LP)); +} + static void setupState(lua_State* L) { luaL_openlibs(L); + // SL mode setup + lua_setthreaddata(L, &sl_state); + sl_state.slIdentifier = LUA_SL_IDENTIFIER; + lua_callbacks(L)->userthread = userthread_callback; + + // SL libraries + luaopen_sl(L, true); + luaopen_ll(L, true); + lua_pop(L, 1); + + // JSON and Base64 + luaopen_cjson(L); + lua_pop(L, 1); + luaopen_llbase64(L); + lua_pop(L, 1); + + // Set SL constants on _G + luaSL_set_constant_globals(L); + luaL_sandbox(L); + lua_fixallcollectable(L); } static std::string runCode(lua_State* L, const std::string& source) { size_t bytecodeSize = 0; char* bytecode = luau_compile(source.data(), source.length(), nullptr, &bytecodeSize); + lua_setmemcat(L, 0); int result = luau_load(L, "=stdin", bytecode, bytecodeSize, 0); free(bytecode); @@ -87,7 +120,9 @@ static std::string runCode(lua_State* L, const std::string& source) return error; } + lua_setmemcat(L, 2); lua_State* T = lua_newthread(L); + lua_setmemcat(L, 0); lua_pushvalue(L, -2); lua_remove(L, -3); @@ -189,6 +224,14 @@ extern "C" const char* executeScript(const char* source) if (strncmp(flag->name, "Luau", 4) == 0) flag->value = true; + // Initialize SL builtins once from embedded file + static bool builtins_initialized = false; + if (!builtins_initialized) + { + luauSL_init_global_builtins("/builtins.txt"); + builtins_initialized = true; + } + // create new state std::unique_ptr globalState(luaL_newstate(), lua_close); lua_State* L = globalState.get(); @@ -196,9 +239,19 @@ extern "C" const char* executeScript(const char* source) // setup state setupState(L); - // sandbox thread + // sandbox thread first (like REPL does) luaL_sandboxthread(L); + // Event and timer managers (after sandbox) + luaSL_createeventmanager(L); + lua_ref(L, -1); + lua_pushvalue(L, -1); // Duplicate for timer manager (it expects LLEvents on stack) + lua_setglobal(L, "LLEvents"); + + luaSL_createtimermanager(L); + lua_ref(L, -1); + lua_setglobal(L, "LLTimers"); + // static string for caching result (prevents dangling ptr on function exit) static std::string result; diff --git a/CLI/test/Web.test.js b/CLI/test/Web.test.js new file mode 100644 index 00000000..55130fcb --- /dev/null +++ b/CLI/test/Web.test.js @@ -0,0 +1,10 @@ +// Smoke test for Luau.Web +// Usage: node Web.test.js ./Luau.Web.js + +const Module = require(require('path').resolve(process.cwd(), process.argv[2])); + +Module.onRuntimeInitialized = () => { + const exec = Module.cwrap('executeScript', 'string', ['string']); + const err = exec('print(ZERO_VECTOR)'); + process.exit(err ? 1 : 0); +}; diff --git a/CMakeLists.txt b/CMakeLists.txt index ce315e7a..aee8eaea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ endif() if(LUAU_BUILD_WEB) target_compile_options(Luau.Web PRIVATE ${LUAU_OPTIONS}) - target_link_libraries(Luau.Web PRIVATE Luau.Compiler Luau.VM Luau.Analysis) + target_link_libraries(Luau.Web PRIVATE Luau.Compiler Luau.VM Luau.Analysis Luau.CLI.lib) # declare exported functions to emscripten target_link_options(Luau.Web PRIVATE -sEXPORTED_FUNCTIONS=["_executeScript","_checkScript"] -sEXPORTED_RUNTIME_METHODS=["ccall","cwrap"]) @@ -312,6 +312,9 @@ if(LUAU_BUILD_WEB) # the output is a single .js file with an embedded wasm blob target_link_options(Luau.Web PRIVATE -sSINGLE_FILE=1) + + # Embed builtins.txt into the wasm virtual filesystem for SL constants + target_link_options(Luau.Web PRIVATE --embed-file ${CMAKE_SOURCE_DIR}/builtins.txt@/builtins.txt) endif() # validate dependencies for internal libraries diff --git a/builtins.txt b/builtins.txt new file mode 100644 index 00000000..8ee1f60e --- /dev/null +++ b/builtins.txt @@ -0,0 +1,1579 @@ +// Generated by gen_definitions.py +integer llAbs( integer Value ) +float llAcos( float Value ) +void llAddToLandBanList( key ID, float Hours ) +void llAddToLandPassList( key ID, float Hours ) +void llAdjustDamage( integer Number, float Damage ) +void llAdjustSoundVolume( float Volume ) +integer llAgentInExperience( key AgentID ) +void llAllowInventoryDrop( integer Flag ) +float llAngleBetween( rotation Rot1, rotation Rot2 ) +void llApplyImpulse( vector Force, integer Local ) +void llApplyRotationalImpulse( vector Force, integer Local ) +float llAsin( float Value ) +float llAtan2( float y, float x ) +void llAttachToAvatar( integer AttachmentPoint ) +void llAttachToAvatarTemp( integer AttachPoint ) +key llAvatarOnLinkSitTarget( integer LinkNumber ) +key llAvatarOnSitTarget( ) +rotation llAxes2Rot( vector Forward, vector Left, vector Up ) +rotation llAxisAngle2Rot( vector Axis, float Angle ) +integer llBase64ToInteger( string Text ) +string llBase64ToString( string Text ) +void llBreakAllLinks( ) +void llBreakLink( integer LinkNumber ) +list llCSV2List( string Text ) +list llCastRay( vector Start, vector End, list Options ) +integer llCeil( float Value ) +string llChar( integer value ) +void llClearCameraParams( ) +void llClearExperience( key AgentID, key ExperienceID ) +void llClearExperiencePermissions( key AgentID ) +integer llClearLinkMedia( integer Link, integer Face ) +integer llClearPrimMedia( integer Face ) +void llCloseRemoteDataChannel( key ChannelID ) +float llCloud( vector Offset ) +void llCollisionFilter( string ObjectName, key ObjectID, integer Accept ) +void llCollisionSound( string ImpactSound, float ImpactVolume ) +void llCollisionSprite( string ImpactSprite ) +string llComputeHash( string Message, string Algorithm ) +float llCos( float Theta ) +void llCreateCharacter( list Options ) +key llCreateKeyValue( string Key, string Value ) +void llCreateLink( key TargetPrim, integer Parent ) +void llDamage( key target, float damage, integer type ) +key llDataSizeKeyValue( ) +void llDeleteCharacter( ) +key llDeleteKeyValue( string Key ) +list llDeleteSubList( list Source, integer Start, integer End ) +string llDeleteSubString( string Source, integer Start, integer End ) +integer llDerezObject( key ID, integer flags ) +void llDetachFromAvatar( ) +list llDetectedDamage( integer Number ) +vector llDetectedGrab( integer Number ) +integer llDetectedGroup( integer Number ) +key llDetectedKey( integer Number ) +integer llDetectedLinkNumber( integer Number ) +string llDetectedName( integer Number ) +key llDetectedOwner( integer Number ) +vector llDetectedPos( integer Number ) +key llDetectedRezzer( integer Number ) +rotation llDetectedRot( integer Number ) +vector llDetectedTouchBinormal( integer Index ) +integer llDetectedTouchFace( integer Index ) +vector llDetectedTouchNormal( integer Index ) +vector llDetectedTouchPos( integer Index ) +vector llDetectedTouchST( integer Index ) +vector llDetectedTouchUV( integer Index ) +integer llDetectedType( integer Number ) +vector llDetectedVel( integer Number ) +void llDialog( key AvatarID, string Text, list Buttons, integer Channel ) +void llDie( ) +string llDumpList2String( list Source, string Separator ) +integer llEdgeOfWorld( vector Position, vector Direction ) +void llEjectFromLand( key AvatarID ) +void llEmail( string Address, string Subject, string Text ) +string llEscapeURL( string URL ) +rotation llEuler2Rot( vector Vector ) +void llEvade( key TargetID, list Options ) +void llExecCharacterCmd( integer Command, list Options ) +float llFabs( float Value ) +key llFindNotecardTextCount( string NotecardName, string Pattern, list Options ) +list llFindNotecardTextSync( string NotecardName, string Pattern, integer StartMatch, integer Count, list Options ) +void llFleeFrom( vector Source, float Distance, list Options ) +integer llFloor( float Value ) +void llForceMouselook( integer Enable ) +float llFrand( float Magnitude ) +key llGenerateKey( ) +vector llGetAccel( ) +integer llGetAgentInfo( key AvatarID ) +string llGetAgentLanguage( key AvatarID ) +list llGetAgentList( integer Scope, list Options ) +vector llGetAgentSize( key AvatarID ) +float llGetAlpha( integer Face ) +float llGetAndResetTime( ) +string llGetAnimation( key AvatarID ) +list llGetAnimationList( key AvatarID ) +string llGetAnimationOverride( string AnimationState ) +integer llGetAttached( ) +list llGetAttachedList( key ID ) +list llGetAttachedListFiltered( key AgentID, list Options ) +list llGetBoundingBox( key ID ) +float llGetCameraAspect( ) +float llGetCameraFOV( ) +vector llGetCameraPos( ) +rotation llGetCameraRot( ) +vector llGetCenterOfMass( ) +list llGetClosestNavPoint( vector Point, list Options ) +vector llGetColor( integer Face ) +key llGetCreator( ) +string llGetDate( ) +integer llGetDayLength( ) +integer llGetDayOffset( ) +string llGetDisplayName( key AvatarID ) +float llGetEnergy( ) +string llGetEnv( string DataRequest ) +list llGetEnvironment( vector Position, list EnvParams ) +list llGetExperienceDetails( key ExperienceID ) +string llGetExperienceErrorMessage( integer Error ) +list llGetExperienceList( key AgentID ) +vector llGetForce( ) +integer llGetFreeMemory( ) +integer llGetFreeURLs( ) +float llGetGMTclock( ) +vector llGetGeometricCenter( ) +string llGetHTTPHeader( key HTTPRequestID, string Header ) +float llGetHealth( key ID ) +string llGetInventoryAcquireTime( string InventoryItem ) +key llGetInventoryCreator( string InventoryItem ) +string llGetInventoryDesc( string InventoryItem ) +key llGetInventoryKey( string InventoryItem ) +string llGetInventoryName( integer InventoryType, integer Index ) +integer llGetInventoryNumber( integer InventoryType ) +integer llGetInventoryPermMask( string InventoryItem, integer BitMask ) +integer llGetInventoryType( string InventoryItem ) +key llGetKey( ) +key llGetLandOwnerAt( vector Position ) +key llGetLinkKey( integer LinkNumber ) +list llGetLinkMedia( integer LinkNumber, integer Face, list Parameters ) +string llGetLinkName( integer LinkNumber ) +integer llGetLinkNumber( ) +integer llGetLinkNumberOfSides( integer LinkNumber ) +list llGetLinkPrimitiveParams( integer LinkNumber, list Parameters ) +integer llGetLinkSitFlags( integer LinkNumber ) +integer llGetListEntryType( list ListVariable, integer Index ) +integer llGetListLength( list ListVariable ) +vector llGetLocalPos( ) +rotation llGetLocalRot( ) +float llGetMass( ) +float llGetMassMKS( ) +float llGetMaxScaleFactor( ) +integer llGetMemoryLimit( ) +float llGetMinScaleFactor( ) +vector llGetMoonDirection( ) +rotation llGetMoonRotation( ) +void llGetNextEmail( string Address, string Subject ) +key llGetNotecardLine( string NotecardName, integer LineNumber ) +string llGetNotecardLineSync( string NotecardName, integer LineNumber ) +key llGetNumberOfNotecardLines( string NotecardName ) +integer llGetNumberOfPrims( ) +integer llGetNumberOfSides( ) +list llGetObjectAnimationNames( ) +string llGetObjectDesc( ) +list llGetObjectDetails( key ID, list Parameters ) +key llGetObjectLinkKey( key id, integer link_no ) +float llGetObjectMass( key ID ) +string llGetObjectName( ) +integer llGetObjectPermMask( integer Category ) +integer llGetObjectPrimCount( key ObjectID ) +vector llGetOmega( ) +key llGetOwner( ) +key llGetOwnerKey( key ObjectID ) +list llGetParcelDetails( vector Position, list ParcelDetails ) +integer llGetParcelFlags( vector Position ) +integer llGetParcelMaxPrims( vector Position, integer SimWide ) +string llGetParcelMusicURL( ) +integer llGetParcelPrimCount( vector Position, integer Category, integer SimWide ) +list llGetParcelPrimOwners( vector Position ) +integer llGetPermissions( ) +key llGetPermissionsKey( ) +list llGetPhysicsMaterial( ) +vector llGetPos( ) +list llGetPrimMediaParams( integer Face, list Parameters ) +list llGetPrimitiveParams( list Parameters ) +integer llGetRegionAgentCount( ) +vector llGetRegionCorner( ) +integer llGetRegionDayLength( ) +integer llGetRegionDayOffset( ) +float llGetRegionFPS( ) +integer llGetRegionFlags( ) +vector llGetRegionMoonDirection( ) +rotation llGetRegionMoonRotation( ) +string llGetRegionName( ) +vector llGetRegionSunDirection( ) +rotation llGetRegionSunRotation( ) +float llGetRegionTimeDilation( ) +float llGetRegionTimeOfDay( ) +string llGetRenderMaterial( integer Face ) +vector llGetRootPosition( ) +rotation llGetRootRotation( ) +rotation llGetRot( ) +integer llGetSPMaxMemory( ) +vector llGetScale( ) +string llGetScriptName( ) +integer llGetScriptState( string ScriptName ) +float llGetSimStats( integer StatType ) +string llGetSimulatorHostname( ) +integer llGetStartParameter( ) +string llGetStartString( ) +list llGetStaticPath( vector Start, vector End, float Radius, list Parameters ) +integer llGetStatus( integer StatusFlag ) +string llGetSubString( string String, integer Start, integer End ) +vector llGetSunDirection( ) +rotation llGetSunRotation( ) +string llGetTexture( integer Face ) +vector llGetTextureOffset( integer Face ) +float llGetTextureRot( integer Face ) +vector llGetTextureScale( integer Face ) +float llGetTime( ) +float llGetTimeOfDay( ) +string llGetTimestamp( ) +vector llGetTorque( ) +integer llGetUnixTime( ) +integer llGetUsedMemory( ) +string llGetUsername( key AvatarID ) +vector llGetVel( ) +list llGetVisualParams( key ID, list Parameters ) +float llGetWallclock( ) +integer llGiveAgentInventory( key AgentID, string FolderName, list InventoryItems, list Options ) +void llGiveInventory( key TargetID, string InventoryItem ) +void llGiveInventoryList( key TargetID, string FolderName, list InventoryItems ) +integer llGiveMoney( key AvatarID, integer Amount ) +void llGodLikeRezObject( key InventoryItemID, vector Position ) +float llGround( vector Offset ) +vector llGroundContour( vector Offset ) +vector llGroundNormal( vector Offset ) +void llGroundRepel( float Height, integer Water, float Tau ) +vector llGroundSlope( vector Offset ) +string llHMAC( string Key, string Message, string Algorithm ) +key llHTTPRequest( string URL, list Parameters, string Body ) +void llHTTPResponse( key HTTPRequestID, integer Status, string Body ) +integer llHash( string value ) +string llInsertString( string TargetVariable, integer Position, string SourceVariable ) +void llInstantMessage( key AvatarID, string Text ) +string llIntegerToBase64( integer Value ) +integer llIsFriend( key agent_id ) +integer llIsLinkGLTFMaterial( integer link, integer face ) +list llJson2List( string JSON ) +string llJsonGetValue( string JSON, list Specifiers ) +string llJsonSetValue( string JSON, list Specifiers, string Value ) +string llJsonValueType( string JSON, list Specifiers ) +string llKey2Name( key ID ) +key llKeyCountKeyValue( ) +key llKeysKeyValue( integer First, integer Count ) +vector llLinear2sRGB( vector color ) +void llLinkAdjustSoundVolume( integer LinkNumber, float Volume ) +void llLinkParticleSystem( integer LinkNumber, list Rules ) +void llLinkPlaySound( integer LinkNumber, string Sound, float Volume, integer Flags ) +void llLinkSetSoundQueueing( integer LinkNumber, integer QueueEnable ) +void llLinkSetSoundRadius( integer LinkNumber, float radius ) +void llLinkSitTarget( integer LinkNumber, vector Offset, rotation Rotation ) +void llLinkStopSound( integer LinkNumber ) +integer llLinksetDataAvailable( ) +integer llLinksetDataCountFound( string search ) +integer llLinksetDataCountKeys( ) +integer llLinksetDataDelete( string name ) +list llLinksetDataDeleteFound( string search, string pass ) +integer llLinksetDataDeleteProtected( string name, string pass ) +list llLinksetDataFindKeys( string search, integer start, integer count ) +list llLinksetDataListKeys( integer start, integer count ) +string llLinksetDataRead( string name ) +string llLinksetDataReadProtected( string name, string pass ) +void llLinksetDataReset( ) +integer llLinksetDataWrite( string name, string value ) +integer llLinksetDataWriteProtected( string name, string value, string pass ) +string llList2CSV( list ListVariable ) +float llList2Float( list ListVariable, integer Index ) +integer llList2Integer( list ListVariable, integer Index ) +string llList2Json( string JsonType, list Values ) +key llList2Key( list ListVariable, integer Index ) +list llList2List( list ListVariable, integer Start, integer End ) +list llList2ListSlice( list ListVariable, integer Start, integer End, integer Stride, integer slice_index ) +list llList2ListStrided( list ListVariable, integer Start, integer End, integer Stride ) +rotation llList2Rot( list ListVariable, integer Index ) +string llList2String( list ListVariable, integer Index ) +vector llList2Vector( list ListVariable, integer Index ) +integer llListFindList( list ListVariable, list Find ) +integer llListFindListNext( list ListVariable, list Find, integer Instance ) +integer llListFindStrided( list ListVariable, list Find, integer Start, integer End, integer Stride ) +list llListInsertList( list Target, list ListVariable, integer Position ) +list llListRandomize( list ListVariable, integer Stride ) +list llListReplaceList( list Target, list ListVariable, integer Start, integer End ) +list llListSort( list ListVariable, integer Stride, integer Ascending ) +list llListSortStrided( list ListVariable, integer Stride, integer Sortkey, integer Ascending ) +float llListStatistics( integer Operation, list ListVariable ) +integer llListen( integer Channel, string SpeakersName, key SpeakersID, string Text ) +void llListenControl( integer ChannelHandle, integer Active ) +void llListenRemove( integer ChannelHandle ) +void llLoadURL( key AvatarID, string Text, string URL ) +float llLog( float Value ) +float llLog10( float Value ) +void llLookAt( vector Target, float Strength, float Damping ) +void llLoopSound( string Sound, float Volume ) +void llLoopSoundMaster( string Sound, float Volume ) +void llLoopSoundSlave( string Sound, float Volume ) +string llMD5String( string Text, integer Nonce ) +void llMakeExplosion( integer Particles, float Scale, float Velocity, float Lifetime, float Arc, string Texture, vector Offset ) +void llMakeFire( integer Particles, float Scale, float Velocity, float Lifetime, float Arc, string Texture, vector Offset ) +void llMakeFountain( integer Particles, float Scale, float Velocity, float Lifetime, float Arc, integer Bounce, string Texture, vector Offset, float Bounce_Offset ) +void llMakeSmoke( integer Particles, float Scale, float Velocity, float Lifetime, float Arc, string Texture, vector Offset ) +integer llManageEstateAccess( integer Action, key AvatarID ) +void llMapBeacon( string RegionName, vector Position, list Options ) +void llMapDestination( string RegionName, vector Position, vector Direction ) +void llMessageLinked( integer LinkNumber, integer Number, string Text, key ID ) +void llMinEventDelay( float Delay ) +integer llModPow( integer Value, integer Power, integer Modulus ) +void llModifyLand( integer Action, integer Area ) +void llMoveToTarget( vector Target, float Tau ) +key llName2Key( string Name ) +void llNavigateTo( vector Location, list Options ) +void llOffsetTexture( float OffsetS, float OffsetT, integer Face ) +integer llOpenFloater( string floater_name, string url, list params ) +void llOpenRemoteDataChannel( ) +integer llOrd( string value, integer index ) +integer llOverMyLand( key ID ) +void llOwnerSay( string Text ) +void llParcelMediaCommandList( list CommandList ) +list llParcelMediaQuery( list QueryList ) +list llParseString2List( string Text, list Separators, list Spacers ) +list llParseStringKeepNulls( string Text, list Separators, list Spacers ) +void llParticleSystem( list Parameters ) +void llPassCollisions( integer Pass ) +void llPassTouches( integer Pass ) +void llPatrolPoints( list Points, list Options ) +void llPlaySound( string Sound, float Volume ) +void llPlaySoundSlave( string Sound, float Volume ) +void llPointAt( vector Point ) +float llPow( float Value, float Exponent ) +void llPreloadSound( string Sound ) +void llPursue( key TargetID, list Options ) +void llPushObject( key ObjectID, vector Impulse, vector AngularImpulse, integer Local ) +key llReadKeyValue( string Key ) +void llRefreshPrimURL( ) +void llRegionSay( integer Channel, string Text ) +void llRegionSayTo( key TargetID, integer Channel, string Text ) +void llReleaseCamera( key AvatarID ) +void llReleaseControls( ) +void llReleaseURL( string URL ) +void llRemoteDataReply( key ChannelID, key MessageID, string sData, integer iData ) +void llRemoteDataSetRegion( ) +void llRemoteLoadScript( key Target, string ScriptName, integer Unknown1, integer Unknown2 ) +void llRemoteLoadScriptPin( key ObjectID, string ScriptName, integer PIN, integer Running, integer StartParameter ) +void llRemoveFromLandBanList( key AvatarID ) +void llRemoveFromLandPassList( key AvatarID ) +void llRemoveInventory( string InventoryItem ) +void llRemoveVehicleFlags( integer Vehiclelags ) +integer llReplaceAgentEnvironment( key agent_id, float transition, string environment ) +integer llReplaceEnvironment( vector position, string environment, integer track_no, integer day_length, integer day_offset ) +string llReplaceSubString( string InitialString, string SubString, string NewSubString, integer Count ) +key llRequestAgentData( key AvatarID, integer Data ) +key llRequestDisplayName( key AvatarID ) +void llRequestExperiencePermissions( key AgentID, string unused ) +key llRequestInventoryData( string InventoryItem ) +void llRequestPermissions( key AvatarID, integer PermissionMask ) +key llRequestSecureURL( ) +key llRequestSimulatorData( string RegionName, integer Data ) +key llRequestURL( ) +key llRequestUserKey( string Name ) +key llRequestUsername( key AvatarID ) +void llResetAnimationOverride( string AnimationState ) +void llResetLandBanList( ) +void llResetLandPassList( ) +void llResetOtherScript( string ScriptName ) +void llResetScript( ) +void llResetTime( ) +integer llReturnObjectsByID( list ObjectIDs ) +integer llReturnObjectsByOwner( key ID, integer Scope ) +void llRezAtRoot( string InventoryItem, vector Position, vector Velocity, rotation Rotation, integer StartParameter ) +void llRezObject( string InventoryItem, vector Position, vector Velocity, rotation Rotation, integer StartParameter ) +key llRezObjectWithParams( string InventoryItem, list Params ) +float llRot2Angle( rotation Rotation ) +vector llRot2Axis( rotation Rotation ) +vector llRot2Euler( rotation Rotation ) +vector llRot2Fwd( rotation Rotation ) +vector llRot2Left( rotation Rotation ) +vector llRot2Up( rotation Rotation ) +rotation llRotBetween( vector Vector1, vector Vector2 ) +void llRotLookAt( rotation Rotation, float Strength, float Damping ) +integer llRotTarget( rotation Rotation, float LeeWay ) +void llRotTargetRemove( integer Handle ) +void llRotateTexture( float Radians, integer Face ) +integer llRound( float Value ) +string llSHA1String( string Text ) +string llSHA256String( string text ) +integer llSameGroup( key ID ) +void llSay( integer Channel, string Text ) +integer llScaleByFactor( float ScalingFactor ) +void llScaleTexture( float Horizontal, float Vertical, integer Face ) +integer llScriptDanger( vector Position ) +void llScriptProfiler( integer State ) +key llSendRemoteData( key ChannelID, string Destination, integer Value, string Text ) +void llSensor( string Name, key ID, integer Type, float Range, float Arc ) +void llSensorRemove( ) +void llSensorRepeat( string Name, key ID, integer Type, float Range, float Arc, float Rate ) +integer llSetAgentEnvironment( key agent_id, float transition, list Settings ) +void llSetAgentRot( rotation rot, integer flags ) +void llSetAlpha( float Opacity, integer Face ) +void llSetAngularVelocity( vector AngVel, integer Local ) +void llSetAnimationOverride( string AnimationState, string AnimationName ) +void llSetBuoyancy( float Buoyancy ) +void llSetCameraAtOffset( vector Offset ) +void llSetCameraEyeOffset( vector Offset ) +void llSetCameraParams( list Parameters ) +void llSetClickAction( integer Action ) +void llSetColor( vector Color, integer Face ) +void llSetContentType( key HTTPRequestID, integer ContentType ) +void llSetDamage( float Damage ) +integer llSetEnvironment( vector Position, list EnvParams ) +integer llSetExperienceKey( key ExperienceID ) +void llSetForce( vector Force, integer Local ) +void llSetForceAndTorque( vector Force, vector Torque, integer Local ) +integer llSetGroundTexture( list Changes ) +void llSetHoverHeight( float Height, integer Water, float Tau ) +void llSetInventoryPermMask( string InventoryItem, integer PermissionFlag, integer PermissionMask ) +void llSetKeyframedMotion( list Keyframes, list Options ) +void llSetLinkAlpha( integer LinkNumber, float Opacity, integer Face ) +void llSetLinkCamera( integer LinkNumber, vector EyeOffset, vector LookOffset ) +void llSetLinkColor( integer LinkNumber, vector Color, integer Face ) +void llSetLinkGLTFOverrides( integer link, integer face, list options ) +integer llSetLinkMedia( integer Link, integer Face, list Parameters ) +void llSetLinkPrimitiveParams( integer LinkNumber, list Parameters ) +void llSetLinkPrimitiveParamsFast( integer LinkNumber, list Parameters ) +void llSetLinkRenderMaterial( integer LinkNumber, string RenderMaterial, integer Face ) +void llSetLinkSitFlags( integer LinkNumber, integer Flags ) +void llSetLinkTexture( integer LinkNumber, string Texture, integer Face ) +void llSetLinkTextureAnim( integer LinkNumber, integer Mode, integer Face, integer SizeX, integer SizeY, float Start, float Length, float Rate ) +void llSetLocalRot( rotation Rotation ) +integer llSetMemoryLimit( integer Limit ) +void llSetObjectDesc( string Description ) +void llSetObjectName( string Name ) +void llSetObjectPermMask( integer PermissionFlag, integer PermissionMask ) +void llSetParcelMusicURL( string URL ) +void llSetPayPrice( integer Price, list QuickButtons ) +void llSetPhysicsMaterial( integer MaterialBits, float GravityMultiplier, float Restitution, float Friction, float Density ) +void llSetPos( vector Position ) +integer llSetPrimMediaParams( integer Face, list MediaParameters ) +void llSetPrimURL( string URL ) +void llSetPrimitiveParams( list Parameters ) +integer llSetRegionPos( vector Position ) +void llSetRemoteScriptAccessPin( integer PIN ) +void llSetRenderMaterial( string Material, integer Face ) +void llSetRot( rotation Rotation ) +void llSetScale( vector Scale ) +void llSetScriptState( string ScriptName, integer Running ) +void llSetSitText( string Text ) +void llSetSoundQueueing( integer QueueEnable ) +void llSetSoundRadius( float Radius ) +void llSetStatus( integer Status, integer Value ) +void llSetText( string Text, vector Color, float Opacity ) +void llSetTexture( string Texture, integer Face ) +void llSetTextureAnim( integer Mode, integer Face, integer SizeX, integer SizeY, float Start, float Length, float Rate ) +void llSetTimerEvent( float Rate ) +void llSetTorque( vector Torque, integer Local ) +void llSetTouchText( string Text ) +void llSetVehicleFlags( integer Flags ) +void llSetVehicleFloatParam( integer ParameterName, float ParameterValue ) +void llSetVehicleRotationParam( integer ParameterName, rotation ParameterValue ) +void llSetVehicleType( integer Type ) +void llSetVehicleVectorParam( integer ParameterName, vector ParameterValue ) +void llSetVelocity( vector Velocity, integer Local ) +void llShout( integer Channel, string Text ) +string llSignRSA( string PrivateKey, string Message, string Algorithm ) +float llSin( float Theta ) +integer llSitOnLink( key AvatarID, integer LinkID ) +void llSitTarget( vector Offset, rotation Rotation ) +void llSleep( float Time ) +void llSound( string Sound, float Volume, integer Queue, integer Loop ) +void llSoundPreload( string Sound ) +float llSqrt( float Value ) +void llStartAnimation( string Animation ) +void llStartObjectAnimation( string Animation ) +void llStopAnimation( string Animation ) +void llStopHover( ) +void llStopLookAt( ) +void llStopMoveToTarget( ) +void llStopObjectAnimation( string Animation ) +void llStopPointAt( ) +void llStopSound( ) +integer llStringLength( string Text ) +string llStringToBase64( string Text ) +string llStringTrim( string Text, integer TrimType ) +integer llSubStringIndex( string Text, string Sequence ) +void llTakeCamera( key AvatarID ) +void llTakeControls( integer Controls, integer Accept, integer PassOn ) +float llTan( float Theta ) +integer llTarget( vector Position, float Range ) +void llTargetOmega( vector Axis, float SpinRate, float Gain ) +void llTargetRemove( integer Target ) +void llTargetedEmail( integer Target, string Subject, string Text ) +void llTeleportAgent( key AvatarID, string LandmarkName, vector Position, vector LookAtPoint ) +void llTeleportAgentGlobalCoords( key AvatarID, vector GlobalPosition, vector RegionPosition, vector LookAtPoint ) +void llTeleportAgentHome( key AvatarID ) +void llTextBox( key AvatarID, string Text, integer Channel ) +string llToLower( string Text ) +string llToUpper( string Text ) +key llTransferLindenDollars( key AvatarID, integer Amount ) +integer llTransferOwnership( key AgentID, integer Flags, list Params ) +void llTriggerSound( string Sound, float Volume ) +void llTriggerSoundLimited( string Sound, float Volume, vector TNE, vector BSW ) +void llUnSit( key AvatarID ) +string llUnescapeURL( string URL ) +void llUpdateCharacter( list Options ) +key llUpdateKeyValue( string Key, string Value, integer Checked, string OriginalValue ) +float llVecDist( vector Location1, vector Location2 ) +float llVecMag( vector Vector ) +vector llVecNorm( vector Vector ) +integer llVerifyRSA( string PublicKey, string Message, string Signature, string Algorithm ) +void llVolumeDetect( integer DetectEnabled ) +void llWanderWithin( vector Origin, vector Area, list Options ) +float llWater( vector Offset ) +void llWhisper( integer Channel, string Text ) +vector llWind( vector Offset ) +vector llWorldPosToHUD( vector world_pos ) +string llXorBase64( string Text1, string Text2 ) +string llXorBase64Strings( string Text1, string Text2 ) +string llXorBase64StringsCorrect( string Text1, string Text2 ) +vector llsRGB2Linear( vector srgb ) +const integer ACTIVE = 0x2 +const integer AGENT = 0x1 +const integer AGENT_ALWAYS_RUN = 0x1000 +const integer AGENT_ATTACHMENTS = 0x2 +const integer AGENT_AUTOMATED = 0x4000 +const integer AGENT_AUTOPILOT = 0x2000 +const integer AGENT_AWAY = 0x40 +const integer AGENT_BUSY = 0x800 +const integer AGENT_BY_LEGACY_NAME = 0x1 +const integer AGENT_BY_USERNAME = 0x10 +const integer AGENT_CROUCHING = 0x400 +const integer AGENT_FLOATING_VIA_SCRIPTED_ATTACHMENT = 0x8000 +const integer AGENT_FLYING = 0x1 +const integer AGENT_IN_AIR = 0x100 +const integer AGENT_LIST_PARCEL = 1 +const integer AGENT_LIST_PARCEL_OWNER = 2 +const integer AGENT_LIST_REGION = 4 +const integer AGENT_MOUSELOOK = 0x8 +const integer AGENT_ON_OBJECT = 0x20 +const integer AGENT_SCRIPTED = 0x4 +const integer AGENT_SITTING = 0x10 +const integer AGENT_TYPING = 0x200 +const integer AGENT_WALKING = 0x80 +const integer ALL_SIDES = -1 +const integer ANIM_ON = 0x1 +const integer ATTACH_ANY_HUD = -1 +const integer ATTACH_AVATAR_CENTER = 40 +const integer ATTACH_BACK = 9 +const integer ATTACH_BELLY = 28 +const integer ATTACH_CHEST = 1 +const integer ATTACH_CHIN = 12 +const integer ATTACH_FACE_JAW = 47 +const integer ATTACH_FACE_LEAR = 48 +const integer ATTACH_FACE_LEYE = 50 +const integer ATTACH_FACE_REAR = 49 +const integer ATTACH_FACE_REYE = 51 +const integer ATTACH_FACE_TONGUE = 52 +const integer ATTACH_GROIN = 53 +const integer ATTACH_HEAD = 2 +const integer ATTACH_HIND_LFOOT = 54 +const integer ATTACH_HIND_RFOOT = 55 +const integer ATTACH_HUD_BOTTOM = 37 +const integer ATTACH_HUD_BOTTOM_LEFT = 36 +const integer ATTACH_HUD_BOTTOM_RIGHT = 38 +const integer ATTACH_HUD_CENTER_1 = 35 +const integer ATTACH_HUD_CENTER_2 = 31 +const integer ATTACH_HUD_TOP_CENTER = 33 +const integer ATTACH_HUD_TOP_LEFT = 34 +const integer ATTACH_HUD_TOP_RIGHT = 32 +const integer ATTACH_LEAR = 13 +const integer ATTACH_LEFT_PEC = 29 +const integer ATTACH_LEYE = 15 +const integer ATTACH_LFOOT = 7 +const integer ATTACH_LHAND = 5 +const integer ATTACH_LHAND_RING1 = 41 +const integer ATTACH_LHIP = 25 +const integer ATTACH_LLARM = 21 +const integer ATTACH_LLLEG = 27 +const integer ATTACH_LPEC = 30 +const integer ATTACH_LSHOULDER = 3 +const integer ATTACH_LUARM = 20 +const integer ATTACH_LULEG = 26 +const integer ATTACH_LWING = 45 +const integer ATTACH_MOUTH = 11 +const integer ATTACH_NECK = 39 +const integer ATTACH_NOSE = 17 +const integer ATTACH_PELVIS = 10 +const integer ATTACH_REAR = 14 +const integer ATTACH_REYE = 16 +const integer ATTACH_RFOOT = 8 +const integer ATTACH_RHAND = 6 +const integer ATTACH_RHAND_RING1 = 42 +const integer ATTACH_RHIP = 22 +const integer ATTACH_RIGHT_PEC = 30 +const integer ATTACH_RLARM = 19 +const integer ATTACH_RLLEG = 24 +const integer ATTACH_RPEC = 29 +const integer ATTACH_RSHOULDER = 4 +const integer ATTACH_RUARM = 18 +const integer ATTACH_RULEG = 23 +const integer ATTACH_RWING = 46 +const integer ATTACH_TAIL_BASE = 43 +const integer ATTACH_TAIL_TIP = 44 +const integer AVOID_CHARACTERS = 1 +const integer AVOID_DYNAMIC_OBSTACLES = 2 +const integer AVOID_NONE = 0 +const integer BEACON_MAP = 1 +const integer CAMERA_ACTIVE = 12 +const integer CAMERA_BEHINDNESS_ANGLE = 8 +const integer CAMERA_BEHINDNESS_LAG = 9 +const integer CAMERA_DISTANCE = 7 +const integer CAMERA_FOCUS = 17 +const integer CAMERA_FOCUS_LAG = 6 +const integer CAMERA_FOCUS_LOCKED = 22 +const integer CAMERA_FOCUS_OFFSET = 1 +const integer CAMERA_FOCUS_THRESHOLD = 11 +const integer CAMERA_PITCH = 0 +const integer CAMERA_POSITION = 13 +const integer CAMERA_POSITION_LAG = 5 +const integer CAMERA_POSITION_LOCKED = 21 +const integer CAMERA_POSITION_THRESHOLD = 10 +const integer CHANGED_ALLOWED_DROP = 0x40 +const integer CHANGED_COLOR = 0x2 +const integer CHANGED_INVENTORY = 0x1 +const integer CHANGED_LINK = 0x20 +const integer CHANGED_MEDIA = 0x800 +const integer CHANGED_OWNER = 0x80 +const integer CHANGED_REGION = 0x100 +const integer CHANGED_REGION_START = 0x400 +const integer CHANGED_RENDER_MATERIAL = 0x1000 +const integer CHANGED_SCALE = 0x8 +const integer CHANGED_SHAPE = 0x4 +const integer CHANGED_TELEPORT = 0x200 +const integer CHANGED_TEXTURE = 0x10 +const integer CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES = 14 +const integer CHARACTER_AVOIDANCE_MODE = 5 +const integer CHARACTER_CMD_JUMP = 0x01 +const integer CHARACTER_CMD_SMOOTH_STOP = 2 +const integer CHARACTER_CMD_STOP = 0x00 +const integer CHARACTER_DESIRED_SPEED = 1 +const integer CHARACTER_DESIRED_TURN_SPEED = 12 +const integer CHARACTER_LENGTH = 3 +const integer CHARACTER_MAX_ACCEL = 8 +const integer CHARACTER_MAX_DECEL = 9 +const integer CHARACTER_MAX_SPEED = 13 +const integer CHARACTER_MAX_TURN_RADIUS = 10 +const integer CHARACTER_ORIENTATION = 4 +const integer CHARACTER_RADIUS = 2 +const integer CHARACTER_STAY_WITHIN_PARCEL = 15 +const integer CHARACTER_TYPE = 6 +const integer CHARACTER_TYPE_A = 0 +const integer CHARACTER_TYPE_B = 1 +const integer CHARACTER_TYPE_C = 2 +const integer CHARACTER_TYPE_D = 3 +const integer CHARACTER_TYPE_NONE = 4 +const integer CLICK_ACTION_BUY = 2 +const integer CLICK_ACTION_DISABLED = 8 +const integer CLICK_ACTION_IGNORE = 9 +const integer CLICK_ACTION_NONE = 0 +const integer CLICK_ACTION_OPEN = 4 +const integer CLICK_ACTION_OPEN_MEDIA = 6 +const integer CLICK_ACTION_PAY = 3 +const integer CLICK_ACTION_PLAY = 5 +const integer CLICK_ACTION_SIT = 1 +const integer CLICK_ACTION_TOUCH = 0 +const integer CLICK_ACTION_ZOOM = 7 +const integer COMBAT_CHANNEL = 2147483646 +const string COMBAT_LOG_ID = "45e0fcfa-2268-4490-a51c-3e51bdfe80d1" +const integer CONTENT_TYPE_ATOM = 4 +const integer CONTENT_TYPE_FORM = 7 +const integer CONTENT_TYPE_HTML = 1 +const integer CONTENT_TYPE_JSON = 5 +const integer CONTENT_TYPE_LLSD = 6 +const integer CONTENT_TYPE_RSS = 8 +const integer CONTENT_TYPE_TEXT = 0 +const integer CONTENT_TYPE_XHTML = 3 +const integer CONTENT_TYPE_XML = 2 +const integer CONTROL_BACK = 0x2 +const integer CONTROL_DOWN = 0x20 +const integer CONTROL_FWD = 0x1 +const integer CONTROL_LBUTTON = 0x10000000 +const integer CONTROL_LEFT = 0x4 +const integer CONTROL_ML_LBUTTON = 0x40000000 +const integer CONTROL_RIGHT = 0x8 +const integer CONTROL_ROT_LEFT = 0x100 +const integer CONTROL_ROT_RIGHT = 0x200 +const integer CONTROL_UP = 0x10 +const integer DAMAGEABLE = 0x20 +const integer DAMAGE_TYPE_ACID = 1 +const integer DAMAGE_TYPE_BLUDGEONING = 2 +const integer DAMAGE_TYPE_COLD = 3 +const integer DAMAGE_TYPE_ELECTRIC = 4 +const integer DAMAGE_TYPE_EMOTIONAL = 14 +const integer DAMAGE_TYPE_FIRE = 5 +const integer DAMAGE_TYPE_FORCE = 6 +const integer DAMAGE_TYPE_GENERIC = 0 +const integer DAMAGE_TYPE_IMPACT = -1 +const integer DAMAGE_TYPE_NECROTIC = 7 +const integer DAMAGE_TYPE_PIERCING = 8 +const integer DAMAGE_TYPE_POISON = 9 +const integer DAMAGE_TYPE_PSYCHIC = 10 +const integer DAMAGE_TYPE_RADIANT = 11 +const integer DAMAGE_TYPE_SLASHING = 12 +const integer DAMAGE_TYPE_SONIC = 13 +const integer DATA_BORN = 3 +const integer DATA_NAME = 2 +const integer DATA_ONLINE = 1 +const integer DATA_PAYINFO = 8 +const integer DATA_RATING = 4 +const integer DATA_SIM_POS = 5 +const integer DATA_SIM_RATING = 7 +const integer DATA_SIM_STATUS = 6 +const integer DEBUG_CHANNEL = 2147483647 +const float DEG_TO_RAD = 0.017453293 +const integer DENSITY = 1 +const integer DEREZ_DIE = 0 +const integer DEREZ_MAKE_TEMP = 1 +const integer DEREZ_TO_INVENTORY = 2 +const integer ENVIRONMENT_DAYINFO = 200 +const integer ENV_INVALID_AGENT = -4 +const integer ENV_INVALID_RULE = -5 +const integer ENV_NOT_EXPERIENCE = -1 +const integer ENV_NO_ENVIRONMENT = -3 +const integer ENV_NO_EXPERIENCE_LAND = -7 +const integer ENV_NO_EXPERIENCE_PERMISSION = -2 +const integer ENV_NO_PERMISSIONS = -9 +const integer ENV_THROTTLE = -8 +const integer ENV_VALIDATION_FAIL = -6 +const string EOF = "\n\n\n" +const integer ERR_GENERIC = -1 +const integer ERR_MALFORMED_PARAMS = -3 +const integer ERR_PARCEL_PERMISSIONS = -2 +const integer ERR_RUNTIME_PERMISSIONS = -4 +const integer ERR_THROTTLED = -5 +const integer ESTATE_ACCESS_ALLOWED_AGENT_ADD = 4 +const integer ESTATE_ACCESS_ALLOWED_AGENT_REMOVE = 8 +const integer ESTATE_ACCESS_ALLOWED_GROUP_ADD = 16 +const integer ESTATE_ACCESS_ALLOWED_GROUP_REMOVE = 32 +const integer ESTATE_ACCESS_BANNED_AGENT_ADD = 64 +const integer ESTATE_ACCESS_BANNED_AGENT_REMOVE = 128 +const integer FALSE = 0 +const integer FILTER_FLAGS = 2 +const integer FILTER_FLAG_HUDS = 0x0001 +const integer FILTER_INCLUDE = 1 +const integer FORCE_DIRECT_PATH = 1 +const integer FRICTION = 2 +const integer GAME_CONTROL_AXIS_LEFTX = 0 +const integer GAME_CONTROL_AXIS_LEFTY = 1 +const integer GAME_CONTROL_AXIS_RIGHTX = 2 +const integer GAME_CONTROL_AXIS_RIGHTY = 3 +const integer GAME_CONTROL_AXIS_TRIGGERLEFT = 4 +const integer GAME_CONTROL_AXIS_TRIGGERRIGHT = 5 +const integer GAME_CONTROL_BUTTON_A = 0x1 +const integer GAME_CONTROL_BUTTON_B = 0x2 +const integer GAME_CONTROL_BUTTON_BACK = 0x10 +const integer GAME_CONTROL_BUTTON_DPAD_DOWN = 0x1000 +const integer GAME_CONTROL_BUTTON_DPAD_LEFT = 0x2000 +const integer GAME_CONTROL_BUTTON_DPAD_RIGHT = 0x4000 +const integer GAME_CONTROL_BUTTON_DPAD_UP = 0x800 +const integer GAME_CONTROL_BUTTON_GUIDE = 0x20 +const integer GAME_CONTROL_BUTTON_LEFTSHOULDER = 0x200 +const integer GAME_CONTROL_BUTTON_LEFTSTICK = 0x80 +const integer GAME_CONTROL_BUTTON_MISC1 = 0x8000 +const integer GAME_CONTROL_BUTTON_PADDLE1 = 0x10000 +const integer GAME_CONTROL_BUTTON_PADDLE2 = 0x20000 +const integer GAME_CONTROL_BUTTON_PADDLE3 = 0x40000 +const integer GAME_CONTROL_BUTTON_PADDLE4 = 0x80000 +const integer GAME_CONTROL_BUTTON_RIGHTSHOULDER = 0x400 +const integer GAME_CONTROL_BUTTON_RIGHTSTICK = 0x100 +const integer GAME_CONTROL_BUTTON_START = 0x40 +const integer GAME_CONTROL_BUTTON_TOUCHPAD = 0x100000 +const integer GAME_CONTROL_BUTTON_X = 0x4 +const integer GAME_CONTROL_BUTTON_Y = 0x8 +const integer GCNP_GET_WALKABILITY = 2 +const integer GCNP_RADIUS = 0 +const integer GCNP_STATIC = 1 +const integer GRAVITY_MULTIPLIER = 8 +const integer HORIZONTAL = 1 +const integer HTTP_ACCEPT = 8 +const integer HTTP_BODY_MAXLENGTH = 2 +const integer HTTP_BODY_TRUNCATED = 0 +const integer HTTP_CUSTOM_HEADER = 5 +const integer HTTP_EXTENDED_ERROR = 9 +const integer HTTP_METHOD = 0 +const integer HTTP_MIMETYPE = 1 +const integer HTTP_PRAGMA_NO_CACHE = 6 +const integer HTTP_USER_AGENT = 7 +const integer HTTP_VERBOSE_THROTTLE = 4 +const integer HTTP_VERIFY_CERT = 3 +const string IMG_USE_BAKED_AUX1 = "9742065b-19b5-297c-858a-29711d539043" +const string IMG_USE_BAKED_AUX2 = "03642e83-2bd1-4eb9-34b4-4c47ed586d2d" +const string IMG_USE_BAKED_AUX3 = "edd51b77-fc10-ce7a-4b3d-011dfc349e4f" +const string IMG_USE_BAKED_EYES = "52cc6bb6-2ee5-e632-d3ad-50197b1dcb8a" +const string IMG_USE_BAKED_HAIR = "09aac1fb-6bce-0bee-7d44-caac6dbb6c63" +const string IMG_USE_BAKED_HEAD = "5a9f4a74-30f2-821c-b88d-70499d3e7183" +const string IMG_USE_BAKED_LEFTARM = "ff62763f-d60a-9855-890b-0c96f8f8cd98" +const string IMG_USE_BAKED_LEFTLEG = "8e915e25-31d1-cc95-ae08-d58a47488251" +const string IMG_USE_BAKED_LOWER = "24daea5f-0539-cfcf-047f-fbc40b2786ba" +const string IMG_USE_BAKED_SKIRT = "43529ce8-7faa-ad92-165a-bc4078371687" +const string IMG_USE_BAKED_UPPER = "ae2de45c-d252-50b8-5c6e-19f39ce79317" +const integer INVENTORY_ALL = -1 +const integer INVENTORY_ANIMATION = 20 +const integer INVENTORY_BODYPART = 13 +const integer INVENTORY_CLOTHING = 5 +const integer INVENTORY_GESTURE = 21 +const integer INVENTORY_LANDMARK = 3 +const integer INVENTORY_MATERIAL = 57 +const integer INVENTORY_NONE = -1 +const integer INVENTORY_NOTECARD = 7 +const integer INVENTORY_OBJECT = 6 +const integer INVENTORY_SCRIPT = 10 +const integer INVENTORY_SETTING = 56 +const integer INVENTORY_SOUND = 1 +const integer INVENTORY_TEXTURE = 0 +const integer JSON_APPEND = -1 +const string JSON_ARRAY = "﷒" +const string JSON_DELETE = "﷘" +const string JSON_FALSE = "﷗" +const string JSON_INVALID = "﷐" +const string JSON_NULL = "﷕" +const string JSON_NUMBER = "﷓" +const string JSON_OBJECT = "﷑" +const string JSON_STRING = "﷔" +const string JSON_TRUE = "﷖" +const integer KFM_CMD_PAUSE = 2 +const integer KFM_CMD_PLAY = 0 +const integer KFM_CMD_STOP = 1 +const integer KFM_COMMAND = 0 +const integer KFM_DATA = 2 +const integer KFM_FORWARD = 0 +const integer KFM_LOOP = 1 +const integer KFM_MODE = 1 +const integer KFM_PING_PONG = 2 +const integer KFM_REVERSE = 3 +const integer KFM_ROTATION = 1 +const integer KFM_TRANSLATION = 2 +const integer LAND_LARGE_BRUSH = 3 +const integer LAND_LEVEL = 0 +const integer LAND_LOWER = 2 +const integer LAND_MEDIUM_BRUSH = 2 +const integer LAND_NOISE = 4 +const integer LAND_RAISE = 1 +const integer LAND_REVERT = 5 +const integer LAND_SMALL_BRUSH = 1 +const integer LAND_SMOOTH = 3 +const float LEGACY_MASS_FACTOR = 0.01 +const integer LINKSETDATA_DELETE = 2 +const integer LINKSETDATA_EMEMORY = 1 +const integer LINKSETDATA_ENOKEY = 2 +const integer LINKSETDATA_EPROTECTED = 3 +const integer LINKSETDATA_MULTIDELETE = 3 +const integer LINKSETDATA_NOTFOUND = 4 +const integer LINKSETDATA_NOUPDATE = 5 +const integer LINKSETDATA_OK = 0 +const integer LINKSETDATA_RESET = 0 +const integer LINKSETDATA_UPDATE = 1 +const integer LINK_ALL_CHILDREN = -3 +const integer LINK_ALL_OTHERS = -2 +const integer LINK_ROOT = 1 +const integer LINK_SET = -1 +const integer LINK_THIS = -4 +const integer LIST_STAT_GEOMETRIC_MEAN = 9 +const integer LIST_STAT_MAX = 2 +const integer LIST_STAT_MEAN = 3 +const integer LIST_STAT_MEDIAN = 4 +const integer LIST_STAT_MIN = 1 +const integer LIST_STAT_NUM_COUNT = 8 +const integer LIST_STAT_RANGE = 0 +const integer LIST_STAT_STD_DEV = 5 +const integer LIST_STAT_SUM = 6 +const integer LIST_STAT_SUM_SQUARES = 7 +const integer LOOP = 0x2 +const integer MASK_BASE = 0 +const integer MASK_COMBINED = 0x10 +const integer MASK_EVERYONE = 3 +const integer MASK_GROUP = 2 +const integer MASK_NEXT = 4 +const integer MASK_OWNER = 1 +const string NAK = "\n\n" +const integer NAVIGATE_TO_GOAL_REACHED_DIST = 2 +const string NULL_KEY = "00000000-0000-0000-0000-000000000000" +const integer OBJECT_ACCOUNT_LEVEL = 41 +const integer OBJECT_ANIMATED_COUNT = 39 +const integer OBJECT_ANIMATED_SLOTS_AVAILABLE = 40 +const integer OBJECT_ATTACHED_POINT = 19 +const integer OBJECT_ATTACHED_SLOTS_AVAILABLE = 35 +const integer OBJECT_BODY_SHAPE_TYPE = 26 +const integer OBJECT_CHARACTER_TIME = 17 +const integer OBJECT_CLICK_ACTION = 28 +const integer OBJECT_CREATION_TIME = 36 +const integer OBJECT_CREATOR = 8 +const integer OBJECT_DAMAGE = 51 +const integer OBJECT_DAMAGE_TYPE = 52 +const integer OBJECT_DESC = 2 +const integer OBJECT_GROUP = 7 +const integer OBJECT_GROUP_TAG = 33 +const integer OBJECT_HEALTH = 50 +const integer OBJECT_HOVER_HEIGHT = 25 +const integer OBJECT_LAST_OWNER_ID = 27 +const integer OBJECT_LINK_NUMBER = 46 +const integer OBJECT_MASS = 43 +const integer OBJECT_MATERIAL = 42 +const integer OBJECT_NAME = 1 +const integer OBJECT_OMEGA = 29 +const integer OBJECT_OWNER = 6 +const integer OBJECT_PATHFINDING_TYPE = 20 +const integer OBJECT_PERMS = 53 +const integer OBJECT_PERMS_COMBINED = 54 +const integer OBJECT_PHANTOM = 22 +const integer OBJECT_PHYSICS = 21 +const integer OBJECT_PHYSICS_COST = 16 +const integer OBJECT_POS = 3 +const integer OBJECT_PRIM_COUNT = 30 +const integer OBJECT_PRIM_EQUIVALENCE = 13 +const integer OBJECT_RENDER_WEIGHT = 24 +const integer OBJECT_RETURN_PARCEL = 1 +const integer OBJECT_RETURN_PARCEL_OWNER = 2 +const integer OBJECT_RETURN_REGION = 4 +const integer OBJECT_REZZER_KEY = 32 +const integer OBJECT_REZ_TIME = 45 +const integer OBJECT_ROOT = 18 +const integer OBJECT_ROT = 4 +const integer OBJECT_RUNNING_SCRIPT_COUNT = 9 +const integer OBJECT_SCALE = 47 +const integer OBJECT_SCRIPT_MEMORY = 11 +const integer OBJECT_SCRIPT_TIME = 12 +const integer OBJECT_SELECT_COUNT = 37 +const integer OBJECT_SERVER_COST = 14 +const integer OBJECT_SIT_COUNT = 38 +const integer OBJECT_STREAMING_COST = 15 +const integer OBJECT_TEMP_ATTACHED = 34 +const integer OBJECT_TEMP_ON_REZ = 23 +const integer OBJECT_TEXT = 44 +const integer OBJECT_TEXT_ALPHA = 49 +const integer OBJECT_TEXT_COLOR = 48 +const integer OBJECT_TOTAL_INVENTORY_COUNT = 31 +const integer OBJECT_TOTAL_SCRIPT_COUNT = 10 +const integer OBJECT_UNKNOWN_DETAIL = -1 +const integer OBJECT_VELOCITY = 5 +const integer OPT_AVATAR = 1 +const integer OPT_CHARACTER = 2 +const integer OPT_EXCLUSION_VOLUME = 6 +const integer OPT_LEGACY_LINKSET = 0 +const integer OPT_MATERIAL_VOLUME = 5 +const integer OPT_OTHER = -1 +const integer OPT_STATIC_OBSTACLE = 4 +const integer OPT_WALKABLE = 3 +const integer OVERRIDE_GLTF_BASE_ALPHA = 2 +const integer OVERRIDE_GLTF_BASE_ALPHA_MASK = 4 +const integer OVERRIDE_GLTF_BASE_ALPHA_MODE = 3 +const integer OVERRIDE_GLTF_BASE_COLOR_FACTOR = 1 +const integer OVERRIDE_GLTF_BASE_DOUBLE_SIDED = 5 +const integer OVERRIDE_GLTF_EMISSIVE_FACTOR = 8 +const integer OVERRIDE_GLTF_METALLIC_FACTOR = 6 +const integer OVERRIDE_GLTF_ROUGHNESS_FACTOR = 7 +const integer PARCEL_COUNT_GROUP = 2 +const integer PARCEL_COUNT_OTHER = 3 +const integer PARCEL_COUNT_OWNER = 1 +const integer PARCEL_COUNT_SELECTED = 4 +const integer PARCEL_COUNT_TEMP = 5 +const integer PARCEL_COUNT_TOTAL = 0 +const integer PARCEL_DETAILS_AREA = 4 +const integer PARCEL_DETAILS_DESC = 1 +const integer PARCEL_DETAILS_FLAGS = 12 +const integer PARCEL_DETAILS_GROUP = 3 +const integer PARCEL_DETAILS_ID = 5 +const integer PARCEL_DETAILS_LANDING_LOOKAT = 10 +const integer PARCEL_DETAILS_LANDING_POINT = 9 +const integer PARCEL_DETAILS_NAME = 0 +const integer PARCEL_DETAILS_OWNER = 2 +const integer PARCEL_DETAILS_PRIM_CAPACITY = 7 +const integer PARCEL_DETAILS_PRIM_USED = 8 +const integer PARCEL_DETAILS_SCRIPT_DANGER = 13 +const integer PARCEL_DETAILS_SEE_AVATARS = 6 +const integer PARCEL_DETAILS_TP_ROUTING = 11 +const integer PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY = 0x08000000 +const integer PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS = 0x4000000 +const integer PARCEL_FLAG_ALLOW_CREATE_OBJECTS = 0x40 +const integer PARCEL_FLAG_ALLOW_DAMAGE = 0x20 +const integer PARCEL_FLAG_ALLOW_FLY = 0x1 +const integer PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY = 0x10000000 +const integer PARCEL_FLAG_ALLOW_GROUP_SCRIPTS = 0x2000000 +const integer PARCEL_FLAG_ALLOW_LANDMARK = 0x8 +const integer PARCEL_FLAG_ALLOW_SCRIPTS = 0x2 +const integer PARCEL_FLAG_ALLOW_TERRAFORM = 0x10 +const integer PARCEL_FLAG_LINDEN_HOMES = 0x800000 +const integer PARCEL_FLAG_LOCAL_SOUND_ONLY = 0x8000 +const integer PARCEL_FLAG_RESTRICT_PUSHOBJECT = 0x200000 +const integer PARCEL_FLAG_USE_ACCESS_GROUP = 0x100 +const integer PARCEL_FLAG_USE_ACCESS_LIST = 0x200 +const integer PARCEL_FLAG_USE_BAN_LIST = 0x400 +const integer PARCEL_FLAG_USE_LAND_PASS_LIST = 0x800 +const integer PARCEL_MEDIA_COMMAND_AGENT = 7 +const integer PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9 +const integer PARCEL_MEDIA_COMMAND_DESC = 12 +const integer PARCEL_MEDIA_COMMAND_LOOP = 3 +const integer PARCEL_MEDIA_COMMAND_LOOP_SET = 13 +const integer PARCEL_MEDIA_COMMAND_PAUSE = 1 +const integer PARCEL_MEDIA_COMMAND_PLAY = 2 +const integer PARCEL_MEDIA_COMMAND_SIZE = 11 +const integer PARCEL_MEDIA_COMMAND_STOP = 0 +const integer PARCEL_MEDIA_COMMAND_TEXTURE = 4 +const integer PARCEL_MEDIA_COMMAND_TIME = 6 +const integer PARCEL_MEDIA_COMMAND_TYPE = 10 +const integer PARCEL_MEDIA_COMMAND_UNLOAD = 8 +const integer PARCEL_MEDIA_COMMAND_URL = 5 +const integer PASSIVE = 0x4 +const integer PASS_ALWAYS = 1 +const integer PASS_IF_NOT_HANDLED = 0 +const integer PASS_NEVER = 2 +const integer PATROL_PAUSE_AT_WAYPOINTS = 0 +const integer PAYMENT_INFO_ON_FILE = 1 +const integer PAYMENT_INFO_USED = 2 +const integer PAY_DEFAULT = -2 +const integer PAY_HIDE = -1 +const integer PERMISSION_ATTACH = 0x20 +const integer PERMISSION_CHANGE_JOINTS = 0x100 +const integer PERMISSION_CHANGE_LINKS = 0x80 +const integer PERMISSION_CHANGE_PERMISSIONS = 0x200 +const integer PERMISSION_CONTROL_CAMERA = 0x800 +const integer PERMISSION_DEBIT = 0x2 +const integer PERMISSION_OVERRIDE_ANIMATIONS = 0x8000 +const integer PERMISSION_RELEASE_OWNERSHIP = 0x40 +const integer PERMISSION_REMAP_CONTROLS = 0x8 +const integer PERMISSION_RETURN_OBJECTS = 65536 +const integer PERMISSION_SILENT_ESTATE_MANAGEMENT = 0x4000 +const integer PERMISSION_TAKE_CONTROLS = 0x4 +const integer PERMISSION_TELEPORT = 0x1000 +const integer PERMISSION_TRACK_CAMERA = 0x400 +const integer PERMISSION_TRIGGER_ANIMATION = 0x10 +const integer PERM_ALL = 0x7FFFFFFF +const integer PERM_COPY = 0x8000 +const integer PERM_MODIFY = 0x4000 +const integer PERM_MOVE = 0x80000 +const integer PERM_TRANSFER = 0x2000 +const float PI = 3.14159265 +const integer PING_PONG = 0x8 +const float PI_BY_TWO = 1.57079633 +const integer PRIM_ALLOW_UNSIT = 39 +const integer PRIM_ALPHA_MODE = 38 +const integer PRIM_ALPHA_MODE_BLEND = 1 +const integer PRIM_ALPHA_MODE_EMISSIVE = 3 +const integer PRIM_ALPHA_MODE_MASK = 2 +const integer PRIM_ALPHA_MODE_NONE = 0 +const integer PRIM_BUMP_BARK = 4 +const integer PRIM_BUMP_BLOBS = 12 +const integer PRIM_BUMP_BRICKS = 5 +const integer PRIM_BUMP_BRIGHT = 1 +const integer PRIM_BUMP_CHECKER = 6 +const integer PRIM_BUMP_CONCRETE = 7 +const integer PRIM_BUMP_DARK = 2 +const integer PRIM_BUMP_DISKS = 10 +const integer PRIM_BUMP_GRAVEL = 11 +const integer PRIM_BUMP_LARGETILE = 14 +const integer PRIM_BUMP_NONE = 0 +const integer PRIM_BUMP_SHINY = 19 +const integer PRIM_BUMP_SIDING = 13 +const integer PRIM_BUMP_STONE = 9 +const integer PRIM_BUMP_STUCCO = 15 +const integer PRIM_BUMP_SUCTION = 16 +const integer PRIM_BUMP_TILE = 8 +const integer PRIM_BUMP_WEAVE = 17 +const integer PRIM_BUMP_WOOD = 3 +const integer PRIM_CAST_SHADOWS = 24 +const integer PRIM_CLICK_ACTION = 43 +const integer PRIM_COLLISION_SOUND = 53 +const integer PRIM_COLOR = 18 +const integer PRIM_DAMAGE = 51 +const integer PRIM_DESC = 28 +const integer PRIM_FLEXIBLE = 21 +const integer PRIM_FULLBRIGHT = 20 +const integer PRIM_GLOW = 25 +const integer PRIM_GLTF_ALPHA_MODE_BLEND = 1 +const integer PRIM_GLTF_ALPHA_MODE_MASK = 2 +const integer PRIM_GLTF_ALPHA_MODE_OPAQUE = 0 +const integer PRIM_GLTF_BASE_COLOR = 48 +const integer PRIM_GLTF_EMISSIVE = 46 +const integer PRIM_GLTF_METALLIC_ROUGHNESS = 47 +const integer PRIM_GLTF_NORMAL = 45 +const integer PRIM_HEALTH = 52 +const integer PRIM_HOLE_CIRCLE = 0x10 +const integer PRIM_HOLE_DEFAULT = 0x00 +const integer PRIM_HOLE_SQUARE = 0x20 +const integer PRIM_HOLE_TRIANGLE = 0x30 +const integer PRIM_LINK_TARGET = 34 +const integer PRIM_MATERIAL = 2 +const integer PRIM_MATERIAL_DENSITY = 0x1 +const integer PRIM_MATERIAL_FLESH = 4 +const integer PRIM_MATERIAL_FRICTION = 0x2 +const integer PRIM_MATERIAL_GLASS = 2 +const integer PRIM_MATERIAL_GRAVITY_MULTIPLIER = 0x8 +const integer PRIM_MATERIAL_LIGHT = 7 +const integer PRIM_MATERIAL_METAL = 1 +const integer PRIM_MATERIAL_PLASTIC = 5 +const integer PRIM_MATERIAL_RESTITUTION = 0x4 +const integer PRIM_MATERIAL_RUBBER = 6 +const integer PRIM_MATERIAL_STONE = 0 +const integer PRIM_MATERIAL_WOOD = 3 +const integer PRIM_MEDIA_ALT_IMAGE_ENABLE = 0 +const integer PRIM_MEDIA_AUTO_LOOP = 4 +const integer PRIM_MEDIA_AUTO_PLAY = 5 +const integer PRIM_MEDIA_AUTO_SCALE = 6 +const integer PRIM_MEDIA_AUTO_ZOOM = 7 +const integer PRIM_MEDIA_CONTROLS = 1 +const integer PRIM_MEDIA_CONTROLS_MINI = 1 +const integer PRIM_MEDIA_CONTROLS_STANDARD = 0 +const integer PRIM_MEDIA_CURRENT_URL = 2 +const integer PRIM_MEDIA_FIRST_CLICK_INTERACT = 8 +const integer PRIM_MEDIA_HEIGHT_PIXELS = 10 +const integer PRIM_MEDIA_HOME_URL = 3 +const integer PRIM_MEDIA_MAX_HEIGHT_PIXELS = 2048 +const integer PRIM_MEDIA_MAX_URL_LENGTH = 1024 +const integer PRIM_MEDIA_MAX_WHITELIST_COUNT = 64 +const integer PRIM_MEDIA_MAX_WHITELIST_SIZE = 1024 +const integer PRIM_MEDIA_MAX_WIDTH_PIXELS = 2048 +const integer PRIM_MEDIA_PARAM_MAX = 14 +const integer PRIM_MEDIA_PERMS_CONTROL = 14 +const integer PRIM_MEDIA_PERMS_INTERACT = 13 +const integer PRIM_MEDIA_PERM_ANYONE = 4 +const integer PRIM_MEDIA_PERM_GROUP = 2 +const integer PRIM_MEDIA_PERM_NONE = 0 +const integer PRIM_MEDIA_PERM_OWNER = 1 +const integer PRIM_MEDIA_WHITELIST = 12 +const integer PRIM_MEDIA_WHITELIST_ENABLE = 11 +const integer PRIM_MEDIA_WIDTH_PIXELS = 9 +const integer PRIM_NAME = 27 +const integer PRIM_NORMAL = 37 +const integer PRIM_OMEGA = 32 +const integer PRIM_PHANTOM = 5 +const integer PRIM_PHYSICS = 3 +const integer PRIM_PHYSICS_SHAPE_CONVEX = 2 +const integer PRIM_PHYSICS_SHAPE_NONE = 1 +const integer PRIM_PHYSICS_SHAPE_PRIM = 0 +const integer PRIM_PHYSICS_SHAPE_TYPE = 30 +const integer PRIM_POINT_LIGHT = 23 +const integer PRIM_POSITION = 6 +const integer PRIM_POS_LOCAL = 33 +const integer PRIM_PROJECTOR = 42 +const integer PRIM_REFLECTION_PROBE = 44 +const integer PRIM_REFLECTION_PROBE_BOX = 1 +const integer PRIM_REFLECTION_PROBE_DYNAMIC = 2 +const integer PRIM_REFLECTION_PROBE_MIRROR = 4 +const integer PRIM_RENDER_MATERIAL = 49 +const integer PRIM_ROTATION = 8 +const integer PRIM_ROT_LOCAL = 29 +const integer PRIM_SCRIPTED_SIT_ONLY = 40 +const integer PRIM_SCULPT_FLAG_ANIMESH = 32 +const integer PRIM_SCULPT_FLAG_INVERT = 64 +const integer PRIM_SCULPT_FLAG_MIRROR = 128 +const integer PRIM_SCULPT_TYPE_CYLINDER = 4 +const integer PRIM_SCULPT_TYPE_MASK = 7 +const integer PRIM_SCULPT_TYPE_MESH = 5 +const integer PRIM_SCULPT_TYPE_PLANE = 3 +const integer PRIM_SCULPT_TYPE_SPHERE = 1 +const integer PRIM_SCULPT_TYPE_TORUS = 2 +const integer PRIM_SHINY_HIGH = 3 +const integer PRIM_SHINY_LOW = 1 +const integer PRIM_SHINY_MEDIUM = 2 +const integer PRIM_SHINY_NONE = 0 +const integer PRIM_SIT_FLAGS = 50 +const integer PRIM_SIT_TARGET = 41 +const integer PRIM_SIZE = 7 +const integer PRIM_SLICE = 35 +const integer PRIM_SPECULAR = 36 +const integer PRIM_TEMP_ON_REZ = 4 +const integer PRIM_TEXGEN = 22 +const integer PRIM_TEXGEN_DEFAULT = 0 +const integer PRIM_TEXGEN_PLANAR = 1 +const integer PRIM_TEXT = 26 +const integer PRIM_TEXTURE = 17 +const integer PRIM_TYPE = 9 +const integer PRIM_TYPE_BOX = 0 +const integer PRIM_TYPE_CYLINDER = 1 +const integer PRIM_TYPE_PRISM = 2 +const integer PRIM_TYPE_RING = 6 +const integer PRIM_TYPE_SCULPT = 7 +const integer PRIM_TYPE_SPHERE = 3 +const integer PRIM_TYPE_TORUS = 4 +const integer PRIM_TYPE_TUBE = 5 +const integer PROFILE_NONE = 0 +const integer PROFILE_SCRIPT_MEMORY = 1 +const integer PSYS_PART_BF_DEST_COLOR = 2 +const integer PSYS_PART_BF_ONE = 0 +const integer PSYS_PART_BF_ONE_MINUS_DEST_COLOR = 4 +const integer PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA = 9 +const integer PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR = 5 +const integer PSYS_PART_BF_SOURCE_ALPHA = 7 +const integer PSYS_PART_BF_SOURCE_COLOR = 3 +const integer PSYS_PART_BF_ZERO = 1 +const integer PSYS_PART_BLEND_FUNC_DEST = 25 +const integer PSYS_PART_BLEND_FUNC_SOURCE = 24 +const integer PSYS_PART_BOUNCE_MASK = 0x4 +const integer PSYS_PART_EMISSIVE_MASK = 0x100 +const integer PSYS_PART_END_ALPHA = 4 +const integer PSYS_PART_END_COLOR = 3 +const integer PSYS_PART_END_GLOW = 27 +const integer PSYS_PART_END_SCALE = 6 +const integer PSYS_PART_FLAGS = 0 +const integer PSYS_PART_FOLLOW_SRC_MASK = 0x10 +const integer PSYS_PART_FOLLOW_VELOCITY_MASK = 0x20 +const integer PSYS_PART_INTERP_COLOR_MASK = 0x1 +const integer PSYS_PART_INTERP_SCALE_MASK = 0x2 +const integer PSYS_PART_MAX_AGE = 7 +const integer PSYS_PART_RIBBON_MASK = 0x400 +const integer PSYS_PART_START_ALPHA = 2 +const integer PSYS_PART_START_COLOR = 1 +const integer PSYS_PART_START_GLOW = 26 +const integer PSYS_PART_START_SCALE = 5 +const integer PSYS_PART_TARGET_LINEAR_MASK = 0x80 +const integer PSYS_PART_TARGET_POS_MASK = 0x40 +const integer PSYS_PART_WIND_MASK = 0x8 +const integer PSYS_SRC_ACCEL = 8 +const integer PSYS_SRC_ANGLE_BEGIN = 22 +const integer PSYS_SRC_ANGLE_END = 23 +const integer PSYS_SRC_BURST_PART_COUNT = 15 +const integer PSYS_SRC_BURST_RADIUS = 16 +const integer PSYS_SRC_BURST_RATE = 13 +const integer PSYS_SRC_BURST_SPEED_MAX = 18 +const integer PSYS_SRC_BURST_SPEED_MIN = 17 +const integer PSYS_SRC_INNERANGLE = 10 +const integer PSYS_SRC_MAX_AGE = 19 +const integer PSYS_SRC_OBJ_REL_MASK = 0x1 +const integer PSYS_SRC_OMEGA = 21 +const integer PSYS_SRC_OUTERANGLE = 11 +const integer PSYS_SRC_PATTERN = 9 +const integer PSYS_SRC_PATTERN_ANGLE = 0x04 +const integer PSYS_SRC_PATTERN_ANGLE_CONE = 0x08 +const integer PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 0x10 +const integer PSYS_SRC_PATTERN_DROP = 0x01 +const integer PSYS_SRC_PATTERN_EXPLODE = 0x02 +const integer PSYS_SRC_TARGET_KEY = 20 +const integer PSYS_SRC_TEXTURE = 12 +const integer PUBLIC_CHANNEL = 0 +const integer PURSUIT_FUZZ_FACTOR = 3 +const integer PURSUIT_GOAL_TOLERANCE = 5 +const integer PURSUIT_INTERCEPT = 4 +const integer PURSUIT_OFFSET = 1 +const integer PU_EVADE_HIDDEN = 0x07 +const integer PU_EVADE_SPOTTED = 0x08 +const integer PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED = 10 +const integer PU_FAILURE_INVALID_GOAL = 0x03 +const integer PU_FAILURE_INVALID_START = 0x02 +const integer PU_FAILURE_NO_NAVMESH = 0x09 +const integer PU_FAILURE_NO_VALID_DESTINATION = 0x06 +const integer PU_FAILURE_OTHER = 1000000 +const integer PU_FAILURE_PARCEL_UNREACHABLE = 11 +const integer PU_FAILURE_TARGET_GONE = 0x05 +const integer PU_FAILURE_UNREACHABLE = 0x04 +const integer PU_GOAL_REACHED = 0x01 +const integer PU_SLOWDOWN_DISTANCE_REACHED = 0x00 +const float RAD_TO_DEG = 57.2957795 +const integer RCERR_CAST_TIME_EXCEEDED = -3 +const integer RCERR_SIM_PERF_LOW = -2 +const integer RCERR_UNKNOWN = -1 +const integer RC_DATA_FLAGS = 2 +const integer RC_DETECT_PHANTOM = 1 +const integer RC_GET_LINK_NUM = 4 +const integer RC_GET_NORMAL = 1 +const integer RC_GET_ROOT_KEY = 2 +const integer RC_MAX_HITS = 3 +const integer RC_REJECT_AGENTS = 1 +const integer RC_REJECT_LAND = 8 +const integer RC_REJECT_NONPHYSICAL = 4 +const integer RC_REJECT_PHYSICAL = 2 +const integer RC_REJECT_TYPES = 0 +const integer REGION_FLAG_ALLOW_DAMAGE = 0x1 +const integer REGION_FLAG_ALLOW_DIRECT_TELEPORT = 0x100000 +const integer REGION_FLAG_BLOCK_FLY = 0x80000 +const integer REGION_FLAG_BLOCK_FLYOVER = 0x8000000 +const integer REGION_FLAG_BLOCK_TERRAFORM = 0x40 +const integer REGION_FLAG_DISABLE_COLLISIONS = 0x1000 +const integer REGION_FLAG_DISABLE_PHYSICS = 0x4000 +const integer REGION_FLAG_FIXED_SUN = 0x10 +const integer REGION_FLAG_RESTRICT_PUSHOBJECT = 0x400000 +const integer REGION_FLAG_SANDBOX = 0x100 +const integer REMOTE_DATA_CHANNEL = 1 +const integer REMOTE_DATA_REPLY = 3 +const integer REMOTE_DATA_REQUEST = 2 +const integer REQUIRE_LINE_OF_SIGHT = 2 +const integer RESTITUTION = 4 +const integer REVERSE = 0x4 +const integer REZ_ACCEL = 5 +const integer REZ_DAMAGE = 8 +const integer REZ_DAMAGE_TYPE = 12 +const integer REZ_FLAGS = 1 +const integer REZ_FLAG_BLOCK_GRAB_OBJECT = 0x0080 +const integer REZ_FLAG_DIE_ON_COLLIDE = 0x0008 +const integer REZ_FLAG_DIE_ON_NOENTRY = 0x0010 +const integer REZ_FLAG_NO_COLLIDE_FAMILY = 0x0040 +const integer REZ_FLAG_NO_COLLIDE_OWNER = 0x0020 +const integer REZ_FLAG_PHANTOM = 0x0004 +const integer REZ_FLAG_PHYSICAL = 0x0002 +const integer REZ_FLAG_TEMP = 0x0001 +const integer REZ_LOCK_AXES = 11 +const integer REZ_OMEGA = 7 +const integer REZ_PARAM = 0 +const integer REZ_PARAM_STRING = 13 +const integer REZ_POS = 2 +const integer REZ_ROT = 3 +const integer REZ_SOUND = 9 +const integer REZ_SOUND_COLLIDE = 10 +const integer REZ_TORQUE = 6 +const integer REZ_VEL = 4 +const integer ROTATE = 0x20 +const integer SCALE = 0x40 +const integer SCRIPTED = 0x8 +const integer SIM_STAT_ACTIVE_SCRIPT_COUNT = 12 +const integer SIM_STAT_AGENT_COUNT = 10 +const integer SIM_STAT_AGENT_MS = 7 +const integer SIM_STAT_AGENT_UPDATES = 2 +const integer SIM_STAT_AI_MS = 26 +const integer SIM_STAT_ASSET_DOWNLOADS = 15 +const integer SIM_STAT_ASSET_UPLOADS = 16 +const integer SIM_STAT_CHILD_AGENT_COUNT = 11 +const integer SIM_STAT_FRAME_MS = 3 +const integer SIM_STAT_IMAGE_MS = 8 +const integer SIM_STAT_IO_PUMP_MS = 24 +const integer SIM_STAT_NET_MS = 4 +const integer SIM_STAT_OTHER_MS = 5 +const integer SIM_STAT_PACKETS_IN = 13 +const integer SIM_STAT_PACKETS_OUT = 14 +const integer SIM_STAT_PCT_CHARS_STEPPED = 0 +const integer SIM_STAT_PHYSICS_FPS = 1 +const integer SIM_STAT_PHYSICS_MS = 6 +const integer SIM_STAT_PHYSICS_OTHER_MS = 20 +const integer SIM_STAT_PHYSICS_SHAPE_MS = 19 +const integer SIM_STAT_PHYSICS_STEP_MS = 18 +const integer SIM_STAT_SCRIPT_EPS = 21 +const integer SIM_STAT_SCRIPT_MS = 9 +const integer SIM_STAT_SCRIPT_RUN_PCT = 25 +const integer SIM_STAT_SLEEP_MS = 23 +const integer SIM_STAT_SPARE_MS = 22 +const integer SIM_STAT_UNACKED_BYTES = 17 +const integer SIT_FLAG_ALLOW_UNSIT = 0x0002 +const integer SIT_FLAG_NO_COLLIDE = 0x0010 +const integer SIT_FLAG_NO_DAMAGE = 0x0020 +const integer SIT_FLAG_SCRIPTED_ONLY = 0x0004 +const integer SIT_FLAG_SIT_TARGET = 0x0001 +const integer SIT_INVALID_AGENT = -4 +const integer SIT_INVALID_LINK = -5 +const integer SIT_INVALID_OBJECT = -7 +const integer SIT_NOT_EXPERIENCE = -1 +const integer SIT_NO_ACCESS = -6 +const integer SIT_NO_EXPERIENCE_PERMISSION = -2 +const integer SIT_NO_SIT_TARGET = -3 +const integer SKY_ABSORPTION_CONFIG = 16 +const integer SKY_AMBIENT = 0 +const integer SKY_BLUE = 22 +const integer SKY_CLOUDS = 2 +const integer SKY_CLOUD_TEXTURE = 19 +const integer SKY_DENSITY_PROFILE_COUNTS = 3 +const integer SKY_DOME = 4 +const integer SKY_GAMMA = 5 +const integer SKY_GLOW = 6 +const integer SKY_HAZE = 23 +const integer SKY_LIGHT = 8 +const integer SKY_MIE_CONFIG = 17 +const integer SKY_MOON = 9 +const integer SKY_MOON_TEXTURE = 20 +const integer SKY_PLANET = 10 +const integer SKY_RAYLEIGH_CONFIG = 18 +const integer SKY_REFLECTION_PROBE_AMBIANCE = 24 +const integer SKY_REFRACTION = 11 +const integer SKY_STAR_BRIGHTNESS = 13 +const integer SKY_SUN = 14 +const integer SKY_SUN_TEXTURE = 21 +const integer SKY_TEXTURE_DEFAULTS = 1 +const integer SKY_TRACKS = 15 +const integer SMOOTH = 0x10 +const integer SOUND_LOOP = 0x01 +const integer SOUND_PLAY = 0x00 +const integer SOUND_SYNC = 0x04 +const integer SOUND_TRIGGER = 0x02 +const float SQRT2 = 1.41421356 +const integer STATUS_BLOCK_GRAB = 0x40 +const integer STATUS_BLOCK_GRAB_OBJECT = 0x400 +const integer STATUS_BOUNDS_ERROR = 1002 +const integer STATUS_CAST_SHADOWS = 0x200 +const integer STATUS_DIE_AT_EDGE = 0x80 +const integer STATUS_DIE_AT_NO_ENTRY = 0x800 +const integer STATUS_INTERNAL_ERROR = 1999 +const integer STATUS_MALFORMED_PARAMS = 1000 +const integer STATUS_NOT_FOUND = 1003 +const integer STATUS_NOT_SUPPORTED = 1004 +const integer STATUS_OK = 0 +const integer STATUS_PHANTOM = 0x10 +const integer STATUS_PHYSICS = 0x1 +const integer STATUS_RETURN_AT_EDGE = 0x100 +const integer STATUS_ROTATE_X = 0x2 +const integer STATUS_ROTATE_Y = 0x4 +const integer STATUS_ROTATE_Z = 0x8 +const integer STATUS_SANDBOX = 0x20 +const integer STATUS_TYPE_MISMATCH = 1001 +const integer STATUS_WHITELIST_FAILED = 2001 +const integer STRING_TRIM = 0x03 +const integer STRING_TRIM_HEAD = 0x01 +const integer STRING_TRIM_TAIL = 0x02 +const integer TARGETED_EMAIL_OBJECT_OWNER = 0x02 +const integer TARGETED_EMAIL_ROOT_CREATOR = 0x01 +const integer TERRAIN_DETAIL_1 = 0 +const integer TERRAIN_DETAIL_2 = 1 +const integer TERRAIN_DETAIL_3 = 2 +const integer TERRAIN_DETAIL_4 = 3 +const integer TERRAIN_HEIGHT_RANGE_NE = 7 +const integer TERRAIN_HEIGHT_RANGE_NW = 6 +const integer TERRAIN_HEIGHT_RANGE_SE = 5 +const integer TERRAIN_HEIGHT_RANGE_SW = 4 +const integer TERRAIN_PBR_OFFSET_1 = 16 +const integer TERRAIN_PBR_OFFSET_2 = 17 +const integer TERRAIN_PBR_OFFSET_3 = 18 +const integer TERRAIN_PBR_OFFSET_4 = 19 +const integer TERRAIN_PBR_ROTATION_1 = 12 +const integer TERRAIN_PBR_ROTATION_2 = 13 +const integer TERRAIN_PBR_ROTATION_3 = 14 +const integer TERRAIN_PBR_ROTATION_4 = 15 +const integer TERRAIN_PBR_SCALE_1 = 8 +const integer TERRAIN_PBR_SCALE_2 = 9 +const integer TERRAIN_PBR_SCALE_3 = 10 +const integer TERRAIN_PBR_SCALE_4 = 11 +const string TEXTURE_BLANK = "5748decc-f629-461c-9a36-a35a221fe21f" +const string TEXTURE_DEFAULT = "89556747-24cb-43ed-920b-47caed15465f" +const string TEXTURE_MEDIA = "8b5fec65-8d8d-9dc5-cda8-8fdf2716e361" +const string TEXTURE_PLYWOOD = "89556747-24cb-43ed-920b-47caed15465f" +const string TEXTURE_TRANSPARENT = "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903" +const integer TOUCH_INVALID_FACE = -1 +const vector TOUCH_INVALID_TEXCOORD = <-1.0, -1.0, 0.0> +const vector TOUCH_INVALID_VECTOR = <0.0, 0.0, 0.0> +const integer TP_ROUTING_BLOCKED = 0 +const integer TP_ROUTING_FREE = 2 +const integer TP_ROUTING_LANDINGP = 1 +const integer TRANSFER_BAD_OPTS = -1 +const integer TRANSFER_BAD_ROOT = -5 +const integer TRANSFER_DEST = 0 +const integer TRANSFER_FLAGS = 1 +const integer TRANSFER_FLAG_COPY = 0x0004 +const integer TRANSFER_FLAG_RESERVED = 0x0001 +const integer TRANSFER_FLAG_TAKE = 0x0002 +const integer TRANSFER_NO_ATTACHMENT = -7 +const integer TRANSFER_NO_ITEMS = -4 +const integer TRANSFER_NO_PERMS = -6 +const integer TRANSFER_NO_TARGET = -2 +const integer TRANSFER_OK = 0 +const integer TRANSFER_THROTTLE = -3 +const integer TRAVERSAL_TYPE = 7 +const integer TRAVERSAL_TYPE_FAST = 1 +const integer TRAVERSAL_TYPE_NONE = 2 +const integer TRAVERSAL_TYPE_SLOW = 0 +const integer TRUE = 1 +const float TWO_PI = 6.28318530 +const integer TYPE_FLOAT = 2 +const integer TYPE_INTEGER = 1 +const integer TYPE_INVALID = 0 +const integer TYPE_KEY = 4 +const integer TYPE_ROTATION = 6 +const integer TYPE_STRING = 3 +const integer TYPE_VECTOR = 5 +const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED" +const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED" +const integer VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY = 32 +const integer VEHICLE_ANGULAR_DEFLECTION_TIMESCALE = 33 +const integer VEHICLE_ANGULAR_FRICTION_TIMESCALE = 17 +const integer VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE = 35 +const integer VEHICLE_ANGULAR_MOTOR_DIRECTION = 19 +const integer VEHICLE_ANGULAR_MOTOR_TIMESCALE = 34 +const integer VEHICLE_BANKING_EFFICIENCY = 38 +const integer VEHICLE_BANKING_MIX = 39 +const integer VEHICLE_BANKING_TIMESCALE = 40 +const integer VEHICLE_BUOYANCY = 27 +const integer VEHICLE_FLAG_BLOCK_INTERFERENCE = 0x400 +const integer VEHICLE_FLAG_CAMERA_DECOUPLED = 0x200 +const integer VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT = 0x10 +const integer VEHICLE_FLAG_HOVER_TERRAIN_ONLY = 0x8 +const integer VEHICLE_FLAG_HOVER_UP_ONLY = 0x20 +const integer VEHICLE_FLAG_HOVER_WATER_ONLY = 0x4 +const integer VEHICLE_FLAG_LIMIT_MOTOR_UP = 0x40 +const integer VEHICLE_FLAG_LIMIT_ROLL_ONLY = 0x2 +const integer VEHICLE_FLAG_MOUSELOOK_BANK = 0x100 +const integer VEHICLE_FLAG_MOUSELOOK_STEER = 0x80 +const integer VEHICLE_FLAG_NO_DEFLECTION_UP = 0x1 +const integer VEHICLE_FLAG_NO_FLY_UP = 0x1 +const integer VEHICLE_HOVER_EFFICIENCY = 25 +const integer VEHICLE_HOVER_HEIGHT = 24 +const integer VEHICLE_HOVER_TIMESCALE = 26 +const integer VEHICLE_LINEAR_DEFLECTION_EFFICIENCY = 28 +const integer VEHICLE_LINEAR_DEFLECTION_TIMESCALE = 29 +const integer VEHICLE_LINEAR_FRICTION_TIMESCALE = 16 +const integer VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE = 31 +const integer VEHICLE_LINEAR_MOTOR_DIRECTION = 18 +const integer VEHICLE_LINEAR_MOTOR_OFFSET = 20 +const integer VEHICLE_LINEAR_MOTOR_TIMESCALE = 30 +const integer VEHICLE_REFERENCE_FRAME = 44 +const integer VEHICLE_TYPE_AIRPLANE = 4 +const integer VEHICLE_TYPE_BALLOON = 5 +const integer VEHICLE_TYPE_BOAT = 3 +const integer VEHICLE_TYPE_CAR = 2 +const integer VEHICLE_TYPE_NONE = 0 +const integer VEHICLE_TYPE_SLED = 1 +const integer VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY = 36 +const integer VEHICLE_VERTICAL_ATTRACTION_TIMESCALE = 37 +const integer VERTICAL = 0 +const integer WANDER_PAUSE_AT_WAYPOINTS = 0 +const integer WATER_BLUR_MULTIPLIER = 100 +const integer WATER_FOG = 101 +const integer WATER_FRESNEL = 102 +const integer WATER_NORMAL_SCALE = 104 +const integer WATER_NORMAL_TEXTURE = 107 +const integer WATER_REFRACTION = 105 +const integer WATER_TEXTURE_DEFAULTS = 103 +const integer WATER_WAVE_DIRECTION = 106 +const integer XP_ERROR_EXPERIENCES_DISABLED = 2 +const integer XP_ERROR_EXPERIENCE_DISABLED = 8 +const integer XP_ERROR_EXPERIENCE_SUSPENDED = 9 +const integer XP_ERROR_INVALID_EXPERIENCE = 7 +const integer XP_ERROR_INVALID_PARAMETERS = 3 +const integer XP_ERROR_KEY_NOT_FOUND = 14 +const integer XP_ERROR_MATURITY_EXCEEDED = 16 +const integer XP_ERROR_NONE = 0 +const integer XP_ERROR_NOT_FOUND = 6 +const integer XP_ERROR_NOT_PERMITTED = 4 +const integer XP_ERROR_NOT_PERMITTED_LAND = 17 +const integer XP_ERROR_NO_EXPERIENCE = 5 +const integer XP_ERROR_QUOTA_EXCEEDED = 11 +const integer XP_ERROR_REQUEST_PERM_TIMEOUT = 18 +const integer XP_ERROR_RETRY_UPDATE = 15 +const integer XP_ERROR_STORAGE_EXCEPTION = 13 +const integer XP_ERROR_STORE_DISABLED = 12 +const integer XP_ERROR_THROTTLED = 1 +const integer XP_ERROR_UNKNOWN_ERROR = 10 +const rotation ZERO_ROTATION = <0.0, 0.0, 0.0, 1.0> +const vector ZERO_VECTOR = <0.0, 0.0, 0.0> +event at_rot_target( integer TargetNumber, rotation TargetRotation, rotation CurrentRotation ) +event at_target( integer TargetNumber, vector TargetPosition, vector CurrentPosition ) +event attach( key AvatarID ) +event changed( integer Changed ) +event collision( integer NumberOfCollisions ) +event collision_end( integer NumberOfCollisions ) +event collision_start( integer NumberOfCollisions ) +event control( key AvatarID, integer Levels, integer Edges ) +event dataserver( key RequestID, string Data ) +event email( string Time, string Address, string Subject, string Body, integer NumberRemaining ) +event experience_permissions( key agent_id ) +event experience_permissions_denied( key agent_id, integer Reason ) +event final_damage( integer count ) +event game_control( key id, integer buttons, list axes ) +event http_request( key HTTPRequestID, string HTTPMethod, string Body ) +event http_response( key HTTPRequestID, integer Status, list Metadata, string Body ) +event land_collision( vector Position ) +event land_collision_end( vector Position ) +event land_collision_start( vector Position ) +event link_message( integer SendersLink, integer Value, string Text, key ID ) +event linkset_data( integer action, string name, string value ) +event listen( integer Channel, string Name, key ID, string Text ) +event money( key Payer, integer Amount ) +event moving_end( ) +event moving_start( ) +event no_sensor( ) +event not_at_rot_target( ) +event not_at_target( ) +event object_rez( key RezzedObjectsID ) +event on_damage( integer count ) +event on_death( ) +event on_rez( integer StartParameter ) +event path_update( integer Type, list Reserved ) +event remote_data( integer EventType, key ChannelID, key MessageID, string Sender, integer IData, string SData ) +event run_time_permissions( integer PermissionFlags ) +event sensor( integer NumberDetected ) +event state_entry( ) +event state_exit( ) +event timer( ) +event touch( integer NumberOfTouches ) +event touch_end( integer NumberOfTouches ) +event touch_start( integer NumberOfTouches ) +event transaction_result( key RequestID, integer Success, string Message )