--- layout: ../../../layouts/DocsLayout.astro repo: discord-sdk-godot title: Activities --- # Variables Anything of course begins with `DiscordSDK.{:gdscript}` e.g. `DiscordSDK.app_id = {:gdscript}` ### Rich presence | Name | Type | Description | | --- | --- | --- | | `app_id{:gdscript}` | `int{:gdscript}` | The Application ID you need to get to make anything in the SDK → https://discord.com/developers/applications | | `details{:gdscript}` | `String{:gdscript}` | The first text line visible in the Activity (after the app name) | | `state{:gdscript}` | `String{:gdscript}` | The second text line visible in the Activity | | `large_image{:gdscript}` | `String{:gdscript}` | Key for the large image you set while uploading an image to the "Rich Presence" → "Art Assets" tab in your online Discord dev panel | | `large_image_text{:gdscript}` | `String{:gdscript}` | Text wich shows when you hover over the large image | | `small_image{:gdscript}` | `String{:gdscript}` | Key for the small image you set while uploading an image to the "Rich Presence" → "Art Assets" tab in your online Discord dev panel | | `small_image_text{:gdscript}` | `String{:gdscript}` | Text wich shows when you hover over the small image | | `start_timestamp{:gdscript}` | `int{:gdscript}` | The "02:46 elapsed" timestamp in the presence. Get the current time with Godot's `int(Time.get_unix_time_from_system()){:gdscript}` and Discord counts in seconds from it | | `end_timestamp{:gdscript}` | `int{:gdscript}` | The "59:59 elapsed" timestamp in the presence. Get it with Godot's `int(Time.get_unix_time_from_system()){:gdscript}` and add seconds as int e.g. `+ 3600{:gdscript}` → + 1 Hour | ### Invite system The values can be pretty anything since there is no lobby system in the SDK anymore. You should already have a custom lobby system wich can compute the secret and change the values. After an invite every value should be the same as the other player. | Name | Type | Description | | --- | --- | --- | | `party_id{:gdscript}` | `String{:gdscript}` | Unique identifier for the party | | `current_party_size{:gdscript}` | `int{:gdscript}` | The current playercount in the party | | `max_party_size{:gdscript}` | `int{:gdscript}` | Maximum allowed playercount in the party | | `match_secret{:gdscript}` | `String{:gdscript}` | Unique hash for the given match context | | `join_secret{:gdscript}` | `String {:gdscript}` | Unique hash for chat invites and Ask to Join | | `spectate_secret{:gdscript}` | `String{:gdscript}` | Unique hash for Spectate button | | `is_public_party{:gdscript}` | `bool{:gdscript}` | Turn it to `true{:gdscript}` if you want people to join the party without asking. This needs to be enabled in the Discord user settings | | `instanced{:gdscript}` | `bool{:gdscript}` | Whether this activity is an instanced context, like a match | # Signals ### Invite system ### Activity join request **Connect it with:** ```gdscript DiscordSDK.connect("activity_join_request",_on_activity_join_request) ``` **Add it in your gdscript as function:** ```gdscript func _on_activity_join_request(user_requesting): ``` The Signal fires when someone requests to join your Activity via an request join button in Discord.
**Given variable:** [`Dictionary user_requesting{:gdscript}`](/docs/discord-sdk-godot/users#get-current-user)

### Activity join **Connect it with:** ```gdscript DiscordSDK.connect("activity_join",_on_activity_join) ``` **Add it in your gdscript as function:** ```gdscript func _on_activity_join(secret): ``` The Signal fires when someone joins your Activity via an invite or join button in Discord.
**Given variable:** `String secret{:gdscript}`
Send the secret to your custom system to generate the other party values and make them the same as the target user.

### Activity spectate **Connect it with:** ```gdscript DiscordSDK.connect("activity_spectate",_on_activity_spectate) ``` **Add it in your gdscript as function:** ```gdscript func _on_activity_spectate(secret): ``` The Signal fires when someone spectates your Activity via an invite or spectate button in Discord.
**Given variable:** `String secret{:gdscript}`
Send the secret to your custom system to generate the other party values and make them the same as the target user. # Methods ### Refresh After setting any variables you have to reload the SDK with this method ```gdscript DiscordSDK.refresh() ``` ### Clear Disables the Activity. ```gdscript DiscordSDK.clear(reset_values) ``` **Taken variable:** `bool reset_values{:gdscript}` **Standard value:** `false{:gdscript}`
When turning `reset_values{:gdscript}` to `true{:gdscript}` it completely clears the whole activity with its `app_id{:gdscript}` and other values. ### Unclear Reenables the before cleared Activity. Only works with `DiscordSDK.clear(reset_values = false){:gdscript}`(default). ```gdscript DiscordSDK.unclear() ```