# Introduction

EchoBase is a collection of guild leader/officer tools for the game Star Wars: Galaxy of Heroes, and is built with a responsive design that fits any size screen, from mobile to full desktop.

## Welcome! &#x20;

{% embed url="<https://echobase.app>" %}

If you'd like to learn something about **EchoBase** or its companion Discord bot, **EchoStation,** you've come to the right spot - this is the full documentation site!


# FAQ

## Discord

<details>

<summary>There is a post for assignments, but the assignments aren't showing up. Why?</summary>

Turn on this setting in Discord: **`User Settings`** > **`Text & Images`** > **`Link Preview`**

</details>

<details>

<summary>Why are my guild mates receiving @mentions or DMs but not me?</summary>

[Include @mentions](/settings/include-mentions)

[Send DMs to each member](/settings/send-dms-to-each-member)

</details>

<details>

<summary>My guild has switched Discord servers, or I accidentally registered my guild in the wrong Discord server. Help!</summary>

After inviting EchoStation into the correct Discord server, you can use the [/register](/echostation/guild-commands/register#guild) command to tell EchoBase that your guild is in a different server. It will forget the old server.

:white\_check\_mark: You can do this as many times as you need.

</details>

<details>

<summary>Is EchoStation compatible with guild Alliances that share a single Discord server?</summary>

Absolutely! If any guild wants to register with EchoStation, even after it has been invited to your alliance server, they should use the [/register](/echostation/guild-commands/register#guild) command and they'll be good to go.

You can even unlock Patreon benefits for your whole alliance by joining [Donations](/donations#patreon).

</details>

<details>

<summary>How do I invite the EchoStation bot to my Discord server?</summary>

If you are an admin of your server, use this link. Otherwise, give this link to an admin.

<https://discordapp.com/oauth2/authorize?client_id=416767534528987137&scope=bot&permissions=805829696>

</details>

<details>

<summary>Why does the EchoStation bot look like it is offline?</summary>

A bot will appear offline in a Discord server when the server that is hosting the bot stops communicating with Discord, likely due to the server being down, or even crashed. There are a couple of possible reasons for this.

* I might be in the middle of releasing an update. If this is the case, typically, you'll see EchoStation come back online within a minute or two. You can always [check the public Discord server](https://discord.gg/MnkBsyT) for release activity.
* If I'm not releasing anything and the bot is offline, the server is down unexpectedly and I need to be notified so that I can bring it back online. Please log into the [public Discord server](https://discord.gg/MnkBsyT) and let me know what's going on.&#x20;

</details>

## General

<details>

<summary>How do I access the TB Platoon Assigner?</summary>

Log in to <https://echobase.app> using your ally code, and navigate to **TB Platoon Assigner**.

</details>

<details>

<summary>Why is the Platoon Assigner submit button disabled?</summary>

In order to submit a phase for assignments, 100% of the platoon requirements must be filled in or ignored. Also, you must either choose a Discord channel or a webhook URL in your settings so that the assignments can be posted. If you don't wish to post assignments, you can click "Preview" to view the assignments in the webapp only.

[Usage Guide](/tb-platoon-assigner/usage-guide)

[Ignoring Platoons](/tb-platoon-assigner/usage-guide/ignoring-platoons)

</details>

<details>

<summary>Is there a mobile app version of EchoBase?</summary>

No, but.. sort of. Follow these steps in your mobile browser to create a real app feel!

* iOS Safari
  * tap the Share icon at the bottom of the screen
  * select **Add to Home Screen**
* Chrome for Android
  * tap the Menu button at the top of the screen
  * select **Add to Home Screen**

</details>

<details>

<summary>How do I get an Echo Role? (EchoCommander, EchoAdmin, etc.)</summary>

[Echo Roles](/echostation/echo-roles)

</details>


# Home

{% embed url="<https://echobase.app>" %}

## General

The home page is the central location of the site, from which you can navigate to all other parts of the site. Spread across the top of the screen you will find the main navigation bar. At the top of the page's content, you should see a welcome message for whichever guild you are logged in as. At the bottom of the page you can find a link to the issues page, a link to this documentation site, and the current EchoBase version number.

## Tools

There are currently two tools that EchoBase is home to. You can access them from this section. Here is their documentation:

{% content-ref url="/pages/-LCaDGpwttPLVawHUsG\_" %}
[TB Platoon Assigner](/tb-platoon-assigner)
{% endcontent-ref %}

{% content-ref url="/pages/-LCaDK6hKXGQZIpkYczF" %}
[TW Defense Assigner](/tw-defense-assigner)
{% endcontent-ref %}

## Discord Integrations

EchoBase is complimented by a Discord bot, EchoStation. The most powerful usage of the bot is the ability to send Direct Messages to each member with their assignments. The bot's abilities are extensive, so more information can be found here:

{% content-ref url="/pages/-LCaDQMg2DM6eyAaxcCF" %}
[EchoStation (Discord bot)](/echostation)
{% endcontent-ref %}

### Invite EchoStation

If you have not yet added EchoStation to your Discord server, use the given **INVITE** button and follow the instructions that are shown.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDY6fDHY0VoldbimWYE%2F-LDY7fyWx7VRN_fRnbUF%2Fimage.png?alt=media\&token=54dec531-0851-4625-9ac5-01e19305346d)

### Disconnect from EchoStation

If you need to Disconnect your guild from EchoStation, you can use the **DISCONNECT** button to do so.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDY9FNPkVJ5FB2BDEsn%2F-LDY9XVQzOZCkRr60yxQ%2Fimage.png?alt=media\&token=77dba2fc-64a5-4d68-a71a-cae708904804)

If you accidentally clicked **DISCONNECT**, you can click **RECONNECT** to restore your connection.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDY9FNPkVJ5FB2BDEsn%2F-LDY9N35fOFol3mx-WlH%2Fimage.png?alt=media\&token=9c7d704b-7e11-4d60-a7bc-b97bcf37ea00)

{% hint style="warning" %}
Once you leave the page, you will no longer have the ability to use the RECONNECT button. You will have to use the INVITE button.
{% endhint %}

### Public Discord Server

EchoBase is and all of its features can be openly discussed in a dedicated Discord server. Use this link to join: <https://discord.gg/MnkBsyT>

{% embed url="<https://discord.gg/MnkBsyT>" %}

## Support

EchoBase is funded 100% by the user community, something I am extremely grateful for and proud of. It is my goal to provide free, ad-free content to the SWGOH community. To find out how you can help, including Patreon and PayPal, visit this page:

{% content-ref url="/pages/-LCb-gmxYuw-pkaOQ4UP" %}
[Donations](/donations)
{% endcontent-ref %}


# Navigation

Let's discuss how the site works and where things are.

![EchoBase main navigation menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LOoHS_-m6nJgkhPrq1B%2F-LOoIFHFQEv-AfdIdswZ%2Fimage.png?alt=media\&token=5ac98b10-605f-43a1-bb32-99ffc4a1fa54)

## Home link

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCz9QORSXJXkPhG_ssB%2F-LCzA2O8W23sjykxnNc6%2Fimage.png?alt=media\&token=40358b89-0386-4eb6-a62a-73318a32d516)

This link is always here, and will always take you back to the home screen in case you get lost!

{% content-ref url="/pages/-LCaO74uVEBXaW0HU\_Z6" %}
[Home](/home)
{% endcontent-ref %}

## Tool Picker

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCz9QORSXJXkPhG_ssB%2F-LCzAPUPqh5Gd-unJQE5%2Fimage.png?alt=media\&token=865bec89-de57-4576-834f-faba255b60d4)

This indicates which tool is currently active. Expanding the dropdown reveals all tools, and allows you to navigate to any of them.

## Logged-in guild / Ignore List

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LOoHS_-m6nJgkhPrq1B%2F-LOoIsFF7NmNB8fMQmNq%2Fimage.png?alt=media\&token=84dcd51a-e421-46dc-94ad-c4409d8b045b)

This shows which guild is currently logged in. Click on the guild name to see a list of every guild member that EchoBase knows about.

Someone on vacation? Maybe someone else can't follow assignments even if you spoon-fed them? Just **Ignore** them!

Simply click the minus icon (-) their names from the dropdown list and it will be as if they never existed. The assignment tools will not consider their character rosters.

The number of ignored members will show up next to the guild name, always reminding you in case you need to un-ignore them. To un-ignore someone, find their name in the list again (they will be greyed out) and de-select the minus icon.

{% hint style="info" %}
Ignored members will not receive assignments, be tagged with **@mentions**, or be sent Direct Messages from the bot.
{% endhint %}

## Refresh Guild Info

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCz9QORSXJXkPhG_ssB%2F-LCzBgztydr88rjMZiah%2Fimage.png?alt=media\&token=51cf7105-c829-4901-aec1-22f0a165afb6)

Is your guild membership out of date? Click the refresh button to pull fresh guild info. You will receive a confirmation popup like the one below, including guild name and number of members that are synced with that guild.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCaBzKK_43KaRwLWxAE%2F-LCaHQUaQIviv9oXqUq1%2Fimage.png?alt=media\&token=f6690f48-dc9e-472c-9fa1-8bcbd17396e7)

{% hint style="warning" %}
This only pulls everyone's data from the game once. After that, it only updates the screen with any updated data that the database might have received since the last time the page was loaded. Some time must pass before it will re-pull from the game again.
{% endhint %}

## Settings

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCzDWK5zgZB6qVR906x%2F-LCzDfk-W0DfCiT2vkqG%2Fimage.png?alt=media\&token=95d4300d-6e04-4947-bbbb-3578522d5fb4)

The Settings page is where you'll be given the chance to opt in or out of certain features, and is detailed in the following article:

{% content-ref url="/pages/-LCaNBq0-FG5RypwwX6f" %}
[Settings](/settings)
{% endcontent-ref %}

## Log out

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCzDWK5zgZB6qVR906x%2F-LCzECZsrwuNDYbAnP53%2Fimage.png?alt=media\&token=df1b085f-8c48-4f3c-90d2-477e19bfe303)

Use this link to log out of EchoBase. You will need to do this if you want to log in using a different guild.

Goodbye for now, but hopefully not for long!


# TB Platoon Assigner

The TB Platoon Assigner is the most popular tool on EchoBase. Prepare to relax during your next TB.

Achieve maximum platoon efficiency with this tool. After you enter in your guild's unique platoon requirements, the guild's entire roster will be read and sorted according to your chosen assignment algorithm, guaranteeing that the most efficient donations can be made to fill the requirements.

For EchoStation bot users, assignments can be sent directly to guild members in their own private message.

A short list of features can be found below:

