> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Friend Script Trigger Reference

Reference for event triggers that call extended scripts



## Trigger

### updateProfile

Update profile

**Related methods:**
updateProfile - Update profile


#### Synchronous Execution Script

The script is executed synchronously before the update profile process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| profile | [Profile](../sdk/#profile) | Profile |
| oldProfile | [Profile](../sdk/#profile) | Old profile |
| publicProfile | string | New Public profile |
| followerProfile | string | New profile for followers |
| friendProfile | string | New profile for friends |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow update profile |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local profile = args.profile
local oldProfile = args.oldProfile
local publicProfile = args.publicProfile
local followerProfile = args.followerProfile
local friendProfile = args.friendProfile

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the update profile process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| oldProfile | [Profile](../sdk/#profile) | Profile before update |
| profile | [Profile](../sdk/#profile) | Profile after update |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local oldProfile = args.oldProfile
local profile = args.profile

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### follow

Follow

**Related methods:**
follow - Follow a user


#### Synchronous Execution Script

The script is executed synchronously before the follow process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| followUser | [FollowUser](../sdk/#followuser) | Follow Information |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow the follow operation |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local followUser = args.followUser

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the follow process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| followUser | [FollowUser](../sdk/#followuser) | Follow Information |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local followUser = args.followUser

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### unfollow

Unfollow

**Related methods:**
unfollow - Unfollow a user


#### Synchronous Execution Script

The script is executed synchronously before the unfollow process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| followUser | [FollowUser](../sdk/#followuser) | Follow Information |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow the unfollow operation |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local followUser = args.followUser

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the unfollow process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| followUser | [FollowUser](../sdk/#followuser) | Follow Information |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local followUser = args.followUser

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### deleteFriend

Delete friend

**Related methods:**
deleteFriend - Delete friend


#### Synchronous Execution Script

The script is executed synchronously before the delete friend process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| userId | string | User ID |
| friendUser | [FriendUser](../sdk/#frienduser) | Friend |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow deleting a friend |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local userId = args.userId
local friendUser = args.friendUser

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the delete friend process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| userId | string | User ID |
| friendUser | [FriendUser](../sdk/#frienduser) | Friend |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local userId = args.userId
local friendUser = args.friendUser

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### sendRequest

Send Friend Request

**Related methods:**
sendRequest - Send a friend request


#### Synchronous Execution Script

The script is executed synchronously before the send friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow send friend request |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the send friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### cancelRequest

Cancel Friend Request


#### Synchronous Execution Script

The script is executed synchronously before the cancel friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow cancellation of friend request |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the cancel friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### acceptRequest

Accept Friend Request

**Related methods:**
acceptRequest - Accept friend request


#### Synchronous Execution Script

The script is executed synchronously before the accept friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow accepting the friend request |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the accept friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### rejectRequest

Reject Friend Request

**Related methods:**
rejectRequest - Reject friend request


#### Synchronous Execution Script

The script is executed synchronously before the reject friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow rejecting the friend request |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the reject friend request process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| friendRequest | [FriendRequest](../sdk/#friendrequest) | Friend Request |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local friendRequest = args.friendRequest

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  



