Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

The Highrise Python Bot SDK


The Highrise Python Bot SDK is a python library for writing and running Highrise bots.

First, install the library (preferably in a virtual environment):

$ pip install highrise-bot-sdk==23.1.0b13

In the Settings section of the Highrise website, create a bot and generate the API token. You'll need the token to start your bot later. You will also need a room ID for your bot to connect to; the room needs to be owned by you or your bot user needs to have designer rights to enter it.

Open a new file, and paste the following to get started (into mybot.py for example):

from highrise import BaseBot

class Bot(BaseBot):
    pass

Override methods from BaseBot as needed.

When you're ready, run the bot from the terminal using the SDK, giving it the Python path to the Bot class:

$ highrise mybot:Bot <room ID> <API token>

Changelog

23.1.0b13 (2023-06-19)

  • Add optional hook that is triggered on bot startup (async def before_start(self) -> None:). All bot initialization should be done here, and most things like reading from files, setting up database connections can be done here instead of on_connect.
  • Enable support for bot to get access to inbox features, direct conversation and ability to respond to messages if messaged by user.
  • Add handler that is triggered when bot received message from user (async def on_message(user_id, conversation_id, is_new_conversation)). It is triggered when user sends in game message to bot, using either new conversation or existing conversation. If this is new conversation is_new_conversation will be set to True, otherwise it will be set to False.
  • Add support for bot to send message to user (self.highrise.send_message(conversation_id, message, type, room_id)). This can be only used on existing conversation, and will fail if conversation is not found. Bot can only send two types of messages, text and invite. Text is the normal message in which bot can send text to user, and invite is used to invite user to room. If type is invite then room_id must be provided in order to generate room invite for users.
  • Add support for bot to list conversations (self.highrise.get_conversations(not_joined, last_id)). This will return list of conversations opened with bot, there are two types of conversations, the ones bot has joined and unjoined. If not_joined is set to True then only unjoined conversations will be returned, otherwise only joined conversations will be returned. Response will also return number of unjoined conversations that bot has. This method will return at most 20 conversations ordered from newest to the oldest, If last_id is provided then only conversations that are older than specified id will be returned.
  • Add support for bot to list messages in conversation (self.highrise.get_messages(conversation_id, last_id)). This will return list of messages in conversation, at most 20 messages will be returned ordered from newest to the oldest. If last_id is provided then only messages that are older than specified id will be returned. conversation_id must be from conversation that is available to bot.
  • Add support for bot to leave conversation (self.highrise.leave_conversation(conversation_id)). This will leave conversation, and bot will no longer receive messages from user in that conversation or have that conversation in his list.

23.1.0b12 (2023-06-06)

  • Add support for getting information about user outfit if user is in the room (self.highrise.get_user_outfit(user_id)).
  • Enable automatic filtering of events based on bot usage.

23.1.0b11 (2023-05-29)

  • Add support for running multiple bots in the same process.
  • Add additional room information such as owner's id and room name to session metadata on connection
  • Add support for voice chat management and info, bots can now get information about voice chat in the room if bot owner has privileges to get info or manage bots in the room (self.highrise.get_voice_status())
  • Add support for bots to invite users to voice chat (self.highrise.add_user_to_voice(user_id)
  • Add support for bots to remove users from voice chat (self.highrise.remove_user_from_voice(user_id)
  • Add handler that is triggered when state of voice in the room changed(self.on_voice_change(users, seconds_left)

23.1.0b10 (2023-05-12)

  • Fix bug with handling of error responses.

23.1.0b9 (2023-05-11)

  • Add support for moving bot to an anchor in walk_to command (self.highrise.walk_to(AnchorPosition)).
  • Change the way client ws messages are parsed, return error if message is not valid json.

23.1.0b8 (2023-04-25)

  • Add support for moving users to another room (self.highrise.move_user_to_room(user_id, room_id)).
  • Add handler that is triggered when user moves inside a room (self.on_user_move(user_id, position)).)
  • Expand session_metadata information with information about client rates
  • Expand session_metadata with information about sdk versions if client uses skd

23.1.0b6 (2023-04-17)

  • Add Python 3.10 support

23.1.0b5 (2023-04-11)

  • Add support for getting room permissions for users (self.highrise.get_room_privilege(user_id)).
  • Add support changing room permissions for users (self.highrise.set_room_privilege(user_id, privilege)).
  • Add support for moderating rooms (self.highrise.moderate_room(user_id, moderate_action, action_length)).
  • Rework how keepalive is handled

23.1.0b4 (2023-04-05)

  • Methods mapping to requests with empty responses (chat, send_whisper, send_emote, react, set_indicator, send_channel, walk_to, teleport) now return None, and raise a highrise.ResponseError on an error response.
  • Fix the emote API.
  • Internally rework request handling to improve robustness.

23.1.0b3 (2023-04-03)

  • Fix the chatting API.

23.1.0b2 (2023-04-03)

  • Add support for receiving and sending reactions.
  • Fix support for hidden channels.
  • Migrate to the new message for avatars leaving.
  • Improve concurrency when awaiting bot methods.
  • Fix issues with teleporting users.
  • Fix issues with user coordinates.
  • Add support for fetching the bot wallet (self.highrise.get_wallet()).

23.1.0b1 (2023-03-28)

  • Add support for emotes and hidden channel messages.

23.1.0b0 (2023-03-10)

  • Initial beta release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

highrise_bot_sdk-23.1.0b13.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

highrise_bot_sdk-23.1.0b13-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file highrise_bot_sdk-23.1.0b13.tar.gz.

File metadata

  • Download URL: highrise_bot_sdk-23.1.0b13.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.8.9 Darwin/21.6.0

File hashes

Hashes for highrise_bot_sdk-23.1.0b13.tar.gz
Algorithm Hash digest
SHA256 bdfa4eafddd3a6bdac4decc86110c070ecdc9a348f6310481bbc05b183c51f0c
MD5 11ce735bf7052cfb23c01cfc437dcb71
BLAKE2b-256 57adef4dbeae0d0c035f00eff8733ef03e3f3da2b29d958360c082abdde60f0d

See more details on using hashes here.

File details

Details for the file highrise_bot_sdk-23.1.0b13-py3-none-any.whl.

File metadata

File hashes

Hashes for highrise_bot_sdk-23.1.0b13-py3-none-any.whl
Algorithm Hash digest
SHA256 62998d3f50c692d48074a47ad242c65e8b30feddb614c1312d06fccb5635e827
MD5 e3c1cc849496e9ebe10432f726463eb5
BLAKE2b-256 abc953bc98a65726bf508d8bb7412b2dec21b938ee1937aef4237c4f3c99d897

See more details on using hashes here.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page