* Assignments can be posted publicly in Discord, or sent directly to the player (requires [EchoStation bot](/echostation)).
* Opt-in to @mentions so that guild members can be tagged with their assignments.
* Grouping Rules allow guild officers to define conditional preferences for assignments, such as "if someone is assigned {this}, then don't make them give up {that}." Several logic options are available.
* EchoStation's [/donation-preference](/echostation/player-commands/donation-preference#player) command allows guild members to prioritize their own collections, in case they need to save certain toons for combat, for example.
* So much more!

## Navigation

![Sub-navigation bar for TB Platoon Assigner](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCXpC-x-y3jaaWcQ9J%2F-LDCXsqtIXZ03psShX-M%2Fimage.png?alt=media\&token=d3c41b47-e465-420e-a947-92bdfee218f1)

### Platoon Assigner Home

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCBfXwvMezVNppg_11%2F-LDCKjwzKJUuDeT55kOA%2Fimage.png?alt=media\&token=cff0b115-232e-4c00-8489-84cd6864e73c)

This is a visual reminder of which tool you are currently using. It is also a link that will take you back to the landing page for the Platoon Assigner.

### Battle Picker

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCBfXwvMezVNppg_11%2F-LDCL6J59szAlZRNrrYF%2Fimage.png?alt=media\&token=da88e50b-1279-4ae8-8814-875acad89ae0)

This dropdown will allow you to choose between all possible Territory Battles.

### Phase picker

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCBfXwvMezVNppg_11%2F-LDCLa_7kIuTEblTjVld%2Fimage.png?alt=media\&token=a5c144c2-20d8-4cce-a535-aea085dd35a0)

This dropdown will allow you to choose between all possible phases of the chosen battle.

{% hint style="info" %}
Displayed beside each option in the dropdown is the star or relic level requirement for that phase.
{% endhint %}

### Keyboard Shortcuts

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCBfXwvMezVNppg_11%2F-LDCMJrY4Sh1oobv__jy%2Fimage.png?alt=media\&token=86a2c934-32d4-4d2e-b2d0-4ad46493d5b7)

This is a flyout menu that can act as a reminder of how you can rapidly fill out your assignments using only your keyboard.

{% content-ref url="/pages/-LCdkkW3GAC2oSxoIm\_u" %}
[Using a keyboard](/tb-platoon-assigner/usage-guide/manual-entry/using-a-keyboard)
{% endcontent-ref %}

{% hint style="info" %}
This menu option is not available on smaller screens, due to the likelihood that small mobile devices are not equipped with a keyboard. However, the shortcuts themselves will always work.
{% endhint %}

### Help

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCNGLyPKlk5HHB6cx3%2F-LDCNJH_Qi32AL7MBpHD%2Fimage.png?alt=media\&token=4f12f37e-781e-43ff-a552-14d70e1c2554)

Click this link to return to this documentation.

### Submit

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCNGLyPKlk5HHB6cx3%2F-LDCNadCAkCzS6QwzLin%2Fimage.png?alt=media\&token=0fddf459-2bab-4d52-a7d9-7c57764678bf)

This button will prompt you to confirm all of your settings before creating assignments.

{% hint style="warning" %}
This button will be **disabled** until 100% of the platoons on the screen are either filled in or ignored. You can use the progress bar inside each mission header to find missing requirements.
{% endhint %}

## Quick Setup

New to the TB Platoon Assigner? These are the important things you need to know, and how to learn more about each.

### Choose your phase

Choose the battle and phase that you would like to run assignments for. This will influence what is shown in the platoon assigner. You should see the complete layout of your chosen phase, including mission labels.

{% content-ref url="/pages/-LCdk86YZ95uVHamAmDs" %}
[Choosing a Phase](/tb-platoon-assigner/usage-guide/choosing-a-phase)
{% endcontent-ref %}

### Submit the requirements

If all platoon requirements are filled, the green **Submit** button should become accessible. After clicking it, you will be prompted to confirm your settings before the assignments are created and sent to Discord.

{% content-ref url="/pages/-LCaNBq0-FG5RypwwX6f" %}
[Settings](/settings)
{% endcontent-ref %}

### Select your Discord destination

If you are using the [EchoStation bot](/echostation), this step is very easy. Simply select a channel in the provided dropdown.

{% content-ref url="/pages/-LCdgIlaUV5VfoSv-ODo" %}
[Discord Channel](/settings/discord-channel)
{% endcontent-ref %}

Otherwise, you'll be prompted to enter a Webhook URL. This is the way to submit assignments to Discord without using a bot.

{% content-ref url="/pages/-LCdgpGcmlxTitiG6OPG" %}
[Webhook URL](/settings/webhook-url)
{% endcontent-ref %}

### Submit for assignments

Once a Discord Channel or a Webhook URL is chosen, you can now confirm your settings by clicking the green **Submit** button at the bottom of the settings window.

{% hint style="info" %}
If you don't wish assignments to be posted to Discord, you may click the "Preview" button to view the assignments in the webapp only.
{% endhint %}

After assignments have been posted in Discord, you should receive a success message indicating that it is finished.

**Congratulations!**

You can now go see your platoon assignments!

## Advanced Features

<details>

<summary>Omit some guild members from receiving assignments</summary>

**Use the** [**Ignore List**](/navigation#logged-in-guild-ignore-list)**!**

</details>

<details>

<summary>Erase or change platoon requirements</summary>

[Clearing Requirements](/tb-platoon-assigner/usage-guide/clearing-requirements)

</details>

<details>

<summary>Skip certain platoons</summary>

[Ignoring Platoons](/tb-platoon-assigner/usage-guide/ignoring-platoons)

</details>

<details>

<summary>Specify some custom assignments before submitting</summary>

[Pre-Assignments](/tb-platoon-assigner/usage-guide/pre-assignments)

</details>

<details>

<summary>Give your guild members the ability to influence the assignment algorithm by specifying which toons to keep or give</summary>

[/donation-preference](/echostation/player-commands/donation-preference)

</details>

<details>

<summary>Set up guild members to receive @mentions with their assignments</summary>

[Include @mentions](/settings/include-mentions)

</details>

<details>

<summary>Set up guild members to receive a personal Direct Message with their assignments in it</summary>

[Send DMs to each member](/settings/send-dms-to-each-member)

</details>


# Usage Guide


# Choosing a Phase

This is a simple page that allows you to choose which phase you want to run assignments for.

## Phase Layout

![Phase layout for LS Hoth. All TBs have similar layouts.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCzKPwSVIX5wTUddizb%2F-LCzKQr1dp2v07b7a9Kf%2Fimage.png?alt=media\&token=dfcdd270-bce2-47ec-8e5d-e5ca4abedb53)

Phases are grouped by Territory Battle.

Each phase is a button that will drop you into the Phase Picker dialog with a default layout.

## Phase Picker

<figure><img src="https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LCAR3OILMNsfn5qmtzW-4047079651%2Fuploads%2F90sY7OOTJCUbQ3GCjQ6k%2Fimage.png?alt=media&amp;token=ba57b9e7-85dc-4da3-9e1e-67f603a62d56" alt=""><figcaption><p>Example of sandbagging top and bottom for phase 4.</p></figcaption></figure>

The Phase Picker will display a full graphic layout of the entire TB's phases.

Using the buttons, select the specific phase layout that your guild is attempting for the current phase. Often this requires mixing zones from multiple phases in a strategy referred to as "sandbagging."

Once your layout is complete, click the green button at the bottom to navigate to the Platoon Assignment tool with your chosen phase layout.


# Manual Entry

Platoon assignments were random for the first year or two of Territory Battles, so EchoBase was built with the ability to quickly enter the requirements. After platoon requirements were made to be the same for everyone, this section only matters if you need to modify existing requirements.


# Using a mouse or touchscreen

## Requirement Dialog

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEgy7gd5NhM1sOXLbah%2F-LEgzquP6RhOqmpn1Ux4%2Fimage.png?alt=media\&token=b0f0f2d3-9a2d-4c50-bc75-5e750cae5d0a)

Access the dialog by clicking or tapping on a requirement slot.

This dialog will allow you to change the requirement for that slot, and also optionally allow you to pre-assign a guild member to that slot.

The close 'x' button or the escape key or clicking/tapping on the requirement slot again can be used to close the dialog.

### Collectible dropdown (required)

The first dropdown includes a list of all of the possible collectibles for the parent platoon. Choosing one will populate the picture in that slot and will increase the overall mission's progress bar.

### Guild Member dropdown (optional)

The second dropdown includes a list of all guild members. Choosing one will darken the corresponding requirement image and display who was chosen. For more information about pre-assigning guild members, see this article:

{% content-ref url="/pages/-LCdlU9Ik3CjLXnTtw9B" %}
[Pre-Assignments](/tb-platoon-assigner/usage-guide/pre-assignments)
{% endcontent-ref %}


# Using a keyboard

You can use keyboard shortcuts to quickly modify platoon requirements.

## Keyboard Shortcuts

| **`ctrl`** + **`space`**                                          | Opens the Requirement Dialog in the top-left slot of the first platoon board. |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **`←`**                                                           | Move left                                                                     |
| **`→`**, **`tab`**                                                | Move right                                                                    |
| **`↑`**,  **`↓`**                                                 | Navigate through dropdown options                                             |
| **`shift`** + **`tab`**                                           | Switch between active dropdowns                                               |
| **`ctrl`** + **`←`**,  **`→`**,  **`↑`**,  **`↓`**                | Move left, right, up, down                                                    |
| **`ctrl`** + **`shift`** +  **`←`**,  **`→`**,  **`↑`**,  **`↓`** | Move left, right, up, down between boards                                     |
| **`Esc`**                                                         | Close the active Requirement Dialog                                           |


# Preview

![Preview of assignments in full-screen mode](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LOtglSbb6eIRzYj9owR%2F-LOtgmNjjia87ztrkHxV%2Fimage.png?alt=media\&token=dfe0184a-6bd5-470a-b546-40d7bde62850)

Want to see what your assignments will be before posting them? The Preview feature allows you to see ahead of time each and every assignment, and which platoons are impossible. When you're ready to post, simply use the regular submit button like always.

## How to see a preview

Once all the requirements have been filled out, the green **Submit** button will become active. It brings up the settings dialog, and at the bottom of the dialog you'll see the **Preview** button.&#x20;

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LE00d3-Rvebkiaf_Eu2%2F-LE02-0lyFud268CGard%2Fimage.png?alt=media\&token=26a34ce0-e986-4b5f-9c96-ae29b143fd17)

Click or tap it to see exactly what the assignments are going to be before posting.

