Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

10 Screenshots

  • 432
  • 8
  • 4.42 MB

About Rust Magic (Discord Bot)

A utility bot that helps with administrating your Rust servers without going in-game for the information - pure magic!


Features  

  • Simple-setup config
  • Supports BattleMetrics RCON and direct RCON to your server
  • Seamlessly include all your servers from this single bot
  • Smart pagination when the results are too large to display (e.g combatlog)
  • Customisable combatlog output
  • Colour config options to keep output in line with your brand
  • Full Playing ... Discord status customisation
  • View the combatlog of any steamID on any of your servers
  • See who's in a player's team or clan directly from Discord
  • Convert steam vanity URLs to Steam IDs and find their profile on BattleMetrics quickly
  • Automatic name conversion so you always have a player's most recent Steam name
  • Disable commands you don't need or want
  • Restrict command usage to specific roles using their names or IDs
  • Free-to-use emojis included to be used as templates or the real thing - they help keep things looking organised!
  • Includes and integrates with Wxll's ClansRcon.cs plugin to provide additional features not usually available from console.
  • Detailed logging 
  • NetworkID logging & searching
  • Combatlog + NetworkID linking - no more unresolveable combatlogs.
  • Adaptive and clear error handling - so you know what's gone wrong.
  • Player notifications - see when a player you want to spectate comes on and offline
  • Anti staff mention system - warns users not to tag your staff members!
  • Rust Game ban checking - check if a SteamID has been game banned from Rust
  • Chat Sync that works BOTH WAYS!
  • And nearly all of the above is fully customisable through the simple configuration file.


Upcoming Feature

  • Discord User Detection, coming with a later product of mine 😉     
  • Potentially (with enough support behind this product and these ideas):
    • Staff hours logs - keep track of your Staff's playtime in a private channel     
    • Billboards - Keep an embed updated with which of your servers your staff members are on     
    • Moderation tools?


I am completely open to ideas, bug reports, suggestions, and other comments so please get in touch in Discord and mention you have some feedback for this product <3


Commands
All commands that require a server to be chosen will first have a short dialog box allowing you to choose which server is relevant to you. If you only have one server, you will skip this step.

<> are required parameters

[] are optional parameters


convert <vanity URL or steam link>
Finds the Steam64 ID of a user and provides a link to find related profiles on BattleMetrics.


cinfo <clan name or steam64 ID>
Shows which members are part of the specified clan

Or, if you are using Wxll's included ClansRcon plugin, will also show their allies and pending alliances and allows you to search by SteamID.


teaminfo<steam64 ID>
Shows the current members of a player's team, based on the team UI.


combatlog <steam64 ID>
Shows a well-formatted and detailed variant of a player's combatlog that can be customised however you please. Only want to see

Attacker -> Target | Head | 100hp -> 75hp

? No problem.

Results are paginated and will timeout after 5 minutes. You will know because the reactions disappear 🙂

notify &lt;steam64 ID&gt; &lt;reason they are being watched&gt;

Enables notifications for when this steamID logs in or out of any of your servers. When you no longer wish to watch this user, the reason is not necessary.

check &lt;steam64 ID&gt;

Checks if a user has a Rust game ban on their account

networkid &lt;steam64 ID OR network ID&gt;

Shows the Steam IDs and NetworkIDs that are linked to this NetworkID or SteamID.

Results will expire after 7 days as it's possible for one person to have many SteamIDs in a few days.


Installation &amp; Running (Any OS)

  1. First of all, you'll need to extract the ZIP somewhere and edit your config.
    After that go into the
    Distributions/
    folder and you should see a variety of folders named based on the operating system. If you don't see a folder that roughly matches your Operating System (Windows Server 2012 would work on Win Server 2019, for example), please try the closest one and if it doesn't work get in touch so I can build a new distribution for you.     
  2. You need to drag that file into the top directory, where run.py is otherwise the script will not work!     
  3. Install Python3.8     
    • You may be able to simply download Python directly from the link above.     
    • You may have to run
      sudo apt-get install python3.8
      on some linux distributions.     
    • Others may require you to build Python from source
  4. Ensure that you Add Python to PATH and Install PIP if the options are presented to you!
    If you didn't manage to get PIP installed, install it manually.     

  5. Now let's find out how you can run Python - try some of the following commands until one works, or take a guess at which is most likely to work by typing them into your command prompt / console.
    The -V flag is just to output the version of Python you're running. Please do not include it in further commands you run, as it will prevent them from working.     

  6. python -V
  7. python3.8 -V
       
  8. python3 -V
         
  9. py -3.8 -V
         
  10. /path/to/python -V

         

  11. Great! Now we need to install the packages. Replacing

    python
    with the command you found above, run this:
    python -m pip install discord.py aiohttp webrcon jishaku
         
  12. Fantastic, everything is installed now.
    Let's run the bot (assuming the config is all setup), again replacing

    python
    with the command you found previously.
    python run.py
         
  13. Did you get an

    ImportError
    ? That's because I haven't yet built the source code for your operating system. Please get in touch and I'll have it done as soon as possible.


The Config
Since there is currently no automatic config generator, I have included a file called

SAMPLE config.json

which includes detailed explanations for each directive.

