Sueta

Steve GPT

1.6.0

Chat with Steve (ChatGPT)

·Plugin

upload_2023-6-12_0-12-5.png

A plugin that allows you to implement ChatGPT into your minecraft server.

upload_2023-6-12_0-17-27.png

  • Customizable
    • 40+ Different Settings In Config
  • System Message
    • A custom system message that is put at the start of every prompt
  • Threads
    • Allows for long conversation with ChatGPT
    • ChatGPT remembers your previous messages until the thread is cleared
  • Thread History
    • View your thread history in a customizable GUI
  • Custom Restrictions
    • Cooldowns
    • Max Words
    • Max Thread
    • +More
  • AND MORE

upload_2023-6-12_0-18-5.png

  • /chat
    • Allows you to chat with ChatGPT
    • Usage: /chat <MESSAGE>
    • Aliases: asksteve, chatgpt, gpt
  • /globalchat
    • Same as chat but broadcasts the response ignoring config restrictions
    • Usage: /globalchat <MESSAGE>
    • Aliases: broadcastchat, gchat, bchat
  • /thread
    • Shows you your thread history
    • Usage: /thread, /thread
      <PLAYER> - View another player's thread (Requires steve.adminhistory).
    • Aliases: [ NONE ]
  • /clearthread
    • Clears your current thread
    • Usage: /clearthread
    • Aliases: cthread, resetthread
  • /settings
    • Allows the user to change their custom AI settings like: system message, temperature, top_p, etc...
    • Usage: /settings <SETTING> <VALUE>, /settings <SETTING> - [Clears The Setting]
    • Aliases: gptsettings, stevesettings
  • /adminsettings
    • Allows user with permission to view other people's current AI settings
    • Usage: /adminsettings <PLAYER> <SETTING> <VALUE>, /settings <PLAYER> <SETTING> - [Clears The Setting]
    • Aliases: admingptsettings, adminstevesettings
  • /info
    • Allows the user to see the default custom AI settings or their custom ones like: system message, temperature, top_p, etc...
    • Usage: /info, /info <PLAYER> - View another player's thread (Requires steve.admininfo).
    • Aliases: gptinfo, steveinfo, viewsettings
  • /stevereload
    • Reloads the config
    • Usage: /stevereload
    • Aliases: sreload

upload_2023-6-12_0-18-30.png

  • steve.command.chat
    • Permission to use /chat
  • steve.command.reload
    • Permission to reload the config
  • steve.command.history
    • Permission to view thread history
  • steve.admin.history
    • Permission to view other player's threads
  • steve.command.settings
    • Permission to change your settings
  • steve.admin.settings
    • Permission to change other player's settings
  • steve.command.viewInfo
    • Permission to use /info
  • steve.admin.info
    • Permission to view other player's info
  • steve.command.globalChat
    • Permission to use /globalchat
  • steve.bypass.cooldown
    • Permission to bypass cooldowns
  • steve.bypass.activeRequests
    • Permission to bypass active request restricitons
  • Notice
    • By default OPs have all of these permissions besides the bypass permissions

upload_2023-6-12_0-19-53.png

Config
# General Settings
general:
  # AI Settings
  ai:
    # OpenAI Key
    # (https://platform.openai.com/account/api-keys)
    key: ""

    # Max amount of tokens
    # (1 token = about 1 word --- More info at https://platform.openai.com/tokenizer)
    # [It is recommended that the maxToken amount is increased for threads]
    # [Set to "0" for max]
    maxTokens: 500

    # The total amount of tokens able to be used in one thread
    # Same as maxTokens except that all prompt tokens are added
    # [Set to "0" for max]
    totalMaxTokens: 0

    # The OpenAI GPT Model that will be used
    # [Notice: Not all models are supported --- Full model list: https://platform.openai.com/docs/models/chatgpt]
    # [Recommended Models: gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k]
    # [Notice: GPT 4 will only work on paid accounts, 16k and 32k models cost more - https://openai.com/pricing]
    model: "gpt-3.5-turbo"

    # What sampling temperature to use, between 0 and 2
    # Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic
    temperature: 1

    # An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass
    # So 0.1 means only the tokens comprising the top 10% probability mass are considered
    topP: 1

    # Up to 4 sequences where ChatGPT will stop generating further tokens
    stop: []

    # Number between -2.0 and 2.0
    # Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics
    presencePenalty: 0

    # Number between -2.0 and 2.0
    # Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim
    frequencyPenalty: 0

    # The URL that the API request will be sent to
    # [ WARNING ]
    # Do NOT change change if you don't know what you are doing
    # This is intended for people that want to use a proxy
    apiURL: "api.openai.com/v1/chat/completions"

  # Thread Settings
  threads:
    # Allows ChatGPT to remember the previous messages sent
    # [ WARNING ]
    # Threads can use up a lot of tokens since every single word is re-sent
    threads: false

    # Determins if the /thread command is enabled
    # [ WARNING ]
    # Long threads may cause lag
    threadHistory: false

    # The amount of messages a thread can contain
    # [Set to "0" for inf]
    maxThreadLength: 20

    # The amount of words displayed per line in thread history
    wordsPerLine: 10

    # Determins if there is a clear thread button in the thread GUI
    clearThreadButton: true

    # Determins if the system message is viewable in the thread history GUI
    systemMessageViewable: false

    # Determins if the settings like temperature, topP, etc... and token info is viewable in the thread history GUI
    infoViewable: false

  # Other Settings
  other:
    # Cooldown (Seconds)
    cooldown: 30

    # Time before connection is dropped (Seconds)
    timeout: 30

    # Determins if the player will be denied to use /chat command until their previous request is finished
    waitUntilResponse: false

    # Determins if messages can be seen by everyone
    global: false

    # A message that is put at the start of the prompt
    systemMessage: "Pretend you are a guide/assistant named Steve (From Minecraft)."

    # Determins if users can set their own custom settings
    # Example: system message, temperature, topP, etc...
    # [ WARNING ]
    # This will override the default settings if the user uses the /settings command
    customUserSettings: false

    # Determins if the /info command is enabled
    # Refer to general.threads.infoViewable for more info
    infoCommandEnabled: false

    # Determins if the /settings command is usable while the user has an active thread
    allowActiveThreadChanges: false