## Possible / Impossible Results

![Green = possible, Red = impossible](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LOoOPvsHnByxTqXkNzb%2F-LOtdwvxOywTlenkyc5w%2Fimage.png?alt=media\&token=a334e62e-b4ce-4b95-9192-4bbdfd3165fd)

If a platoon or squadron is identified as possible, you will know because the assignments will completely fill the platoon, and the number of achievable TP for that platoon will be highlighted in green.

If it's impossible, you will know because there will be no assignments added, and the TP will be highlighted in red because that amount is **not** achievable.

## Multiple Previews

This feature is somewhat underdeveloped. If you want to run previews and change things and re-run previews, please keep the following things in mind:

* All assignments that have been entered to the screen (manually, automatically by preview, or automatically by platoon screenshot upload) will be honored by the platoon assigner without question. It assumes that if an assignment is on the screen, the user wants it that way and **only** wants to see possible assignments on currently **empty** slots.
* Ignoring a platoon and re-running a preview will not change any of the previous assignments, due to the reason above. For a true re-run of a preview, please also remove all player assignments and **then** re-run the preview.
* It is possible to remove assignments from the screen, thus freeing them up to be assigned by the preview. See this article for more information:

{% content-ref url="/pages/-LEh1G0iTOwGZC1GkmXY" %}
[Clearing Player Assignments](/tb-platoon-assigner/usage-guide/clearing-player-assignments)
{% endcontent-ref %}


# Clearing Requirements

Sometimes you need or want to clear out some requirements.

## Requirement Dialog

The creators of the game have been known to change their "static" platoon requirements after telling everyone what they would be. If this is the case and EchoBase is wrong about a single requirement, you might want to clear out that one until you know what it should be instead. This is most easily done with the **Requirement Dialog**.

![Clearing a single requirement via the Requirement Dialog](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh0QErFAQMnPmlXm-Y%2F-LEh0R8rRSTfC6YTO5EN%2Fimage.png?alt=media\&token=ae57cccb-c493-419d-a808-095224ccfc7e)

## Platoon/Squadron clear

Oops, did you upload a screenshot to the wrong platoon on accident? Drop down a platoon's Utility Menu and click the "Clear all **platoon**/**squadron** requirements" utility to erase all the requirements in that single platoon or squadron.

![Clearing requirements for a single squadron via the Platoon Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh0QErFAQMnPmlXm-Y%2F-LEh0g4Il2g9QeGZEu3b%2Fimage.png?alt=media\&token=81227bdf-da82-49cd-8897-406d794c42a9)

## Mission clear

Drop down a mission's Utility Menu and click the "Clear all **mission** requirements" utility to erase all the requirements for that mission. This will make the progress bar for that mission go back to 0.

{% hint style="warning" %}
This will erase all requirements for the entire mission. Make sure that is what you want to happen before doing it.
{% endhint %}

![Clearing all requirements for a mission via the Mission Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh0QErFAQMnPmlXm-Y%2F-LEh156THvWgi5-ncQ1f%2Fimage.png?alt=media\&token=93f4b76c-2e82-4e35-9cc5-91f4fcea4759)


# Ignoring Platoons

This is a helper utility that allows you to tell the platoon assigner to not make any assignments for the specified platoon or squadron.

## Platoon Ignoring

![Ignoring a single platoon via the Platoon Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh1sZBd7SfJ5VuuVqL%2F-LEh1tOGE7EaWWJRGBQE%2Fimage.png?alt=media\&token=b27d49f0-2367-4aae-a289-34bcfa75ad2c)

{% hint style="info" %}
Platoon requirements do not need to be filled out in an ignored platoon. Any requirements that are filled out will be ignored by the platoon assigner.
{% endhint %}

{% hint style="warning" %}
Choosing to ignore a platoon or squadron will result in none of the requirements inside of it to be considered when calculating for the guild which collectibles need to be worked on.
{% endhint %}

## Mission Ignoring

If you'd like to ignore all platoons for a given mission, head up to the Mission Utility Menu and choose **Ignore this mission**.

![Ignoring all platoons for a mission via the Mission Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh1sZBd7SfJ5VuuVqL%2F-LEh2YpT9eqLHBOC6Yw6%2Fimage.png?alt=media\&token=e472ac93-69df-4064-830e-9a9b84f66b65)

## Platoon Un-ignoring

![Including a single platoon via the Platoon Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh1sZBd7SfJ5VuuVqL%2F-LEh2zpBL7IatE6awMcZ%2Fimage.png?alt=media\&token=33b6fa18-16c1-4bea-9a6a-3960a01ae750)

{% hint style="info" %}
After including a previously ignored platoon, all of the requirements for that platoon must be filled out, or you must ignore the platoon again, in order to submit for assignments.
{% endhint %}

## Mission Un-ignoring

Just like ignoring all platoons for a mission is possible, so is including all platoons for a mission. In the Mission Utility Menu, choose **Include this mission**.

![Including all platoons for a mission via the Mission Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh1sZBd7SfJ5VuuVqL%2F-LEh2mYsyWjnqmZcjdmX%2Fimage.png?alt=media\&token=5d1b85bf-ae62-4c6f-9ff8-a3a6a0fe192a)


# Pre-Assignments

This is a helper utility that allows you to tell the platoon assigner who should be assigned to a specific requirement slot. You can do this for as many slots as you want.

![Assigning a player via the Requirement Dialog](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LEh3F6qCCyybrMWn-8B%2F-LEh3G5FY9Fijcn9f9Yz%2Fimage.png?alt=media\&token=c93d3819-41a4-433f-8a1e-741324fdeef6)

{% hint style="info" %}
This feature is useful for when you want to run assignments after guild members have already started platooning.
{% endhint %}

{% hint style="success" %}
Pre-assigning someone to a slot means they will be guaranteed to have this assignment after the assigner has run.
{% endhint %}


# Clearing Player Assignments

This will explain the different ways to clear player assignments.

This helper utility is most likely to be helpful in the following scenarios:\
\- After using the [Preview ](/tb-platoon-assigner/usage-guide/preview)feature\
\- After players have been automatically assigned from a scanned screenshot\
\- After manually assigning players

## Requirement Dialog

Need to erase a player assignment? This can be done one at a time via the **Requirement Dialog**. Simply click or tap a platoon requirement to see the Requirement Dialog. Then, choose "UNDEPLOYED" to clear the assignment.

![Clearing a single player assignment via the Requirement Dialog](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LF90B4mmJZxCfNgno9A%2F-LFNEGh51xsjFPIksLAQ%2Fimage.png?alt=media\&token=b400b529-47fd-49b2-9026-c4005d85f9a1)

## Platoon/Squadron clear

If you're looking for a quicker way to clear all of the player assignments from a platoon or squadron, drop down a platoon's Utility Menu and click the "Clear all player assignments" utility to erase all the assignments in that single platoon or squadron.

![Clearing all player assignments for a platoon via the Platoon Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LF90B4mmJZxCfNgno9A%2F-LFNHflA9Z7oYCMrsN8o%2Fimage.png?alt=media\&token=698bf966-4f9e-4466-bbc6-75cc35af4cb7)

## Mission clear

Drop down a mission's Utility Menu and click the "Clear all player assignments" utility to erase all the assignments for that mission. This will make the progress bar for that mission go back to 0.

{% hint style="warning" %}
This will erase all assignments for the entire mission. Make sure that is what you want to happen before doing it.
{% endhint %}

![Clearing all player assignments for a mission via the Mission Utility Menu](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LF90B4mmJZxCfNgno9A%2F-LFNImqLqr_-ghehbegI%2Fimage.png?alt=media\&token=3916686e-9786-4edc-afe2-5baffc1dd594)


# TW Defense Assigner

Coming soon!


# Settings

Want to configure your EchoBase experience? Check out these settings in more detail!


# Include @mentions

Tired of searching for your assignments in the giant public list? Get tagged in Discord next to your assignments.

{% hint style="warning" %}
&#x20;This feature requires use of the [EchoStation bot](https://docs.echobase.app/echostation).
{% endhint %}

## Setup

In order for this to work, EchoStation needs to be able to match your ally code to your Discord user. This is made possible by registering your ally code with the EchoStation bot.

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}


# Send DMs to each member

Tired of searching for your assignments in the giant public list? Get your assignments sent directly to you.

![Example of the contents of a direct message for TB Platoon Assigner](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LMNtP9HMEMOTdI4f81Y%2F-LMNtPpp3cLMoJFdtB4K%2Fimage.png?alt=media\&token=557cf34b-0e45-4200-aa7c-3599f53aaf04)

{% hint style="warning" %}
This feature requires use of the [EchoStation bot](/echostation).
{% endhint %}

## Setup

First, if you haven't already, make sure your guild is registered to your Discord server.

{% content-ref url="/pages/-LL6LeMQTohJI7lHwlyr" %}
[registerguild](/echostation/guild-commands/registerguild)
{% endcontent-ref %}

Next, in order for a DM to be sent successfully, EchoStation needs to be able to match a guild member's ally code to their Discord user. This is made possible by registering their ally code with the EchoStation bot. This must be done for **every guild member** that you want to receive a DM!

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}

Lastly, make sure to opt in before submitting for assignments!

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LRrjFuSgHtjiMwkQ9BI%2F-LRrlWm6UMlsaGY_t0Bt%2Fimage.png?alt=media\&token=36519409-2b5d-451a-8814-4b46f4b221b3)


# Discord Channel

Choose from a dropdown which channel you want to post assignments to.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDCZmhe3RmGCCLJ_bIv%2F-LDCZnWbqYuC96NQC-pe%2Fimage.png?alt=media\&token=647828fb-34c3-4aaa-93a7-fee84697344c)

This dropdown contains a list of verified channels in your Discord server. Simply choose one when submitting assignments in order to post to that channel.

{% hint style="warning" %}
This feature is only available to guilds who have added the EchoStation bot to their Discord server and have verified at least one channel with it.
{% endhint %}

{% content-ref url="/pages/-LCaDQMg2DM6eyAaxcCF" %}
[EchoStation (Discord bot)](/echostation)
{% endcontent-ref %}

Use the verify command in a channel to make it appear in the list:

{% content-ref url="/pages/-LSLiaa0hOkBETZGDR83" %}
[verify](/echostation/guild-commands/verify)
{% endcontent-ref %}


# Webhook URL

## Introduction

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDC_xmcw5FrFfDQSUNd%2Fimage.png?alt=media\&token=42807d81-8b7a-4798-9d98-9f0c1d90fc1f)

Webhook URLs are passageways into your guild's Discord server. They allow EchoBase the ability to post assignments to one of your channels without needing a bot to do it.

