User:Elijah/Drafts/UserVM Rules and User:Elijah/Drafts/Creating a Bot for CollabVM: Difference between pages

From Computernewb Wiki
(Difference between pages)
Jump to navigation Jump to search
m (Elijahr241 moved page User:Elijahr241/UserVM Rules Draft to User:Elijahr241/Drafts/UserVM Rules without leaving a redirect)
 
(Created page with "So, you want to create a bot for CollabVM? This guide will take you through the process of doing so. I'll go through available libraries, and also briefly explain how to implement the protocol yourself. == Do you really need a bot? == Before you start creating your bot, ask yourself if you '''really''' need it to exist. We've had our fair share of useless bots, and usually end up banning them pretty quickly once they get annoying. Two general criteria can be: * Does a...")
 
Line 1: Line 1:
So, you want to create a bot for CollabVM? This guide will take you through the process of doing so. I'll go through available libraries, and also briefly explain how to implement the protocol yourself.
<p class="mwt-paragraph"><strong>THIS IS A ROUGH DRAFT</strong></p>

<p class="mwt-paragraph">In order to have a UserVM put up it must meet several requirements.</p>
== Do you really need a bot? ==
<ol>

<li class="mwt-paragraph">Your VM must be behind a reverse proxy (preferably nginx) and support SSL. This is both good practice and a technical requirement on our end</li>
Before you start creating your bot, ask yourself if you '''really''' need it to exist. We've had our fair share of useless bots, and usually end up banning them pretty quickly once they get annoying. Two general criteria can be:
<li class="mwt-paragraph">Your VM must meet one of the following:

<ol style="list-style-type: lower-alpha;">
* Does a bot with the same function already exist
<li style="list-style-type: none;">
* Is your bot idea practically useless
<ol style="list-style-type: lower-alpha;">
* Does your bot idea break the [https://computernewb.com/collab-vm/rules/ rules]?
<li class="mwt-paragraph">Be marked as NSFW in the title</li>

<li class="mwt-paragraph">Have proper NSFW filtering set up</li>
If the answer to either questions is no, you should probably come up with a better idea. Note that mods will ban bots at their discretion if they are perceived to be breaking the rules, or are generally annoying to have.
<li class="mwt-paragraph">Not have internet access</li>

</ol>
The following is a list of things that are '''not''' good ideas for bots:
</li>

</ol>
* A bot whose sole purpose is to encode and decode ROT13
</li>
* A bot that just sends "facts" about one random guest
<li class="mwt-paragraph">The QEMU SLiRP gateway (10.0.2.2) must not be accessible on the VM. This is a major security risk. To fix this you'll need a router VM</li>
* A bot that is just a shitty notsobot clone and filled with useless commands
<li class="mwt-paragraph">Port 25 must be blocked on your VM</li>
* A bot that "bans" users from the VM by locking it up using a RAT when they take a turn (Rule 9)
<li class="mwt-paragraph">CollabVM rules 1 through 3 must be enforced on your VM.</li>

</ol>
If you make any of these things, we will ban it.

== Bot Libraries ==

There are a few existing libraries which allow you to easily create a bot. Here are some of those. If you have a library not in this list feel free to add it.

=== C# ===

==== CollabVMSharp ====

Written by Elijah. Supports most functions including mod tools. Turns are experimental and may not work. [https://collabhost.computernewb.com/git/Elijah/CollabVMSharp Link]

Revision as of 07:36, 28 December 2022

So, you want to create a bot for CollabVM? This guide will take you through the process of doing so. I'll go through available libraries, and also briefly explain how to implement the protocol yourself.

Do you really need a bot?

Before you start creating your bot, ask yourself if you really need it to exist. We've had our fair share of useless bots, and usually end up banning them pretty quickly once they get annoying. Two general criteria can be:

  • Does a bot with the same function already exist
  • Is your bot idea practically useless
  • Does your bot idea break the rules?

If the answer to either questions is no, you should probably come up with a better idea. Note that mods will ban bots at their discretion if they are perceived to be breaking the rules, or are generally annoying to have.

The following is a list of things that are not good ideas for bots:

  • A bot whose sole purpose is to encode and decode ROT13
  • A bot that just sends "facts" about one random guest
  • A bot that is just a shitty notsobot clone and filled with useless commands
  • A bot that "bans" users from the VM by locking it up using a RAT when they take a turn (Rule 9)

If you make any of these things, we will ban it.

Bot Libraries

There are a few existing libraries which allow you to easily create a bot. Here are some of those. If you have a library not in this list feel free to add it.

C#

CollabVMSharp

Written by Elijah. Supports most functions including mod tools. Turns are experimental and may not work. Link