Please ask first, but occasionally I may have the odd minute or two to help out with your config, so it's worth a shot DMing or @ing me if you get stuck.


I don't understand JSON!
In JavaScript | Comparisons to XML | JSON Tutorial


What is a prefix? Can I have multiple?
A prefix is a short few characters that you put before each command. For example, if you want to use the command

%cinfo Meow

, your prefix would be

%

. You can have multiple by changing this to

prefixes

and having an array instead of a string, but this is a more advanced usage. Mentioning (@User) the bot will also always work.


How do I get a token?
Go to the Discord Developers page and create yourself an application. Give it a name and appropriate profile picture, then go to "Bot User". You need to create a bot user for it, and then copy the token that appears. This is what you enter into the config.


How do I get a Steam API Key?
https://steamcommunity.com/dev/apikey


How do I change the status?
Under the game section of the config, you will see name, status, and type.

The name appears after the Playing part.

The status is the colour indicator the bot has. You can use

online

,

offline

,

idle

,

dnd

and

invisible

.

The type is essentially whether the bot is Playing or Watching. Set it to whatever you please, but keep it lowercase.


I don't understand the emojis
In Discord, a custom emoji is internally represented as

&lt;:emojiname:1234567789010&gt;

, with an a before the first colon if it's animated and the numbers being the emoji's ID. You can view this by typing the emoji into discord, e.g. :emojiname: and putting a backslash before it. So \:emojiname: will now show as the above format when you send the message! This is what you need to enter if you wish to use a custom Discord emoji.
If you want to use a unicode emoji, simply copy it and paste the emoji in using any notepad software that isn't the Windows default. The config file is loaded using UTF-8 so make sure you use it too 🙂

You are free to use the emojis found in the

Emojis/

folder however you wish, as they are a good starting point for making your menus look pretty.


How do I change the embed colours?
Enter a hexadecimal colour value that is 6 characters in length with or without the #.

Colour Picker


Do I want to use RCON or BM?
If you don't want to see your BattleMetrics spammed with commands every time someone runs a command, use RCON.
If you think your server already has way too many RCON connections, use BM.

You cannot have both set to true! They must always be opposites of eachother!


Commands
If you want to disable a certain command, set

disabled

to

True

and it won't work.

You can enter role names OR role IDs into the command's required roles section. If you are likely to have duplicated role names, use IDs.

For the combatlog command, change the line format however you please. Have a mess around with it, but just know that the text surrounded in curly braces is special and you cannot use curly braces anywhere else. If you want to move old_hp for example, move {old_hp}.

For the cinfo command, if you have the ClansRcon.cs plugin installed, make sure clans_rcon is true.


Servers
Each server requires 3 things: Credentials, a unique name, and a unique emoji.

The emojis and names must be unique as they are used as identifiers and ways of identifying which server has been selected. If they are not unique, you will get unexpected results.

If you are using BM to send commands to your server, you must specify BM credentials. Please see the sample config for an example, but you will need an API token with Send raw RCON command permission and your BattleMetrics Server ID. You can extract the ID by going to your server's RCON or public page, and taking the 6+ numbers out of the URL.

If you are using RCON to send commands, you must specify the IP, Port, and Password. It will directly connect to your server to send the commands.

For the cinfo command to function properly, you must also clearly mark any server that has the clans plugin installed by setting

"has_clans": true

. It can be

false

if it doesn't have the clans plugin installed.

To add a new server, you must be familiar with the JSON structure! Simply create a new object that follows the same conventions as the other servers and put it in the "servers" array.

How do I stop my server from displaying "SERVER" when a message is sent from Discord?
To do this, you need to alter the way that the

say

 command behaves! You can do so with a plugin called BetterSay! If you wish to replicate the screenshot that's in the gallery, here's my config:

{
    "Format": "{Title} {Message}",
    "Title": "Some Rust Server",
    "Title Color": "#ff00ff",
    "Message Color": "white",
    "Chat Icon (SteamID64)": 76561198095312826
}

ClansRcon.cs - What is this?

THIS FILE IS INCLUDED IN THE ZIP, THIS IS MERELY AN EXPLANATION OF IT
This is a plugin developed by a reputable and good friend of mine, Wxll. He is a developer for LucidGaming and has made many fantastic plugins for Lucid and other servers.

I requested this be created for two reasons:

  • The ClansReborn plugin is very buggy. Without this, I usually get an output that looks something like this:
     
    Level Name   SteamID Status            
    Nya   Owner  Kitty   76561198095312826
    As you can see, the data here is wrongly aligned with the column headers presumably because the
    Tag
    column is missing. column is missing.

    This isn't the only problem. If I try to find a clan that doesn't exist - it'll throw an error, and cause lag for players.
    If I want to find a clan by SteamID? Likely to error.
    If I request all clans? Throws an error and causes server lag.     

  • The ClansRcon plugin provides me with easy to use and intuitive responses, causes no lag, and still returns accurate information.


He has given me express permission to distribute this file, and without it the

cinfo

command would be very unstable. Of course, if you do not wish to use that's fine. There's a config setting called

clansrcon

which you can set to false if you don't want to use it, though I personally recommend you use it.


Emojis Preview
Emoji-Preview-300x192.png


Neko's Other Downloads


User Feedback

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.