{% hint style="info" %}
For more information about what a Webhook URL is, see [this Discord article](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks).
{% endhint %}

{% hint style="warning" %}
Since the EchoStation bot can post assignments on its own, this feature will not show up once you've added the bot to your Discord server and registered your guild with it.
{% endhint %}

## Add a new Webhook URL

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCeuv95HbbD06EinOJ%2Fimage.png?alt=media\&token=bc5fbcda-66b7-44ba-8f5c-a3dff634b944)

* Click or tap **Add a new Webhook URL**

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCaZsNR4Sy0wS8jsai%2Fimage.png?alt=media\&token=949bc324-49ad-459f-9be7-b22c128c008a)

* Enter a name for the URL of your choice. This will often match the name of the channel your webhook is tied to.
* Enter the URL. Because these URLs are long, I highly recommend pasting the URL instead of typing it out by hand.
* **Save** or **Cancel**

{% hint style="info" %}
After saving a new URL, it will show up in the list.
{% endhint %}

## Select a different Webhook URL

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCc5s0wWpjblEL932G%2Fimage.png?alt=media\&token=324b5136-fb6f-4388-b83a-f47263d84cab)

Use the radio buttons on the right to choose between possible webhooks.

## Edit a Webhook URL

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCfHlvxnf4Z12V0zpR%2Fimage.png?alt=media\&token=afe3e141-6aa4-470f-aef2-7f937ce0aabc)

* Click the Edit icon to enter into edit mode.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCcaxqgwTXP31aiYoS%2Fimage.png?alt=media\&token=bf44b9b5-bce2-4871-bf8c-a981376c5ea1)

* The webhook being edited is highlighted and its values are populated in the inputs below.
* You can edit the name or the URL itself.
* **Save** to confirm your changes, or **Cancel** to cancel your changes.

## Delete a Webhook URL

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCdDVqp40PhikT0Tv8%2Fimage.png?alt=media\&token=e7b22ebe-6634-4e43-8660-5038fddac194)

* Use the trash can icon to delete a webhook.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LDC_wNpedsECHsrmqTT%2F-LDCfg452xFjNcVLtDfa%2Fimage.png?alt=media\&token=aec583b5-8008-421d-a6ef-55ada7cc0d5a)

* A confirmation notification will appear, and the webhook will no longer appear in the list.


# EchoStation (Discord bot)

EchoStation is the official companion Discord bot for EchoBase.

![Trey Callum, ex-Imperial officer, Sergeant Major to the Rebel Alliance. Stationed on Hoth.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCi_KesL709Wc568zQD%2F-LCi_UXRyOQ_xp4KNZrz%2FechoStationCommander.png?alt=media\&token=f425133a-c9a9-41d7-85a6-6a7b9b12b4e0)

## ​Invite

Want me to lend my services to you? [Invite me to your Discord server!](https://discordapp.com/api/oauth2/authorize?client_id=416767534528987137\&scope=bot%20applications.commands\&permissions=805829696)

{% hint style="info" %}
&#x20;Be sure to grant the requested permissions in order for me to function properly. You can always grant them again later if they ever get changed.
{% endhint %}

## DMs

I can send assignments to your guild members in direct messages so that they don't have to wade through giant lists of assignments in a public channel.

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}

## @mentions

I can @mention guild members in the public assignments list. This will help people find their assignments in the public list more easily.

{% content-ref url="/pages/-LCdfzF5FGqhdGMujUVK" %}
[Include @mentions](/settings/include-mentions)
{% endcontent-ref %}

## Commands

{% content-ref url="/pages/-LMNuJw2xty960lpiH8R" %}
[Player Commands](/echostation/player-commands)
{% endcontent-ref %}

{% content-ref url="/pages/-LL6NECwIBhZknMyZxL9" %}
[Guild Commands](/echostation/guild-commands)
{% endcontent-ref %}

{% content-ref url="/pages/-LP-0LBxfNIe4RziGYlm" %}
[General Commands](/echostation/general-commands)
{% endcontent-ref %}


# Echo Roles

Echo Roles allow you to execute **Guild-level commands**. It also allows you to execute **Player-level commands** for *other* people, besides yourself.

There are currently only 2 defined Echo Roles:

* **EchoCommander** - this role grants permission at the **guild** level. An EchoCommander will not be allowed to execute commands for anyone outside of his/her guild.
* **EchoAdmin** - this role grants permission at the **Discord server** level. An EchoAdmin is allowed to execute commands for anyone that is a member of the server in which the command was executed.

All Guild-level commands:

{% content-ref url="/pages/-LL6NECwIBhZknMyZxL9" %}
[Guild Commands](/echostation/guild-commands)
{% endcontent-ref %}

All Player-level commands:

{% content-ref url="/pages/-LMNuJw2xty960lpiH8R" %}
[Player Commands](/echostation/player-commands)
{% endcontent-ref %}

## How to create an Echo Role

Echo Roles are nothing more than Discord roles with specific names. Therefore, anyone with the Discord permission to create roles can create a role that matches one of the roles above.

{% hint style="info" %}
The roles are **case-sensitive**. This means that "echo" is not the same thing as "Echo."
{% endhint %}

There is also a handy EchoStation bot command which will create them for you (if EchoStation has the correct permissions in your server to do so):

{% content-ref url="/pages/-LP-0rNHLlWGqH-UgP3Q" %}
[echoroles](/echostation/general-commands/echoroles)
{% endcontent-ref %}

## How to get an Echo Role

Echo Roles are nothing more than Discord roles with specific names. EchoStation looks at your Discord roles when you execute certain commands to verify that you are allowed to execute those commands.

EchoStation is using these roles as a very light form of authentication (to prevent trolls from misusing certain commands), and therefore cannot know who is trustworthy or not to have such responsibility. Therefore, **someone in your server with permissions to grant roles** must give you one of these Echo Roles. As long as you have the role, EchoStation will honor it.


# Player Commands

These commands may be run by anyone. However, if you would like to execute them on behalf of another player, you will be required to have an Echo Role to do so.

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

## Basic Setup

The way you can tell the bot which ally code is yours is through the [register command](/echostation/player-commands/register). This is required for most bot functionality. You can always use the [status command](/echostation/player-commands/status) to see if everything was set up correctly.

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}

{% content-ref url="/pages/-LlYQKv\_E8U4sR0yQkIn" %}
[status](/echostation/player-commands/status)
{% endcontent-ref %}

## Advanced Setup

Check out these fine-tune commands for a deeper experience with EchoBase and the bot.

{% content-ref url="/pages/-LOzhl54g1X87DRnQmem" %}
[/donation-preference](/echostation/player-commands/donation-preference)
{% endcontent-ref %}

{% content-ref url="/pages/-LV4KjOE57bM0WURp6cK" %}
[language](/echostation/player-commands/language)
{% endcontent-ref %}

{% content-ref url="/pages/-LP2sWwTxAaFADtebyCs" %}
[ignore](/echostation/player-commands/ignore)
{% endcontent-ref %}

## Undoing Things

It is possible to unregister your Discord user from your ally code.

{% content-ref url="/pages/-LOtmvjz0xNmErSyDo6N" %}
[/unregister](/echostation/player-commands/unregister)
{% endcontent-ref %}


# /register

Register an ally code to link it with a Discord user.

You can use this command to link an ally code to a Discord user.

This will allow many of EchoBase's features to work for your user, including assignment DMs, setting of donation preferences, and so much more.

#### /register player <a href="#player" id="player"></a>

To register yourself, simply provide your ally code. The bot will grab your Discord user and register it automatically.

By providing a @mention, you can register an ally code to *someone else.* Please note that this will require the appropriate Echo Role.

| Parameters              | Example                                                             | Help                              |
| ----------------------- | ------------------------------------------------------------------- | --------------------------------- |
| ally-code, discord-user | /register player `ally-code:` 111-222-333 `discord-user:` @Somebody | /help `command:` /register player |

## Global Discord Registry

EchoBase is a participant in the global Discord registry, which is hosted by <https://swgoh.help>. This means that by registering your ally code/Discord user via EchoBase, you are automatically registered for **all** of the other tools that participate in the global registry. Woohoo! Cool stuff rocks!

## Legacy Command

**`eb.{allyCode}.register`**

| **Parameters** | **Options**  | **Example**                                      | Shortcut                                  |
| -------------- | ------------ | ------------------------------------------------ | ----------------------------------------- |
| ally code      | -            | **`eb.123456789.register`**                      | **`eb.123456789.r`**                      |
| ally code      | @mention     | **`eb.123456789.register @mention`**             | **`eb.123456789.r @mention`**             |
| ally code      | <@discordId> | **`eb.123456789.register <@12345678987654321>`** | **`eb.123456789.r <@12345678987654321>`** |
| -              | help         | **`eb.help register`**                           | **`eb.help r`**                           |

{% hint style="warning" %}
Registering someone else via the **@mention** option is restricted to those with an Echo Role only.
{% endhint %}

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}


# /unregister

Unregister an ally code to disconnect it from a Discord user.

You can use this command to disconnect an ally code from a Discord user.

This will discontinue the use of many of EchoBase's features for your user, including assignment DMs, the setting of donation preferences, and many others.

#### /unregister player <a href="#player" id="player"></a>

To unregister yourself, simply provide your ally code.

By providing a @mention, you can unregister *someone else*. Please note that this will require the appropriate Echo Role.

| Parameters              | Example                                                               | Help                                |
| ----------------------- | --------------------------------------------------------------------- | ----------------------------------- |
| ally-code, discord-user | /unregister player `ally-code:` 111-222-333 `discord-user:` @Somebody | /help `command:` /unregister player |

{% hint style="info" %}
**NOTE:** Unregistering someone is not the same as removing them from your guild. The list of players that are in your guild is completely driven by the data API and cannot be manually manipulated. If your guild data is out of sync, try using the [forceguildsync command](/echostation/guild-commands/forceguildsync).
{% endhint %}

## Global Discord Registry <a href="#global-discord-registry" id="global-discord-registry"></a>

EchoBase is a participant in the global Discord registry, which is hosted by <https://swgoh.help>. This means that by unregistering your ally code/Discord user via EchoBase, you are automatically unregistered for **all** of the other tools that participate in the global registry. Please make sure that is what you want before executing this command.

## Legacy Command

**`eb.{allyCode}.unregister`**

