The API for ATLust V2.1 works entirely through an HTTP interface, with a few exceptions. The API has several levels, level 0 is basic access that does not require an API token. Anything level 1 and higher requires a token. Level 0 can only be accessed through LSL scripts, Level 1 and higher can be accessed through any HTTP client that sends a valid hash verification.
Basic level 0 access is open to everyone. This allows you to perform level 0 commands through an LSL script on your own character/player.
Level 1 and higher requires an API key (Contact Ariu Arai for a key). The API key allows you to access the API through any HTTP client, as well as any ATLust player (Not just your own, but the player must grant API permissions to your API).
See the example scripts to see how to interact with the API.
All API commands are logged. Abuse of the API may result in your API key being disabled. Abuse includes, but is not limited to:
Players can individually disable API access to their account at any time.
Name: The command name.
Level: The API level required.
Permissions Required: If you require API permissions in order to perform the function.
Description: A description of what the command does.
Requires: Values that are required to complete the command.
Returns: The values that the command returns.
Name | Permissions Required | Level | Description | Requires | Returns |
---|---|---|---|---|---|
TEST | No | 0 | Just a basic test function. | String "Hello, world!" | |
TEST_PERMS | No | 1 | Performs no functions. If you receive an "OK" status, that indicates you have permissions. | target: (String, UUID of player or Character ID) | |
GET_VALUE | Yes | Varies | Returns the requested values. See the ATLust Variables page for more details. |
target: (String, UUID of player or Character ID) names: (Array of Strings, ATLust character variable names) |
Returns each value requested as a key/value pair. |
SET_VALUE | Yes | Varies | Sets the indicated variables to the indicated values. See the ATLust Variables page for more details. |
target: (String, UUID of player or Character ID) values: (Key/Value pair of variable names with new values) Optionals mod: (Boolean, If true, the value will be added to the existing value instead of replacing it) |
Returns the new value of the variables affected as a key/value pair. Note: Values may be automatically modified in order to comply with limitations. |
GET_ORGAN_VALUE | Yes | Varies | Same as GET_VALUE, except for organ data instead. See ATLust Variables page for more details. |
target: (String, UUID of player or Character ID) names: (Array of Strings, ATLust organ variable names) organ_id: (String, Organ ID of the target organ) |
Returns each value requested as a key/value pair. |
SET_ORGAN_VALUE | Yes | Varies | Same as SET_VALUE, except for organ data instead. See ATLust Variables page for more details. |
target: (String, UUID of player or Character ID) values: (Key/Value pair of variable names with new values) organ_id: (String, Organ ID of the target organ) |
Returns the new value of the variables affected as a key/value pair. Note: Values may be automatically modified in order to comply with limitations. |
GET_CONDITIONS | Yes | 1 | Gets a list of all conditions on the specified character. | target: (String, UUID of player or Character ID) |
Key/Value pair of all conditions. Key = Condition Type:Condition Modifier (Modifier is used when there are multiple instances of the same condition) Value = Condition info |
GET_SPECIES | Yes | 1 | Gets the specified character's species data. | target: (String, UUID of player or Character ID) | Species object |
GET_PREGNANCY_PROGRESS | Yes | 1 | Gets the pregnancy progress for the specified character. | target: (String, UUID of player or Character ID) | Float, 0.0 - 1.0 |
GET_PREGNANCY_COUNTS | Yes | 1 | Gets the specified character's number of pregnancies in each organ. | target: (String, UUID of player or Character ID) | Key/Value pair of organ name and number of pregnancies inside of it. |
GET_ORGANS | Yes | 1 | Gets a list of all the organs the specified character has. | target: (String, UUID of player or Character ID) | Key/Value pair of each type of organ (Key) and a list of each types of those organs (Value). |
GET_IS_ATLUST_USER | No | 1 | Checks to see if the indicated agent ID is an ATLust player. | player_id: (String, agent UUID) | Boolean, true if they're an ATLust player. |
GET_IS_PLAYER_ONLINE | No | 1 | Checks to see if the specified ATLust player is currently online (Note: This will return false if the player is online but does not have the ATLust HUD attached). | player_id: (String, UUID of the ATLust player) | Boolean, true if the player is online and has their HUD attached. |
GET_ACTIVE_SEX_ACTIONS | Yes | 1 | Returns a list of all active sex actions being performed on or by the specified character. | player_id: (String, UUID of the ATLust player) |
Array of objects: init: (String, Player ID of the player that started this action) rec_player: (String, Player ID of the receiving player) id: (Integer, ID of the sex action) name: (String, Name of the sex action) pen: (Boolean, True if the sex action is penetrative) init_organ: (String, Organ ID of the organ that initialized this action) rec_organ: (String, Organ ID of the organ that is receiving this action) |
GET_ORGAN_INFO | Yes | 1 | Gets info about the specified organ. |
target: (String, UUID of player or Character ID) organ_id: (String, Organ ID of the target organ) |
Varies (See Organ Info) |
MAKE_CUM | Yes | 2 | Creates a cum object from the specified character |
target: (String, UUID of player or Character ID) Optionals no_std: (Boolean, If true, infections will not be included in the cum) |
String, cum ID of the cum object created. |
GET_CUM_INFO | No | 2 | Returns info about the cum object. | cum_id: (String, ID of the cum object) |
species: (String, Species object of the cum's species) potency: (Float, 0.0 - 1.0, The potency of the cum) volume: (Float, 0.1 - 500.0, The total volume in ml of this cum) time_created: (Integer, Unix time of when this cum object was created) sources: (Array of Integers, Character ID's of the sources of this cum) |
INJECT_CUM | No | 2 | Injects the specified cum object into the specified organ of the target character. (Note: This function does not count towards titles/desires) |
target: (String, UUID of player or Character ID) cum_id: (String, ID of the cum object) organ_id: (String, Organ id of the target organ) |
|
CUSTOM_CONDITION | Yes | 3 | Creates a custom condition on the specified character. See Custom Conditions for more info. |
target: (String, UUID of player or Character ID) name: (String, Name of the condition) desc: (String, Description of the condition) time: (Int, the number of seconds of this condition's life) id: (String, An optional unique identifier of this condition. If none is specified, two conditions of the same name will overwrite each other) |
|
REGISTER_URL | Yes | 2 | Registers the URL to receive signals from the ATLust server for the specified player. See Receiving Signals for more info. |
player_id: (String, UUID of the ATLust player) url: (String, URL for your application) |
|
SEND_MESSAGE | Yes | 1 | Sends a message to the player through their HUD. |
target: (String, UUID of player or Character ID) message: (String, Message contents) |
|
REGISTER_MENU | Yes | 1 | Registers a menu with the target player's HUD. |
player_id: (String, UUID of the ATLust player) url: (String, A URL from your application that will respond to menu requests) name: (String, The name of this menu) desc: (String, A brief description of what this menu/plugin does) |
|
DEREGISTER_MENU | Yes | 1 | Deregisters the indicated menu from the target player's HUD. |
player_id: (String, UUID of the ATLust player) name: (String, The name of the menu to deregister) |
|
GET_NAME | No | 1 | Returns the character name, title and owner id. | target: (String, UUID of player or Character ID) |
name: (String, Character name) title: (String, Character's current title) name_title: (String, Character's name with title) owner_id: (String, UUID of the character's owner) |
GET_ATTRACTION | Yes (source_char must have your API permissions) | 1 | Returns the amount of attraction the source character has towards the target character. |
source_char: (String, UUID of player or Character ID) target_char: (String, UUID of player or Character ID) |
Float, -1.0 - 1.0: Level of attraction (Higher is more attractive). |
GET_BREEDING_GROUND | No | 0 | Returns info about the specified breeding ground. | parcel_id: (String, UUID of the parcel) |
name: (String, Name of the breeding ground) desc: (String, Description of the breeding ground) owner: (String, UUID of the breeding ground owner) region: (String, Region name where this breeding ground is located) player_count: (Integer, Number of ATLust players at this breeding ground) pos_x, pos_y, pos_z (Integers, X Y and Z coordinates of the breeding ground landing point) |
GET_BREEDING_GROUNDS | No | 0 | Returns a key/value pair list of all active breeding grounds | Key/Value pair: Parcel ID + Breeding Ground name | |
GET_CUM_LIST | Yes | 2 | Returns a list of all cum in the target's specified organ |
target: (String, UUID of player or Character ID) organ_id: (String, ID of the target organ) |
Array of JSON objects. vol: (Float, The amount of cum in ML) pot: (Float, 0.0 - 1.0, The potency of the cum) is_known: (Boolean, If true, the character is aware of the cum's presence) anon: (Boolean, If true, the character is not aware of the source of the cum) time: (Integer, Unix time of when the cum was received) spec: (List, The species of the cum) source_chars: (List, Character ID's of the cum sources) |
GET_INVENTORY_ITEMS | Yes | 2 | Returns a key/value pair of all inventory items and their quantities that the player has. | player_id: (String, UUID of the ATLust player) | Key/Value pair. Item Name = Quantity |
GET_AVAILABLE_TITLES | Yes | 0 | Returns a list of all titles that the character has earned. | target: (String, UUID of player or Character ID) | Array of Strings. |
REMOVE_CONDITION | Yes | 3 | Removes the indicated condition. Must include modifier, or : at the end of the condition name/ID. |
target: (String, UUID of player or Character ID) name: (String, the condition ID. Must be exactly as seen in the Get Conditions list. IE: Condition:123 if the condition has a modifier of 123. Or just Condition: if there is no modifier.) |
|
MODIFY_RESTRICTIONS | Yes | 3 | Adds or removes the indicated restriction types on the target player. |
player_id: (String, UUID of the ATLust player) restrictions: (Array of Strings, Restriction types to change on the target player) state: (Boolean, True if you want the restrictions added, false to remove them) |
OK |
GET_ALL_RESTRICTIONS | Yes | 0 | Lists each restriction that the player has imposed on them. | player_id: (String, UUID of the ATLust player) | Array of Strings |
GET_SEX_ACTION_INFO | No | 1 | Returns info about the sex action | id: (Integer, Sex action ID) |
name: (String, Name of the sex action) desc: (String, Description of the sex action) init_organ: (String, The organ type that the initiator uses) rec_organ: (String, The organ type that the receiver uses) owner: (Key, ID of the player that owns this sex action. Null key means a default action) penetrative: (Boolean, True if this sex action involves penetration) |
GET_PLAY_ACTION_INFO | No | 1 | Returns info about the play action | id: (Integer, Play action ID) |
name: (String, Name of the play action) desc: (String, Description of the play action) init_organ: (String, The organ type that the initiator uses) rec_organ: (String, The organ type that the receiver uses) owner: (Key, ID of the player that owns this play action. Null key means a default action) lust: (Float, The amount of lust that this play action needs) |
GET_TEASE_ACTION_INFO | No | 1 | Returns info about the tease action | id: (Integer, Tease action ID) |
name: (String, Name of the tease action) desc: (String, Description of the tease action) init_organ: (String, The organ type that the initiator uses) rec_organ: (String, The organ type that the receiver uses) owner: (Key, ID of the player that owns this tease action. Null key means a default action) lust: (Float, The amount of lust that this tease action needs) |
GET_HUD_VERSION | No | 0 | Returns the HUD version | player_id: (String, UUID of the ATLust player) | Float, HUD version. |
CUM_IN_ORGAN | Yes | 3 | Causes the source organ to climax with the target organ. |
target: (String, UUID of target player or Character ID)
source: (String, UUID of source player or Character ID)
source_organ_id: (String, Organ ID of the source organ)
target_organ_id: (String, Organ ID of the target organ)
Optionals rp_mode: (Boolean, True if the climax will be counted as RP mode)
climax_type: (String, The type of climax. Defaults to inside) |
OK |
HUD_DIALOG | Yes | 3 | Creates a dialog popup for the player to respond to. Response is sent through the DIALOG_RESPONSE signal. |
player_id: (String, UUID of the ATLust player)
message: (String, A message that will appear above the buttons in the dialog)
buttons: (Array of Strings, Buttons for the dialog. Max of 12 buttons)
id: (Integer, A way to identify which responses came from which dialogs. Must be 99999 or lower)
Optionals
sound: (Boolean, If true, the HUD will play the dialog alert sound) |
OK |
KV_SET | Yes | 1 | Sets a key-value record on the target character or player. |
target: (String, UUID of player or Character ID) key: (String, The ID for the value) value: (Any value, must be less than 1000 characters if a string) |
OK |
KV_GET | Yes | 1 | Gets the value for the corresponding key. |
target: (String, UUID of player or Character ID) key: (String, The ID for the value) |
Value for the key if present, otherwise returns NO_VALUE status if key does not exist. |
KV_DEL | Yes | 1 | Deletes the KV record. Returns OK status even if the record does not exist. |
target: (String, UUID of player or Character ID) key: (String, The ID for the value) |
OK |
KV_LIST | Yes | 1 | Returns all keys for the target. | target: (String, UUID of player or Character ID) | Array of Strings |
KV_CLEAR | Yes | 1 | Deletes all records for the target. | target: (String, UUID of player or Character ID) | OK |
GET_INFECTIONS | Yes | 2 | Returns information on all active infections for the target. | target: (String, UUID of player or Character ID) | Array of objects. |
GET_NEARBY_PLAYERS | Yes | 1 | Returns a list of all nearby players. | player_id: (String, UUID of the ATLust player) | Array of objects. (id, name, char_id, char_name) |
ENABLE_DISABLE_ORGAN | Yes | 1 | Enables or disables the organ. Disabling prevents interactions with the organ. Organs remain disabled for only 2 minutes, so you must “renew” the disable before then. |
target: (String, UUID of player or Character ID) organ_id: (String, Organ ID of the target organ) enable: (Boolean, If true, the organ will be enabled) |
OK |
To see which values you can view and modify, go to this page (You must be logged in and have an API Key associated with your account).
Some values must be formatted as JSON objects in order to be modified, otherwise they will result in errors.
Value Type | Format |
---|---|
Pronoun |
"pronoun": { "possessive_pronoun": "hers", "possessive_adjective": "her", "objective_pronoun": "her", "subjective_pronoun": "she" } |
Title | Value must be an internal name. These can be found in the GET_TITLES function. |
ClimaxType |
Must be one of these values.
|
Vector |
{ "x": 1.0, "y": 1.0, "z": 1.0 } |
Custom conditions allow you to set a condition on a character and cause certain effects. These must be passed along in the CUSTOM_CONDITION command as key/value pairs. Currently the effects supported are:
Name | Value | Description |
---|---|---|
arousal_add | Float: -0.5 - 0.5 | Increases or decreases arousal by the provided amount every minute (Use negative values to decrease arousal). |
lust_add | Float: -0.5 - 0.5 | Increases or decreases lust by the provided amount every minute (Use negative values to decrease lust). |
sensitivity_effect | Float : -4.99 - 4.99 | Sets sensitivity to the provided amount (Takes effect on next server tick). |
health_effect | Float: -4.99 - 4.99 | Sets health to the provided amount (Takes effect on next server tick). |
restrictions | Array of Restriction Types | Sets the provided restrictions into effect. Restrictions are removed after the condition expires. See Restrictions for more info on restriction types. |
visible | Boolean | If true the player will be able to see this condition in their conditions list (Default is true) |
removable | Boolean | If true the player will be able to remove this condition (Default is false). |
Each response to an API command will include a status value. For more information on the specific details on status messages, check the message value.
Value | Meaning |
---|---|
OK | Command processed successfully. |
WARN | Command processed, but there were some issues with it. The message value will explain the issues. |
ERR | Command received, but there was an error while processing it. |
NOPERM | Command received but not processed because the target player has not granted API permissions. |
NO_ACCESS | Command received but not processed because your API level is insufficient. |
THROTTLE | Command received but not processed because you sent too many in the last minute. |
HASH_MISMATCH | Command not received, the authentication hash is missing or invalid. |
NOT_FOUND | Command received but not processed because the target character or player was not found. |
OFFLINE | Command received but not processed because the player's HUD is offline (Only a few commands require that the HUD be online). |
DND | Command received but not processed because the player is in Do Not Disturb mode (Only a few commands will cause this response). |
LIMIT | Command received but not processed because it would exceed a limit of some sort (See the accompanying message for details). |
NO_VALUE | Command received and processed, but there is no return value because the requested key does not exist. |
The MAKE_CUM command produces a cum object that you can reference with the provided ID. These objects last up to one day and do not decay.
Organs can be selected in two different ways. You can select it by providing the exact organ ID/name, or by using the organ type + index method. The type + index method works even if the player has named their organ something different. Example: Womb:0 will work even if they named their first womb “BabyFactory”. But you can also select that organ by providing that exact name “BabyFactory”.
Key-Value data is cleared if the player deletes your API permissions. KV data on inactive or transferred characters will not be deleted. If the player disables your permissions (But does not delete them), the data stays intact. Data stored on characters is not cleared when a character is transferred to another player. So please make sure there is no personal information stored! Data stored on the player is available to all of the player's characters. So do not use it for character specific data.
Each player and character has a limit of 100 KV records, and each value is limited to 1KB (String length of 1,000). Exceeding these limits will result in a “LIMIT” status response.
KV records set by your API are only visible to your API. There is currently no way to set globally visible KV records.
When sending character ID's as the target, ensure that you send it as an integer value and not a string (Example: {"target":1234"} and not {"target":"1234"} ), otherwise the API will interpret it as a player UUID and you will be interacting with the player KV data instead of the character's.
This is a basic HTML page for testing API commands. You will need to build your own JSON command data. Click here.
If you registered a notification URL (Command REGISTER_URL), ATLust will send it signals whenever something happens. The signals are below.
Name | Description | Values |
---|---|---|
TEST | ||
SEX_START | The player has started a sex action. |
action_id: (Integer, Sex action ID) init_char: (Integer, Character ID of initiator) rec_char: (Integer, Character ID of the receiver) action_name: (String, Name of the sex action) init_agent: (Key, ID of the initiator player) rec_agent: (Key, ID of the receiver player) rec_species: (String, Species object of the receiver character) init_species: (String, Species object of the initiator character) init_organ: (String, Organ ID of the initiator organ) rec_organ: (String Organ ID of the receiver organ) |
SEX_STOP | The player has stopped a sex action. | action_id: (Integer, Sex action ID) |
SEX_STOP_ALL | The player has stopped all sex actions. | |
PLAY_ACTION_RECEIVED | The player has received a play action. |
action_id: (Integer, Play action ID) init_char: (Integer, Character ID of the initiator) rec_char: (Integer, Character ID of the receiver) action_name: (String, Name of the play action) init_agent: (Key, ID of the initiator player) rec_arousal: (Float, Current arousal of the receiver character) |
PLAY_ACTION_GIVEN | The player has given another a play action. |
action_id: (Integer, Play action ID) init_char: (Integer, Character ID of the initiating character) rec_char: (Integer Character ID of the receiving character) action_name: (String, Name of the play action) rec_agent: (String, Name of the play action) rec_arousal: (Float, The receivers arousal after the play action was performed) lust_used: (Float, The amount of lust used by this action) lust_remaining: (Float, The amount of lust the initiator has available) |
CLIMAX | The character has climaxed. |
organ: (String, The organ name/ID that climaxed) other_organ: (String, The organ name/ID from the partner that caused the climax) other_player: (Key, Player ID of the partner that caused the climax) penetrative: (Boolean, True if the sex action that triggered the climax is a penetrative action) rp_mode: (Boolean, True if the climax was triggered by RP mode) is_portal: (Boolean, True if the climax was triggered through portal sex) |
PARTNER_CLIMAXED | The character's partner has climaxed. |
organ: (String, The organ name/ID that caused the partner to climax) other_organ: (String, The organ name/ID from the partner that climaxed) other_player: (Key, Player ID of the partner that climaxed) penetrative: (Boolean, True if the sex action that triggered the climax is a penetrative action) rp_mode: (Boolean, True if the climax was triggered by RP mode) is_portal: (Boolean, True if the climax was triggered through portal sex) |
TEASE_ACTION_GIVEN | The player teased another. |
action_id: (Integer, Tease action ID) init_char: (Integer, Character ID of the initiating character) rec_char: (Integer Character ID of the receiving character) action_name: (String, Name of the tease action) rec_agent: (String, Name of the tease action) lust_used: (Float, The amount of lust used by this action) lust_remaining: (Float, The amount of lust the initiator has available) |
TEASE_ACTION_RECEIVED | The player received a tease. |
action_id: (Integer, Tease action ID) init_char: (Integer, Character ID of the initiating character) rec_char: (Integer Character ID of the receiving character) action_name: (String, Name of the tease action) rec_agent: (Key, The ID of the player that received the action) init_agent: (Key, The ID of the player that initiated the action) |
PRECLIMAX_RESPONSE | The player responded to the pre-climax question. | response: (String, The action that the player chose: none, pullout, inside, outside) |
CHARACTER_DATA_CHANGED | The player changed some character data. |
type: (String, The value name that was changed) char_id: (Integer, Character ID of the character that was changed) |
CHARACTER_CHANGED | The player changed their active character. |
old_char: (Integer, Character ID of the old character) new_char: (Integer, Character ID of the new character) |
ITEM_USED | The player used an item. | item: (String, The name of the item) |
CONDITION_GAINED | The character received a new condition. |
name: (String, The type of condition) mod: (String, Used if the condition supports multiple instances) info: (JSON Object, Unique information for this condition type. See Conditions for more info) |
CONDITION_REMOVED | The character lost a condition. |
name: (String, The type of condition) mod: (String, Used if the condition supports multiple instances) |
TITLE_EARNED | The character earned a new title. | name: (String, The name/type of title) |
INSEMINATED | The character has received cum. |
organ_id: (String, Name/ID of the organ that received the cum) species: (String, Species object of the cum's species) partner_id: (Key, ID of the player that created the cum. This may be blank in some instances) organ: (String, The type of organ that was inseminated) known: (Boolean, True if the character is aware of being inseminated) anonymous: (Boolean, True if the source of the cum is hidden from the player) rp_mode: (Boolean, True if the cum is the result of an RP mode action) amount: (Float, The amount of cum in ML) |
IMPREGNATED | The character has been impregnated. |
organ_id: (String, Name/ID of the organ that has the pregnancy) species: (String, Species object of the pregnancies species) due_time: (Integer, Unix time of when the pregnancy will be completed. Pregnancy accelerators will change this value) father_char: (Integer, Character ID of the father) mother_char: (Integer, Character ID of the mother. This will be different than the character with the pregnancy if it is the result of surrogacy) father_anon: (Boolean, True if the father is not known to the player) |
OVULATED | The character's womb released an egg/ovum. |
organ_id: (String, Name/ID of the organ that released the egg) expire: (Integer, Unix time of when the egg will expire) |
GAVE_CUM | The character came inside of another. |
organ_id: (String, Name/ID of the organ that the character came inside of) partner_id: (Key, ID of the player that received the cum) amount: (Float, The amount of cum in ML) anonymous: (Boolean, If the source is not known to the receiver) known: (Boolean, If the receiver is aware that they've been inseminated) rp_mode: (Boolean, If the cum was produced through an RP mode action) |
RECEIVED_EGGS | The character received eggs. |
organ_id: (String, Name/ID of the organ that received the eggs) source_player: (Key, The ID of the player that produced the eggs. This may be blank in some instances) source_char: (Integer, Character ID of the character that produced the eggs) fertilized: (Boolean, True if the eggs are already fertilized. This is essentially moving a pregnancy) rp_mode: (Boolean, True if the eggs were transferred through an RP mode action) |
CUM_ON_BODY | The character has received cum on their body. |
organ: (String, The type of organ that has received the cum) source_player: (Key, The ID of the player that produced the cum) amount: (Float, The amount of cum in ML) rp_mode: (Boolean, True if the cum was produced through an RP mode action) |
KNOT_TIED | The character has been tied to another through a knot. |
knot_giver: (Key, The ID of the player that has the knot) knot_receiver: (Key, The ID of the player that was knotted) |
API_ACCESS_RESPONSE | The player has responded to the API permissions prompt. |
api_id: (Integer, The ID of the API) accepted: (Boolean, True if the player accepted the permissions) |
VENOM_RECEIVED | The character has received venom from another. |
venom_type: (String, The type of venom received) giver_player: (Key, The ID of the player that gave the venom) giver_char: (Integer, The ID of the character that gave the venom) |
VENOM_GIVEN | The character injected another character with venom. |
venom_type: (String, The type of venom received) receiver_player: (Key, The ID of the player that received the venom) receiver_char: (Integer, The ID of the character that received the venom) |
PERMS_REQUEST_RECEIVED | The player received a permissions request. |
requester: (Key, The ID of the player that is requesting permissions) type: (String, The type of permissions requested) |
PERMS_REQUEST_RESPONSE | The player responded to a permissions request. |
requester: (Key, The ID of the player that is requesting permissions) type: (String, The type of permissions requested) accepted: (Boolean, True if the player accepted the permissions) |
PERMS_REQUEST_SENT | The player sent a permissions request. |
target_player: (Key, The ID of the player receiving the permissions request) type: (String, The type of permissions requested) |
NEW_DESIRE | The character received a new desire. | type: (String, The type of desire received) |
DESIRE_SATISFIED | The character satisfied a desire. | type: (String, The type of desire that was satisfied) |
INFECTION_RECEIVED | The character received a new infection. |
type: (String, The type of infection that was received) source: (Integer, The ID of the character that is the source of the infection) |
INFECTION_SPREAD | An infection on the character was spread to another. |
type: (String, The type of infection that was received) target: (Integer, The ID of the character that the infection was spread to) |
INFECTION_CURED | An infection was cured. | type: (String, The type of infection that was cured) |
GAVE_BIRTH | The character gave birth. |
child_char_id: (Integer, The character ID for the child) gender: (String, The gender identity of the child character) species: (String, The species object of the child character) is_egg: (Boolean, If true, the child character is still in egg form) |
PORTAL_CONNECTED | The character connected one of their organs to the portal network. |
organ_id: (String, ID/name of the organ that has been connected) organ_type: (String, The Organ type that has been connected) |
PORTAL_SEX_BEGIN | The character has started sex through a portal. |
organ_id: (String, ID/name of the organ that has been connected) organ_type: (String, The organ type that has been connected) other_organ_type: (String, The organ type of the partner) |
PORTAL_SEX_ENDED | Portal sex has concluded. |
organ_id: (String, ID/name of the organ that has been connected) organ_type: (String, The organ type that has been connected) other_organ_type: (String, The organ type of the partner) |
PORTAL_DISCONNECTED | The character disconnected one of their organs from the portal network without initiating sex. |
organ_id: (String, ID/name of the organ that has been connected) organ_type: (String, The Organ type that has been connected) |
PORTAL_SEX_PROGRESS | The character is currently having sex through a portal. |
organ_id: (String, ID/name of the organ that has been connected) organ_type: (String, The organ type that has been connected) other_organ_type: (String, The organ type of the partner) arousal: (Float, Current arousal of the character) |
PERMISSIONS_GRANTED | The player granted permissions. |
requester_player: (Key, The ID of the player that requested permissions) granter_player: (Key, The ID of the player that granted permissions) type: (String, The type of permissions granted) requester_char: (Integer, The character ID that requested permissions) granter_char: (Integer, The character ID that granted permissions) |
PERMISSION_DENIED | The player denied permissions. |
requester_player: (Key, The ID of the player that requested permissions) granter_player: (Key, The ID of the player that granted permissions) type: (String, The type of permissions granted) requester_char: (Integer, The character ID that requested permissions) granter_char: (Integer, The character ID that granted permissions) were_granted: (Boolean, true if the permissions were previously granted- Such as when removing already approved permissions) |
MASTURBATION_PROGRESS | The character is currently masturbating |
mast_type: (String, The type of masturbation: breasts, penis, vagina) arousal: (Float, Current arousal of the character) |
MASTURBATION_CLIMAX | The character climaxed as the result of masturbation | mast_type: (String, The type of masturbation: breasts, penis, vagina) |
RESTRICTION_ADDED | The player has received a new restriction. |
restriction_type: (String, The type of restriction received) source: (Key or Integer, ID of the player or API ID that imposed the restriction) |
RESTRICTION_REMOVED | A restriction on the player has been removed. |
restriction_type: (String, The type of restriction removed) source: (Key or Integer, ID of the player or API ID that removed the restriction) |
DIALOG_RESPONSE | The player responded to a dialog request. |
response: (String, The button that the player clicked) dialog_id: (Integer, The ID of the dialog) |
The V2.1 API supports plugins; Which means adding your own custom menus to the HUD. To do this, you must first register your menu name with the REGISTER_MENU command. The menu name must be unique, otherwise it may conflict with other plugins using the same name from other creators. Upon first registration, the player will be notified that the menu has been registered. See the plugin example script below for a demonstration of how the menu system works.
When the player clicks a button in your plugin menu, the URL you provided will receive a JSON request with the following values.
After a button click, your plugin must respond with menu data. Failure to respond will result in the HUD showing an error message and sending the player back to the Plugins menu. I recommend following the example shown in the Plugin example script. The menu data must include:
The first menu of your plugin will automatically be named "main". The main menu of your plugin will also automatically receive a back button and "Remove" button to remove the plugin. Any button with a value of "plg_remove" will always remove the plugin and send the player back to the Plugins menu.
If you're using LSL for your plugin and have both ends of the menu_text string with BB code tags (IE: “[b]Here is my menu text[/b]”), the LSL JSON function will interpret the string as an array and cause the ATLust server to return an error for improper value type. You can avoid this by adding escaped quotation marks to both ends of the string: (IE: “\”[b]Here is my menu text[/b]\"").
See the API examples here!