# Style Settings
style:
  # Message Style Settings
  messages:
    # Message Format
    message: "<&b{USER}&r> &3{PROMPT}&r\n<&aSteve&r> &6{MESSAGE}"

    # Loading Message Format
    loadingMessage: "<&aSteve&r> &7&oLoading..."

    # Info Command Message Format
    infoMessage: "&e- {INFO}: &f{VALUE}"

    # Info Command Config Title Format
    infoConfigTitle: "&6&lCONFIG:"

    # Info Command Usage Title Format
    infoUsageTitle: "&6&lUSAGE:"

    # Determins if minecraft color formatting provided by ChatGPT are used
    allowChatFormatting: false

  # Thread Style Settings
  threads:
    # Thread GUI Title Format
    threadGuiTitle: "&b{USER}&r's &6Threads &7| &a{MESSAGECOUNT} &rMsgs"

    # Thread GUI Odd Line Content Format
    oddContentFormat: "&5&o"

    # Thread GUI Even Line Content Format
    evenContentFormat: "&d&o"

    # Thread System Title Format
    threadSystemTitle: "&6System"

    # Thread Info Title Format
    threadInfoTitle: "&eInfo"

    # Thread User Title Format
    threadUserTitle: "&b{USER}"

    # Thread Assistant Title Format
    threadAssistantTitle: "&aAssistant"

    # Thread Info Message Format
    threadInfoMessage: "&e&o- {INFO}: &f&o{VALUE}"

    # Thread Info Config Title Format
    threadInfoConfigTitle: "&6&l&oCONFIG:"

    # Thread Info Usage Title Format
    threadInfoUsageTitle: "&6&l&oUSAGE:"

    # Thread System Message Format
    threadSystemMessage: "<&6System&r> &5{MESSAGE}"

    # Thread User Message Format
    threadUserMessage: "<&b{USER}&r> &3{MESSAGE}"

    # Thread Assistant Message Format
    threadAssistantMessage: "<&aAssistant&r> &6{MESSAGE}"

    # The texture ID of the system skull
    systemTexture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTgyMDg2ZDE1NDVhZTg4OGFhNzY2ZjhlZDljNjZlNDc1NWI0MmVkM2E3YmU0ZTBjZmEwNjhkN2Y2NzZkNmRmIn19fQ=="

    # The texture ID of the info skull
    infoTexture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDAxYWZlOTczYzU0ODJmZGM3MWU2YWExMDY5ODgzM2M3OWM0MzdmMjEzMDhlYTlhMWEwOTU3NDZlYzI3NGEwZiJ9fX0="

    # The texture ID of the user skull
    # Leaving this blank will set the skull to the user's skin
    userTexture: ""

    # The texture ID of the assistant skull
    assistantTexture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjIyODcyMzQyZDJjZjIwNzU0YjllMWJhZTljMDkwMjkxMmRjYWUxMmU2M2I1MjBiNmZlOGJkOTExYjkxMDE4YiJ9fX0="

upload_2023-6-12_0-20-24.png

upload_2023-6-9_13-54-20.png
YouTube

If you find any bugs or have any suggestions please share them in my discord (https://discord.com/invite/zZvur8aMJ3)

Similar projects

Plugin →