| **Parameters** | **Options**  | **Example**                                        | Shortcut                                   |
| -------------- | ------------ | -------------------------------------------------- | ------------------------------------------ |
| ally code      | -            | **`eb.123456789.unregister`**                      | **`eb.123456789.ur`**                      |
| ​ally code     | @mention     | **`eb.123456789.unregister @mention`**             | **`eb.123456789.ur @mention`**             |
| ​ally code     | <@discordId> | **`eb.123456789.unregister <@12345678987654321>`** | **`eb.123456789.ur <@12345678987654321>`** |
| -              | help         | **`eb.help unregister`**                           | **`eb.help ur`**                           |

{% hint style="warning" %}
Unregistering someone else via the **@mention** option is restricted to those with an [Echo Role](/echostation/echo-roles) only.
{% endhint %}


# /donation-preference

Set the donation preference of a player's unit. The set preference will always be honored unless overriding it is necessary to make a platoon possible.

#### /donation-preference player <a href="#player" id="player"></a>

To run this command for yourself, omit the ally-code parameter. Otherwise, this parameter can be used to run this command on behalf of someone else.

To set a preference, fill out both the `preference` and the `unit-names` parameters. Leave one or both of them blank to run a report instead.

| Parameters                        | Example                                                                                                               | Help                                         |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| preference, unit-names, ally-code | /donation-preference player `preference:` keep `unit-names:` nightsisters, clone wars Chewie `ally-code:` 111-222-333 | /help `command:` /donation-preference player |

Have you ever wanted a way to have some control over the assignments you receive? These three options  will allow you to influence EchoBase's assignment algorithm to stay away from the units you don't want to donate, and to favor the ones that you do:

`give` = ALWAYS assign this unit if possible.

`default` = Remove any donation preferences for this unit.

`keep` = NEVER assign this unit if possible.

{% hint style="info" %}
EchoBase's job is to complete as many platoons as possible. Units that are listed as "keep" are not ignored completely, and will be assigned as a last resort only.
{% endhint %}

When specifying the unit or faction name, there are several ways to match a character:

* Exact match
* Partial match (e.g. Hera, Maul, Cody, etc.)
* Common nicknames (e.g. hoda, scav rey, st han, etc.)
* Acronyms (e.g. QGJ, JKA, RG, etc.)
* Ignore special symbols (e.g. ig88, r2d2, Qira, etc.)
* Base ID (e.g. AAYLASECURA, BLADEOFORIN, KYLOREN, etc.)
* Minimal typos

In addition to the above, ships may be identified by their pilots by typing:

* \<pilot name>'s ship (e.g. Wedge's ship, rey's ship, spy's ship, etc.)

Also, factions can be identified by using the :file\_folder: emoji before the faction name:

* :file\_folder: Jawa (to not be confused with the unit named Jawa, for example)

Multiple units or factions can be specified - just separate each one with a comma:

* Jawas, clone wars Chewie

{% hint style="warning" %}
Setting up a donation preference for someone else via their ally code is restricted to those with an Echo Role only.
{% endhint %}

## Why use this command?

The driving factor for creating this feature is the fact that every unit that is donated to platoons cannot be used in a CM battle. Therefore, this feature is particularly useful for the guild members at the top and the bottom of your guild.

**Members at the top of your guild** will often have plenty of characters to spare for platoon donations. They should set up several **`give`** units out of their surplus to help weaker members to not have to donate so much.

**Members at the bottom of the guild** often *don't* have a lot of spare characters, and may even be asked to donate from their CM teams. They should set up several **`keep`** units in order to protect their CM teams as much as possible.

## Assignment Display

As an indication to the guild that you have chosen to willingly give your characters or ships, an asterisk **`*`** will be prefixed to the corresponding assignment in the public assignment post. The guild thanks you for your sacrifice (or they should, anyway).

![the asterisks indicate that these ships were given willingly through the eb.donationpreference command.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCaZO4WimiUqbak_4eU%2F-LCaggISIQ3bj1a1mUFo%2Fimage.png?alt=media\&token=cf759d4c-706e-47bf-ae1d-21669aa4c43f)

In the case where EchoBase has been forced to assign one of the toons you wanted to keep, as an indication to the guild that you desire that your toon *not* have to be donated, the word **`HELP!`** will appear next to your assignment.

![seeing HELP! next to someone's assignment means they were assigned a toon they didn't want to give up.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LCah-WnFRilM82SXnxc%2F-LCap-vgUqiXIhbA-cGQ%2Fimage.png?alt=media\&token=2227b424-fc3f-42c0-bed6-3835d2f0998d)

{% hint style="info" %}
The word **`HELP!`** is shown is for two reasons:

1. Someone might not yet be synced with EchoBase who could fill the assignment instead.
2. In rare cases, someone might be able to unlock the required star level for the required toon, but EchoBase won't know until that person's roster is synced to show the new star level.
   {% endhint %}

{% hint style="warning" %}
Each guild member is still responsible for filling their assignments, even if they set a donation preference t&#x6F;**`keep`** for a unit, unless the guild decides otherwise. Seeing **`HELP!`** means that assignment is EchoBase's last resort, and the platoon will not get filled without it.
{% endhint %}

## Legacy Command

**`eb.{allyCode}.donationpreference <give|default|keep> <unit|faction|"all">`**

| **Parameters**               | **Options** | **Example**                                            | Shortcut                                |
| ---------------------------- | ----------- | ------------------------------------------------------ | --------------------------------------- |
| preference and unit name     | -           | **`eb.donationpreference keep Hermit Yoda`**           | **`eb.dp keep hoda`**                   |
| preference and unit name     | ally code   | **`eb.123456789.donationpreference give Hermit Yoda`** | **`eb.123456789.dp give hoda`**&#x200B; |
| preference and faction name  | -           | **`eb.donationpreference give Nightsisters`**          | **`eb.dp give Nightsisters`**           |
| preference and "all" keyword | -           | **`eb.donationpreference default all`**                | **`eb.dp default all`**                 |
| -                            | help        | **`eb.help donationpreference`**                       | **`eb.help dp`**                        |


# status

See the status of a Discord User's registered account, including Ally Code, Discord Registration and Unit Donation Preferences.

## Command Definition

**`eb.status [@Someone or <@DiscordID> {limit 50}]`**

| Parameters          | Options | Example                                     | Shortcut                               |
| ------------------- | ------- | ------------------------------------------- | -------------------------------------- |
| -                   | -       | **`eb.status`**                             | **`eb.s`**                             |
| @mention            | -       | **`eb.status @DiscordUser`**                | **`eb.s @DiscordUser`**                |
| <@discordId>        | -       | **`eb.status <@12345678901234678>`**        | **`eb.s <@123456789012345678>`**       |
| @mention1 @mention2 | -       | **`eb.status @DiscordUser1 @DiscordUser2`** | **`eb.s @DiscordUser1 @DiscordUser2`** |
|                     | help    | **`eb.help status`**                        | **`eb.help s`**                        |

{% hint style="warning" %}
When using the **@Someone** option, make sure you have their "**Real**" Discord Handle in case your Server changes the nicknames to match their User Account in SWGoH.
{% endhint %}

## Where to Find Discord User Information

### Discord Handle

Find the Member's name in the Discord Server's Members List and **Left Click** on the Member **Once.** Below the profile picture, you will find the **Discord Handle** you will need.

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LliFwL2oa9kwxB3R3Rk%2F-LliJCN35aMcBU0OAwau%2FDiscord%20Handle.JPG?alt=media\&token=9c0451fe-8703-4f4b-8c59-c3e556af3e1b)

### DiscordID

To find the DiscordID, once again, locate the Member's name in the Discord Server's Members List and **Right Click** on the Member. The Last option in the Drop Down List is to **Copy ID.**

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LliFwL2oa9kwxB3R3Rk%2F-LliJdAKGVqu83e61qZ8%2FDiscordID.JPG?alt=media\&token=2ebeda1f-9b55-44da-8350-e3c946a886a7)

{% hint style="warning" %}
You Must have **Developer Mode** enabled for this option to appear in the Drop Down List. Instructions for enabling it from a computer can be found below.
{% endhint %}

### How to Enable Developer Mode

At the **Bottom Left** of your screen, you will see your **Discord Name**. Click on the **Gear Icon** next to your name to access **User Settings**.&#x20;

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LliFwL2oa9kwxB3R3Rk%2F-LliLirStZwJs-fiDtwV%2FPersonal%20Settings.JPG?alt=media\&token=5df0b4f6-56a9-4930-95ea-8d9aa0df8ea3)

Next, Click on the option for **Appearance** on the left menu. In the new list of options, under **Advanced,** you should see the Toggle for **Developer Mode.**

![](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LliFwL2oa9kwxB3R3Rk%2F-LliM59Va4-6_DGsh2ur%2FDeveloper%20Mode.JPG?alt=media\&token=f0ea0974-9418-41b0-9c04-bb51ce874693)

## Why Use this Command?

This Command with give you the User's **Ally Code** along with their **Donation Preferences** (*if any*). The result will tell you how many units a person set to **`keep`** or **`give`**. This will give user's an idea as to the preferences of their Guild Mates and give Officers the ability to reevaluate Donation Preferences in the future.

## Status Display

The Display will show the User's **Donation Preferences** along with their **Ally Code** and the **Discord User's Registered Account**.

![Status gives you a broad Overview of a Guild Members Preferences](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LlhZruEvU1JB27O3k5D%2F-LlhhsHoEZxNsyWbQAga%2FPersonal%20Status.JPG?alt=media\&token=b145a34e-76e8-4582-bb5b-3d6b743ec962)

{% hint style="danger" %}
If trying to search **Multiple** Discord Users, you will not be shown who is giving or keeping specific units. As shown below.
{% endhint %}

![Multiple Status Example. Notice there is no Donation Preferences listed.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LlhZruEvU1JB27O3k5D%2F-LlhjW06TQUCehjQc5tF%2FMultiple%20Status.JPG?alt=media\&token=610eff27-8254-46de-a00f-1f3b4661eb1b)


# ignore

Set a guild member's ignore status.

#### Command definition

**`eb.{allyCode}.ignore <numberOfDaysIgnored>`**

| **Parameters**         | **Options** | **Example**                 | Shortcut                        |
| ---------------------- | ----------- | --------------------------- | ------------------------------- |
| number of days ignored | -           | **`eb.ignore 1`**           | **`eb.ig 1`**                   |
| number of days ignored | ally code   | **`eb.123456789.ignore 7`** | **`eb.123456789.ig 7`**&#x200B; |
| un-ignore is 0         | -           | **`eb.ignore 0`**           | **`eb.ig 0`**                   |
| -                      | help        | **`eb.help ignore`**        | **`eb.help ig`**                |

Out of town? Unavailable? Hate platooning? Ignore yourself for a set amount of days.

After the amount of days has passed, the ignore status will automatically be dropped. In order to manually remove an ignore status, run the command again and pass "0" for the number of days.

Specifying an ally code will allow you to ignore that player.

{% hint style="warning" %}
Ignoring someone else via their ally code is restricted to those with an Echo Role only.
{% endhint %}


# language

Coming soon!


# Guild Commands

Most of these commands may only be run by those with an Echo Role.

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

## Getting Started

These commands are the most important for EchoStation users to understand. Once a [guild is registered](/echostation/guild-commands/registerguild) to a Discord server, assignments can be made with the [assignplatoons command](/echostation/guild-commands/assignplatoons). If you want to continue using the webapp for sending assignments instead, a channel in that server needs to be [verified for assignments](/echostation/guild-commands/verify) or a [Webhook](/settings/webhook-url) needs to be supplied. These things and more can be checked using the [guildstatus command](/echostation/guild-commands/guildstatus).

{% content-ref url="/pages/-LL6LeMQTohJI7lHwlyr" %}
[registerguild](/echostation/guild-commands/registerguild)
{% endcontent-ref %}

{% content-ref url="/pages/-LL6Y8kXJ5vY8SBuv72x" %}
[guildstatus](/echostation/guild-commands/guildstatus)
{% endcontent-ref %}

{% content-ref url="/pages/-LSLiaa0hOkBETZGDR83" %}
[verify](/echostation/guild-commands/verify)
{% endcontent-ref %}

## Advanced Setup

Sometimes a little more setup is needed. Check out these advanced topics to learn more:

{% content-ref url="/pages/-LSLb2UHFz2Nud7hRtQu" %}
[forceguildsync](/echostation/guild-commands/forceguildsync)
{% endcontent-ref %}

{% content-ref url="/pages/-LV4KfVTvwyXvO\_Dz3ru" %}
[guildlanguage](/echostation/guild-commands/guildlanguage)
{% endcontent-ref %}

{% content-ref url="/pages/-LbBe8nE4ovzdt7mlR1x" %}
[guildpin](/echostation/guild-commands/guildpin)
{% endcontent-ref %}

{% content-ref url="/pages/-LV4K\_u6It7FQP4EDcZz" %}
[guilddonationpreferences](/echostation/guild-commands/guilddonationpreferences)
{% endcontent-ref %}

## Platoon Commands

Ready to send out some assignments?

{% content-ref url="/pages/-LbxpH\_e2TWBXMyWhlAS" %}
[assignplatoons](/echostation/guild-commands/assignplatoons)
{% endcontent-ref %}

Would you like to know where your guild stands in the farm for all those platoon requirements?

{% content-ref url="/pages/-LaSAwYkKsYtRXfFMLil" %}
[platoonreport](/echostation/guild-commands/platoonreport)
{% endcontent-ref %}

## Undoing Things

Need to unregister your guild from a Discord server?

{% content-ref url="/pages/-LL6S9z5YTm7j8MMU7p9" %}
[unregisterguild](/echostation/guild-commands/unregisterguild)
{% endcontent-ref %}

Want to remove a channel from the verified channels list?

{% content-ref url="/pages/-LSLlJuqSD19vTjig4PD" %}
[unverify](/echostation/guild-commands/unverify)
{% endcontent-ref %}


# /register

Register a guild to this Discord server.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

You can use this command to choose which Discord server EchoBase should look at for posting options.

You can switch to a different Discord server by running this command in a different server. EchoBase will be registered in the new server and will forget the old server.

#### /register guild <a href="#guild" id="guild"></a>

To register your own guild, leave out the ally-code parameter.

By providing an ally code of anyone in the target guild, you can register someone else's guild for them. Please note that this will require the EchoAdmin Role.

| Parameters | Example                                  | Help                             |
| ---------- | ---------------------------------------- | -------------------------------- |
| ally-code  | /register guild `ally-code:` 111-222-333 | /help `command:` /register guild |

#### /register guild-mates <a href="#guild-mates" id="guild-mates"></a>

To register your own guild mates, simply leave out the ally code parameter.

By providing an ally code of anyone in the target guild, you can trigger an automatic registration of all guild mates in that guild.

The bot will search your registered Discord server for any matches (name or nickname) to any of the target guild's unregistered guild mates and automatically register them.

If there are still unregistered guild mates that couldn't be matched, the register command will be displayed for each one. You can easily copy-paste it and simply provide the needed `discord-user` parameter.

| Parameters | Example                                        | Help                                   |
| ---------- | ---------------------------------------------- | -------------------------------------- |
| ally-code  | /register guild-mates `ally-code:` 111-222-333 | /help `command:` /register guild-mates |


# registerguild

Register the caller's guild to this Discord server.

{% hint style="warning" %}
This command has been replaced with slash commands.
{% endhint %}

{% content-ref url="/pages/-MZ9nmwnTPHK9vb9yx70" %}
[/register](/echostation/guild-commands/register)
{% endcontent-ref %}

## Legacy Command

**`eb.{allyCode}.registerguild`**

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**                      | Shortcut              |
| -------------- | ----------- | -------------------------------- | --------------------- |
| -              | -           | **`eb.registerguild`**           | **`eb.rg`**           |
| -              | ally code   | **`eb.123456789.registerguild`** | **`eb.123456789.rg`** |
| -              | help        | **`eb.help registerguild`**      | **`eb.help rg`**      |


# /unregister

Unregister a guild from this Discord server.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

You can use this command to remove EchoBase's knowledge of which Discord server is used for your guild.

#### /unregister guild <a href="#guild" id="guild"></a>

To unregister your own guild, simply leave out the ally-code parameter.

By providing an ally code of anyone in the target guild, you can unregister someone else's guild for them. Please note that this will require the EchoAdmin Role.

| Parameters | Example                                    | Help                               |
| ---------- | ------------------------------------------ | ---------------------------------- |
| ally-code  | /unregister guild `ally-code:` 111-222-333 | /help `command:` /unregister guild |


# unregisterguild

Sever the connection between the caller's guild and this Discord server.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

## Legacy Command

**`eb.{allyCode}.unregisterguild`**

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**                        | Shortcut               |
| -------------- | ----------- | ---------------------------------- | ---------------------- |
| -              | -           | **`eb.unregisterguild`**           | **`eb.urg`**           |
| -              | ally code   | **`eb.123456789.unregisterguild`** | **`eb.123456789.urg`** |
| -              | help        | **`eb.help unregisterguild`**      | **`eb.help urg`**      |

You can use this command to remove EchoBase's knowledge of which Discord server is used for your guild.


# guildstatus

See the registered status of the caller's guild with the hosting Discord server.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

#### Command Definition

**`eb.{allyCode}.guildstatus`**

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**                    | Shortcut              |
| -------------- | ----------- | ------------------------------ | --------------------- |
| -              | -           | **`eb.guildstatus`**           | **`eb.gs`**           |
| -              | ally code   | **`eb.123456789.guildstatus`** | **`eb.123456789.gs`** |
| -              | help        | **`eb.help guildstatus`**      | **`eb.help gs`**      |

You can use this command to get a formatted list of each guild member's status.

![Example of a guild's status](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LRrmm-XrYX3nIOcoDoS%2F-LRroMaT52UTSYBHqTHe%2Fimage.png?alt=media\&token=8263f3b1-ec8a-46ab-9501-72b6a869c628)

The guild's name is printed in the author line and the guild's banner icon appears in the top-right corner for easy guild identification in servers that have multiple registered guilds.

Each status is separated into its own embedded list. Members are displayed in this format, whenever possible: `{allyCode}{gameName}{emojiForOfficerOrLeader}{@mention}{emojiForEchoRole}`

First, an overview embed will list several items of general guild information, including GP counts, leader/officers, and which channels have been verified for EchoBase use.

Next, a green embed will list all, if any, of the guild members who are registered. These members should be able to receive a DM or a @mention from EchoBase, given the correct Discord settings and permissions.

Next, a grey embed will list all, if any, of the guild members who are currently being ignored by EchoBase, and how many days are remaining of their ignore status (if given).

Lastly, a red embed will list all, if any, of the guild members who are not registered. **These members will receive assignments, but will not be able to receive a DM or a @mention from EchoBase until their Discord user accounts are registered.**


# forceguildsync

Pull the latest guild information for the caller's guild.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

#### Command Definition

**`eb.{allyCode}.forceguildsync`**

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**                       | Shortcut               |
| -------------- | ----------- | --------------------------------- | ---------------------- |
| -              | -           | **`eb.forceguildsync`**           | **`eb.fgs`**           |
| -              | ally code   | **`eb.123456789.forceguildsync`** | **`eb.123456789.fgs`** |
| -              | help        | **`eb.help forceguildsync`**      | **`eb.help fgs`**      |

You can use this command to force EchoBase to refresh its local database for your guild.

The data comes directly from api.swgoh.help and is subject to their sync cooldowns.

{% hint style="info" %}
Your data syncs automatically in the background every few hours, depending on your EchoBase activity. This command should only be run if fresh data is required right now.
{% endhint %}

If you want to see an overview of the newly synced data, use this command:

{% content-ref url="/pages/-LL6Y8kXJ5vY8SBuv72x" %}
[guildstatus](/echostation/guild-commands/guildstatus)
{% endcontent-ref %}


# verify

Mark a Discord channel as verified for EchoBase use.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

#### Command Definition

**`eb.{allyCode}.verify`**

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**               | Shortcut             |
| -------------- | ----------- | ------------------------- | -------------------- |
| -              | -           | **`eb.verify`**           | **`eb.v`**           |
| -              | ally code   | **`eb.123456789.verify`** | **`eb.123456789.v`** |
| -              | help        | **`eb.help verify`**      | **`eb.help v`**      |

You can use this command to tell EchoBase that the channel that this command is run in is eligible to receive assignments from EchoBase.

If you want to remove a channel from EchoBase's posting list, use this command:

{% content-ref url="/pages/-LSLlJuqSD19vTjig4PD" %}
[unverify](/echostation/guild-commands/unverify)
{% endcontent-ref %}

If you want to see all of the currently verified channels for your guild, use this command:

{% content-ref url="/pages/-LL6Y8kXJ5vY8SBuv72x" %}
[guildstatus](/echostation/guild-commands/guildstatus)
{% endcontent-ref %}


# unverify

Disallow EchoBase to use this Discord channel.

{% hint style="warning" %}
This command is restricted to those with an Echo Role only.
{% endhint %}

#### Command Definition

**`eb.{allyCode}.unverify`**

{% hint style="info" %}
Ally code is only required if you have registered multiple ally codes to your Discord account.
{% endhint %}

| **Parameters** | **Options** | **Example**                 | Shortcut              |
| -------------- | ----------- | --------------------------- | --------------------- |
| -              | -           | **`eb.unverify`**           | **`eb.uv`**           |
| -              | ally code   | **`eb.123456789.unverify`** | **`eb.123456789.uv`** |
| -              | help        | **`eb.help unverify`**      | **`eb.help uv`**      |

You can use this command to tell EchoBase that the channel that this command is run in is not eligible to receive assignments from EchoBase.

If you want to add a channel to EchoBase's posting list, use this command:

{% content-ref url="/pages/-LSLiaa0hOkBETZGDR83" %}
[verify](/echostation/guild-commands/verify)
{% endcontent-ref %}

If you want to see all of the currently verified channels for your guild, use this command:

{% content-ref url="/pages/-LL6Y8kXJ5vY8SBuv72x" %}
[guildstatus](/echostation/guild-commands/guildstatus)
{% endcontent-ref %}


# guilddonationpreferences

View all of the donation preferences in the guild.

### Command Definition

**`eb.{allycode}.guilddonationpreferences`**

| Parameters | Options   | Example                                     | Shortcut               |
| ---------- | --------- | ------------------------------------------- | ---------------------- |
| -          | -         | **`eb.guilddonationpreferences`**           | **`eb.gdp`**           |
| -          | ally code | **`eb.123456789.guilddonationpreferences`** | **`eb.123456789.gdp`** |
| -          | help      | **`eb.help guilddonationpreferences`**      | **`eb.help gdp`**      |

## Why Use this Command?

Members who have the **EchoCommander** or **EchoAdmin** Role can run this command to quickly see how many units a Member has designated to **`Keep`** or **`Give`** when assigning platoons.&#x20;

This feature allows for a better assessment and the ability to review who in the guild  is offering more or keeping more units when compared across the entire guild.&#x20;

{% hint style="warning" %}
This Command is restricted to members with an **EchoRole**.
{% endhint %}

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

## Guild Donation Display

The Display will **ONLY** show which Guild Members have donation preferences and how many units they designated to **`Keep`** or **`Give`**

![Running the Command gives you a quick overview of your Guild's Donation Preferences.](https://1087118018-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCAR3OILMNsfn5qmtzW%2F-LlYB5goQ7rN2hgnCnsA%2F-LlYM-j7nUrGgsSP5txH%2FGDP.JPG?alt=media\&token=56bcd41b-02ae-4391-a6b6-4b2cff58a746)

{% hint style="warning" %}
If you are looking for which specific units a Member is keeping or giving, go to the [**status**](/echostation/player-commands/status) page on how you can look that up.
{% endhint %}

{% content-ref url="/pages/-LlYQKv\_E8U4sR0yQkIn" %}
[status](/echostation/player-commands/status)
{% endcontent-ref %}


# guildlanguage

Coming soon!


# platoonreport

Coming soon!


# guildpin

Coming soon!


# assignplatoons

Coming soon!


# General Commands

This command can be used by itself to get a high-level view of each command, or use it in conjunction with another command to see all the help details for that command!

{% content-ref url="/pages/-LP-98t5A-eG2c\_DxHo6" %}
[help](/echostation/general-commands/help)
{% endcontent-ref %}

Get some information about the bot, including the invite link.

{% content-ref url="/pages/-LP-2YhsRtiCeySyvDxk" %}
[info](/echostation/general-commands/info)
{% endcontent-ref %}

Need to know what your Discord ID is?

{% content-ref url="/pages/-LP-3ekXW5rRdClkij5Q" %}
[id](/echostation/general-commands/id)
{% endcontent-ref %}

This gives you a list of helpful EchoBase-related links.

{% content-ref url="/pages/-LP-7b\_n\_QBHpKGpY8ta" %}
[links](/echostation/general-commands/links)
{% endcontent-ref %}

Set up [Echo Roles](/echostation/echo-roles) in your server so that [guild commands](/echostation/guild-commands) can be executed by those that have them.

{% content-ref url="/pages/-LP-0rNHLlWGqH-UgP3Q" %}
[echoroles](/echostation/general-commands/echoroles)
{% endcontent-ref %}


# info

Everything you need to know about the EchoStation bot!

#### Command definition

**`eb.info`**

| **Parameters** | **Options** | **Example**        | Shortcut        |
| -------------- | ----------- | ------------------ | --------------- |
| -              | -           | **`eb.info`**      | **`eb.i`**      |
| -              | help        | **`eb.help info`** | **`eb.help i`** |

Use this command any time to get some useful information, such as:

* How many servers EchoStation is running on
* EchoStation invite link
* EchoBase link
* How many guilds are using EchoBase
* Links to this documentation site, the public Discord server, and donation options


# id

See what your Discord ID is, or mention someone else to see theirs.

#### Command definition

**`eb.id [@Someone or <@discordId> {limit 50}]`**&#x20;

| **Parameters**         | **Options** | **Example**                                           | Shortcut |
| ---------------------- | ----------- | ----------------------------------------------------- | -------- |
| -                      | -           | **`eb.id`**                                           | -        |
| @mention               | -           | **`eb.id @mention`**                                  | -        |
| <@discordId>           | -           | **`eb.id <@12345678987654321>`**                      | -        |
| multiple @mentions     | -           | **`eb.id @Someone @SomeoneElse`**                     | -        |
| multiple <@discordId>s | -           | **`eb.id <@12345678987654321> <@98765432123456789>`** | -        |
| -                      | help        | **`eb.help id`**                                      | -        |

Use this command any time to get your Discord ID.

Alternatively, you can @mention someone to see what their Discord ID is.

If you want to verify an ID, you can use the <@discordId> option to see whether or not the ID is valid.

{% hint style="info" %}
Please limit the number of @mentions or <@discordId>s to 50.
{% endhint %}


# links

See helpful EchoBase- and EchoStation-related links.

#### Command definition

**`eb.links`**

| **Parameters** | **Options** | **Example**         | Shortcut        |
| -------------- | ----------- | ------------------- | --------------- |
| -              | -           | **`eb.links`**      | **`eb.l`**      |
| -              | help        | **`eb.help links`** | **`eb.help l`** |

Use this command any time to get some useful links, such as:

* EchoBase link
* EchoStation invite link
* Public Discord server link
* A link to this documentation site
* Donation options


# echoroles

Let the EchoStation bot create the Echo Roles in your server.

#### Command Definition

**`eb.echoroles`**

| **Parameters** | **Options** | **Example**             | Shortcut         |
| -------------- | ----------- | ----------------------- | ---------------- |
| -              | -           | **`eb.echoroles`**      | **`eb.er`**      |
| -              | help        | **`eb.help echoroles`** | **`eb.help er`** |

This command will tell the EchoStation bot to create all of the possible Echo Roles in the server in which the command was executed.

{% hint style="warning" %}
Make sure the EchoStation bot has Discord permissions to create roles in your server, or it will not work!
{% endhint %}

For more information on Echo Roles:

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}


# help

List out all available commands, or get help for a specific command.

#### Command definition

**`eb.help [command name]`**

| **Parameters** | **Options**  | **Example**            | Shortcut            |
| -------------- | ------------ | ---------------------- | ------------------- |
| -              | -            | **`eb.help`**          | **`eb.h`**          |
| command name   | -            | **`eb.help register`** | **`eb.h register`** |
| -              | command name | **`eb.register help`** | **`eb.r help`**     |

Use this command any time to see a complete list of all commands.

Specifying a command name will retrieve specific help instructions for that command, including a link to its documentation page for more info.


# Response Codes

Quick lookup of response codes you might have seen while using EchoBase.

## Standard Responses

### DROID

This is the generic info response, with a specific message containing some information.

### GUNGAN

This error is returned when EchoBase has encountered an error with the data API that provides data from the game.

### TUSKEN

This is the most generic response code, representing an unexpected error. The default message is "Internal Error" but might include a little more information, depending on what was available at the time of the error.

### WOOKIEE

This is the generic success response, with a specific message about what succeeded.

## EchoBase Responses

### ABAFAR

```
Member statuses are required.
```

When updating member statuses, this error can occur if no statuses are sent to the server.

### ACHO\_TO

```
Guild ID is required.
```

EchoBase relies on an internal Guild ID to know which guild is logged in. If you see this error, make sure cookies are enabled in your browser, and log out and log back in.

### ALDERAAN

```
Ally Code is required.
```

Your ally code is needed to log in with, and is needed to specify who certain bot commands are to be run as.

### ATOLLON

```markup
Unknown donation preference '<invalid-preference>', expected one of: '<valid-preferences>'
```

Please use one of the valid preferences in your command.

### BATUU

```markup
Member does not own <unit>.
```

Donation preferences cannot be set for a unit if the specified member doesn't have that unit in his/her collection.

### BESPIN

```
All 10 territories must be given a priority ranking.
```

All territories have a priority ranking by default, so please let me know if you get this error, as it shouldn't be possible without some hacking.

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### CHANDRILA

```
You have already reached the maximum number of allowed Grouping Rules.
```

This error indicates that you have tried to add a new grouping rule, even though you have already reached the maximum.

### CHRISTOPHSIS

```markup
Ally code <allyCode> must be in a guild to use this command.
```

This error will happen if certain commands are sent to EchoStation with an ally code that belongs to a player that is not part of a guild.

### CORELLIA

```
A priority of '1' must be given to at least one territory.
```

This would be shown if you change all of the priorities in the TW Defense Assigner to be something other than '1'. As long as you specify at least one territory to have a priority of '1', you shouldn't get this error anymore.

### CORUSCANT

```
Webhook Name is required.
```

Provide whatever name you would like - something by which you can identify your webhook URL.

### CRAIT

```markup
Not allowed to DM member(s): <list-of-members>
```

This alerts which members were unable to receive Direct Messages due to their Discord settings.

Please refer to [this Discord article](https://support.discordapp.com/hc/en-us/articles/217916488-Blocking-Privacy-Settings-) for detailed instructions on these settings.

### D\_QAR

```
Discord role is not valid for this guild.
```

This error means that the selected Discord role for notifications has been removed from the guild, or the role is invalid in some unknown way. Refresh your browser and try again. If that does not work, please describe your issue in the support server.

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### DAGOBAH

```
Please select a Discord Channel to post assignments to.
```

{% content-ref url="/pages/-LCdgIlaUV5VfoSv-ODo" %}
[Discord Channel](/settings/discord-channel)
{% endcontent-ref %}

### DANTOOINE

```markup
User(s) not in this server: <list-of-members>
```

This is a validation error that indicates that an EchoStation command cannot be run for anyone who is outside of the Discord server in which the command was executed.

### DATHOMIR

```markup
Missing Discord permission: <discord-permission>
```

If the EchoStation bot was not granted the correct permission to accomplish one of its tasks, this error will specify what is missing. However, it is unknown whether the needed permission is at the Server level or the Channel level.

### EADU

```
Guild ID is invalid.
```

This indicates that the guild ID that lives in your session is not tied to any known guild. Try logging out and logging back in to fix this error.

### ERIADU

```
Player must be part of a guild.
```

Certain EchoStation commands require that the player must be a part of a guild for them to work.

### GEONOSIS

```
Invalid webhook ID.
```

Webhook IDs must be a positive integer.

### HOSNIAN\_PRIME

```
Discord Server ID is required.
```

Disconnecting a guild from a Discord server requires that the Discord server's ID be included in the request.

### HOTH

```
Phase is required.
```

C'mon man, just give me the phase number.

### JAKKU

```
Your selected Discord Channel is no longer valid. Please choose another.
```

This might happen if the channel that you have chosen was deleted after the page was loaded.

### KAMINO

```markup
Unknown guild member found: '<guild-member>' Refresh and try again.
```

If the guild member has been removed from the guild before including them in your request, you'll need to refresh in order to get a valid list before trying again.

### KASHYYYK

```
Webhook URL is invalid.
```

Double check to make sure the entire webhook URL, and nothing else, is included! If you are sure that it is, please let me know and send me your webhook URL so I can get it working for you.

The URL should be formatted like this:

```markup
https://discordapp.com/api/webhooks/<discord-channel-id>/<really-long-string>
```

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### KESSEL

```
Your guild must be registered with EchoStation to use this command.
```

{% content-ref url="/pages/-LL6LeMQTohJI7lHwlyr" %}
[registerguild](/echostation/guild-commands/registerguild)
{% endcontent-ref %}

### LOTHAL

```
You must be registered with EchoStation to use this command.
```

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}

### MALACHOR

```markup
Could not match member(s) to Discord: <list-of-members>
```

This alerts which members were unable to be matched by EchoBase, causing them to not receive Direct Messages.

{% content-ref url="/pages/-LCdg3NTGm3QiPiRCOxa" %}
[Send DMs to each member](/settings/send-dms-to-each-member)
{% endcontent-ref %}

### MANDALORE

```
Webhook not found.
```

This might happen if the webhook that you are trying to perform an action on has already been deleted. Refresh your page to see a fresh list of webhooks.

### MORABAND

```
Discord Channel ID is not valid for this guild.
```

This error means that the selected Discord channel for notifications has been removed from the guild, or the channel is invalid in some unknown way. Refresh your browser and try again. If that does not work, please describe your issue in the support server.

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### MORTIS

```markup
Your Discord request is being processed, but there are <number> requests ahead of yours. Approximate wait: <duration>
```

EchoBase gets a lot of traffic in the hours leading up to the start of a new phase, especially during those phases that overlap between Hoth and Geonosis TBs. This becomes troublesome because Discord can't keep up with 3-4 channel posts + 50 DMs being sent multiple times per second.

To help ensure that all requests get processed, EchoBase queues them up first. If the queue size is greater than 3, it will display this Response Code.&#x20;

This Response Code is informing you of a few things:

1. Your request is being processed. **It is not lost, so there is no need to resubmit** (if you do resubmit, you will get this Response Code again, reflecting your updated queue position).
2. Your queue position. This tells you how many requests are ahead of yours.
3. Approximate wait time. This is a simple calculation of multiplying the average response time of the most recent requests, with the number of requests ahead of yours.

### MON\_CALA

```
Please wait for guild to finish syncing.
```

EchoBase will periodically refresh your guild's data in the background. During this time, you will not be allowed to submit for assignments, since the data has not finished being synced.

### MUSTAFAR

```markup
Could not find matching unit for '<unit-id>': <platoon-coordinates>
```

This should only happen if you load the platoon assigner, I change or remove the unitId for one of your platoon requirements, and then you submit for assignments. Reloading the page should fix the issue. However, if you are getting this error even after reloading the page, please let me know the details.

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### NABOO

```
Ally Code is invalid.
```

Double check to make sure the entire ally code, and nothing else, is included! If you are sure that it is, please let me know and send me your ally code so I can get it working for you. Do not include any dashes.

The ally code should be formatted like this:

```markup
123456789
```

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### RYLOTH

```markup
You must have the <echo-role> role to issue this command.
```

Certain EchoStation commands require a higher level of security to run. This is achieved by requiring that the command issuer must have been given the specified role in the Discord server.

{% content-ref url="/pages/-LOzt-QRQDsuBJ3dD36g" %}
[Echo Roles](/echostation/echo-roles)
{% endcontent-ref %}

### SCARIF

```markup
Missing requirement: <platoon-coordinates> (<number> more)
```

This would happen if you were able to submit platoon assignments before filling out all the requirements first. Simply fill out the specified platoon requirements, and re-submit.

### STARKILLER\_BASE

```
Webhook URL is required.
```

{% content-ref url="/pages/-LCdgpGcmlxTitiG6OPG" %}
[Webhook URL](/settings/webhook-url)
{% endcontent-ref %}

### TAKODANA

```markup
User not registered: <user>
```

{% content-ref url="/pages/-LMNuSPYkmHbC1tOpr5U" %}
[/register](/echostation/player-commands/register)
{% endcontent-ref %}

### TATOOINE

```
Phase must be a value between 1 and 6.
```

Trying to send in an invalid phase number will not work!

### TOYDARIA

```
The API is reporting inconsistent data for this account. Please try again later, or try with someone else's account.
```

This error indicates that an inconsistency was found in two different API calls concerning what should be the same data. The most common scenario for this is when you have changed guilds or left your guild, and one call reports that you are still in your old guild, but another call reports the true information.

Unfortunately, you will have to wait while the data is synced correctly by the API. All you can do is try again later or try to accomplish your task through someone else.

### UMBARA

```markup
User(s) not in your guild: <list-of-users>
```

Certain EchoStation commands require that the users that would be affected by the command must share a guild with you.

### UTAPAU

This error means that the affected Discord server has been unregistered from your guild, or the server is invalid in some unknown way. Refresh your browser and try again. If that does not work, please describe your issue in the support server.

{% content-ref url="/pages/-LCaDCQgoTEF0KcXomj2" %}
[Support](/support)
{% endcontent-ref %}

### YAVIN\_PRIME

```
Webhook Name must be 50 characters or fewer.
```

Gotta set the limit somewhere.

## Platoon Screenshot Responses

### ENDOR

```
The uploaded file must be an image.
```

This message will be returned if you try to send a non-image file.

### JEDHA

```
The uploaded image must be in landscape mode.
```

The screenshot must be taken in landscape mode for it to be read properly.

### YAVIN\_IV

```
The uploaded image must have a height greater than or equal to 640px.
```

Due to image recognition problems caused by low image resolution, please make sure the screenshots that you upload have at least a height of 640px.


# Support

If you could not find your answer in this documentation, please let me know!

## Public Discord Server

Come chat with us, especially if you are needing more help than you could find on this documentation site. We'll be glad to help you!

[Join here!](https://discord.gg/MnkBsyT)

{% embed url="<https://discord.gg/MnkBsyT>" %}


# Donations

The only reason I am able to provide EchoBase for free is because of those who have decided to donate.

If you believe in this product and have benefited from its services, please consider being a part of the community of donors!

## Ways to Donate

### Patreon

{% embed url="<https://www.patreon.com/bePatron?u=9671005&redirect_uri=http%3A%2F%2Fechobaseapp.com%2F&utm_medium=widget>" %}

{% hint style="success" %}
Unlimited scheduled assignments for your guild or alliance (where applicable), automatic data refresh before scheduled assignments are run, and more are available to Patreon patrons!
{% endhint %}

### PayPal

{% embed url="<https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=jsimpso2@harding.edu&lc=US&item_name=Donation+to+EchoBase&no_note=0&cn=&curency_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted>" %}

{% hint style="success" %}
One-time or recurring payments, does not require a PayPal account.
{% endhint %}

### DigitalOcean Referral

EchoBase is hosted on the cloud platform **DigitalOcean**. If you are looking to host something of your own, and you have never signed up with DigitalOcean before, simply use my referral link to sign up! You'll get free DO credit just for using the link, and DO will give me a referral bonus, which will be applied directly to my monthly EchoBase hosting costs. [See referral program details here.](https://www.digitalocean.com/referral-program/)

EchoBase's referral link:

{% embed url="<https://m.do.co/c/6504a1720455>" %}

{% hint style="success" %}
We both get money this way! It's a win-win!
{% endhint %}


# Glossary

Not sure of the terminology used in EchoBase or in these articles?

| **Term**    | **Definition**                                                                                                                                                                                                                                                      |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CM          | Combat Mission; the waves of battle that earn Territory Points in a Territory Battle.                                                                                                                                                                               |
| DM          | Direct Message; a message that is sent directly in a private channel, instead of a public channel.                                                                                                                                                                  |
| DS          | Dark Side; typically used in conjunction with **TB**.                                                                                                                                                                                                               |
| GET         | Guild Event Token; the Guild Event Store currency awarded in Territory Battles, Territory Wars, and upper tiers of the Sith Triumvirate raid.                                                                                                                       |
| LS          | Light Side; typically used in conjunction with **TB**.                                                                                                                                                                                                              |
| P1 - 6      | Phase 1 - 6; referring to the phases of a TB.                                                                                                                                                                                                                       |
| PM          | Private Message; see **DM**                                                                                                                                                                                                                                         |
| SM          | Special Mission; similar to Combat Missions, but with unique rewards, typically Guild Event Tokens or rare shards.                                                                                                                                                  |
| TB          | Territory Battle; the guild event that the Platoon Assigner is written for.                                                                                                                                                                                         |
| Toon        | This refers to an in-game character. See **Unit**                                                                                                                                                                                                                   |
| TP          | Territory Points; the score your guild achieves in each territory of a Territory Battle which earns stars.                                                                                                                                                          |
| TW          | Territory War; the smaller guild vs. guild event that the Defense Assigner is written for.                                                                                                                                                                          |
| Unit        | This refers to an in-game playable entity. **Toons** and **Ships** are the two kinds of Units.                                                                                                                                                                      |
| unitId      | The unique identifier for a **Unit**, created by the game code.                                                                                                                                                                                                     |
| Webhook URL | A webhook URL is a simple way to give a third party the means to post in one of your Discord server's channels. EchoBase uses a webhook to post assignments. [Go here for more info](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks). |


