# Discourse Topic Voting

**URL:** https://meta.discourse.org/t/discourse-topic-voting/40121
**Category:** Plugin
**Tags:** official, topic-voting, included-in-core
**Created:** [February 24, 2016, 8:59pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121 "2016-02-24T20:59:09Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [February 24, 2016, 8:59pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/1 "2016-02-24T20:59:09Z")

</div>

| | | |
| --- | --- | --- |
| :discourse2: | **Summary** | **Discourse Topic Voting** lets community members vote on topics in designated categories. |
| 📖 | **Install Guide** | **This plugin is bundled with Discourse core**. There is no need to install the plugin separately. |

> [@](#):
>
> :discourse2: As this is an #official plugin maintained by the Discourse team, #Support, #Contribute > Bug, #Contribute > UX, and #Contribute > Feature requests can be made in the respective categories here on Meta, and tagged with the appropriate plugin tag. Click on a link below to get one started. 👍
> 
> [❓ **Support**](https://meta.discourse.org/new-topic?category_id=6&body=%3E%20Before%20asking,%20did%20you%20search%20first%3F%20Press%20%F0%9F%94%8D%20at%20the%20upper%20right%20to%20search.&tags=topic-voting "Ask for support on configuring and using Discourse Voting") [🐛 **Bug**](https://meta.discourse.org/new-topic?category_id=1&tags=topic-voting "A bug report means something is broken, preventing normal/typical use of the plugin") [👀 **UX**](https://meta.discourse.org/new-topic?category_id=9&tags=topic-voting "Discussion about the user interface of Discourse Voting, and how features are presented (including language and UI elements)") [💡 **Feature**](https://meta.discourse.org/new-topic?category_id=2&tags=topic-voting "Discussion about how existing Discourse Voting features can be improved or enhanced, and how proposed new features could work")

While **Discourse Topic Voting** can be used for a variety of use cases, this documentation is focused on the primary use case of an ideas or feature request category.

> :discourse2: **Note:** Discourse Topic Voting is available on the **Business** or **Enterprise** plans.

## Setting up an ideas category

When creating a new category, select the **ideas** type to turn on Discourse Topic Voting for that category.

 ![Select the ideas category type to leverage Discourse Topic Voting.](https://global.discourse-cdn.com/meta/original/4X/a/1/2/a12c38d90eb1f7bea7ff2ed306a090f47b92f234.png)

The **Category name** and **Style** fields will be present with sensible defaults, which you can overwrite if needed.

 ![The General tab shows basic settings about the category.](https://global.discourse-cdn.com/meta/original/4X/3/4/0/340438b06c64181446e4527f999add89d1dc275b.png)

> **Note:** When you are editing an existing category, the **Category type** field will let you add or remove category types. Category types can be combined so you can use features like voting and marketing answers as solutions (via [Discourse Solved](https://meta.discourse.org/t/discourse-solved/30155)) together.
> 
> ![The category type selector is shown when editing an existing category.](https://global.discourse-cdn.com/meta/original/4X/2/d/7/2d763a70e5d8cb745dc0e4c06cbe492d50b1a21e.png)

On the **Ideas** tab, you can adjust some of the default settings for this and any other ideas categories in your community.

 ![The Ideas tab shows the settings related to the ideas category type.](https://global.discourse-cdn.com/meta/original/4X/5/9/3/5936154c1e207c3f87d865ed96dc4a5d830891c7.png)

- **Show who voted** : Allow users to see who voted for a topic.
- **Show votes on profile** : Allow users to see their own votes in their activity feed. This is most important when votes are limited.
- **Limit member votes** : When enabled, members can only cast a certain number of votes based on their [trust level](https://meta.discourse.org/t/discourse-trust-levels-a-detailed-explanation/396792).

## Voting for a topic

Members can vote for topics in ideas categories by interacting with the counter in the topic header.

 ![The vote button and count in the topic header.](https://global.discourse-cdn.com/meta/original/4X/7/b/3/7b364e681ffe87701d0801074b743169b1260bc8.png)

Inside an ideas category, members can click the **Votes** top menu item to sort ideas by their vote count. The **My Votes** top menu item filters to only show topics they’ve voted for. In addition to the counter inside a topic, you can also see votes on the topic card.

 ![The "Votes" and "My Votes" top menu items allow members to sort and filter the topic list by votes. Votes are shown on the topic card.](https://global.discourse-cdn.com/meta/original/4X/6/5/4/65433d4bfcb6e6172a0fb2ecd89b6b603798c48f.png)

Here are the views a user will see before and after voting in a topic:

 ![Vote count before voting.](https://global.discourse-cdn.com/meta/original/4X/c/c/5/cc5956471272d747115cbc94d07b24b5b1232445.png) ![Vote count after voting.](https://global.discourse-cdn.com/meta/original/4X/3/e/9/3e942cb92de8e766f6e984b6d931f95b5e6113ea.png)

When `show votes on profile` is enabled, there is also a section in the user’s profile page that displays their active votes:

 ![When "Show votes on profile" is enabled, members can view their own votes in the profile.](https://global.discourse-cdn.com/meta/original/4X/1/4/6/146fd39f45dd857b4e1b8d5bc774c824b14e6c06.png)

> **Note:** In ideas categories, Likes are automatically deactivated. To use both likes and votes at the same time, see: [Show both like and vote button on topics](https://meta.discourse.org/t/show-both-like-and-vote-button-on-topics/101252/)

### Limiting votes

When **Limit member votes** is enabled, members only have a certain number of available votes. When a vote is cast, that is called an “active vote”. Vote limits are meant to encourage thoughtful voting on the topics that matter most.

- The vote limit is determined by trust level; see the above section for more details.
- Each user can cast only one vote per topic.
- Votes are locked when a topic is closed or archived, but the votes are no longer considered active. The members who cast these votes will have their one vote from that topic restored to their pool of available votes.
  - If a topic is re-opened or unarchived, the votes are reclaimed and applied back to the users’ Active Vote count.
  - If a topic reclaims the votes of a user, causing them to exceed their Active Vote limit, they simply need to wait until topics are closed or archived to allow them to vote again.

- If an entire topic (Topic A) is merged into another Topic-Voting topic (Topic B), all the the following takes place:
  1. Unique votes from Topic A are added to Topic B.
  2. Duplicated votes (the same user voted in both topics) from Topic A will **not** be added to Topic B. Instead, the vote from Topic A will be restored to the user’s pool of available votes.
  3. Topic A’s vote count is set to zero and the topic is closed so that no further voting can take place in Topic A.

## Settings

| Name | Description |
| --- | --- |
| `topic voting enabled` | Allow users to vote on topics? |
| `topic voting enable vote limits` | Limit the number of votes per user based on trust level. When disabled, members can vote on as many topics as they want. |
| `topic voting show who voted` | Allow users to see who voted? |
| `topic voting show votes on profile` | Allow users to see their votes in their activity feed? |
| `topic voting alert votes left` | Alert user when this many votes are left |
| `topic voting tl0 vote limit` | How many active votes are TL0 users allowed? |
| `topic voting tl1 vote limit` | How many active votes are TL1 users allowed? |
| `topic voting tl2 vote limit` | How many active votes are TL2 users allowed? |
| `topic voting tl3 vote limit` | How many active votes are TL3 users allowed? |
| `topic voting tl4 vote limit` | How many active votes are TL4 users allowed? |

> **Note:** The `topic voting alert votes left` and various `topic voting TLN vote limit` settings only apply when `topic voting enable vote limits` is enabled.

## Topic Voting badges

> ℹ These badges are disabled by default. You can enable them in the **Badges** area in the admin settings.

| Name | Description | Long Description | Type | Grouping |
| --- | --- | --- | --- | --- |
| **Daydreamer** | Receive a vote on your topic | This badge is granted for receiving a vote on one of your topics. ✅ Nice idea. 👍 | 🥉 | Community |
| **Brainstormer** | Receive 5 votes on your topic | This badge is granted for receiving 5 votes on one of your topics. ✅ Your topic is getting traction. | 🥈 | Community |
| **Innovator** | Receive 15 votes on your topic | This badge is granted for receiving 15 votes on one of your topics. ✅ So good it can’t be ignored. | 🥈 | Community |
| **Visionary** | Receive 25 votes on your topic | This badge is granted for receiving 25 votes on one of your topics. ✅ Give the people what they want! 👏 | 🥇 | Community |

## [Data Explorer](https://meta.discourse.org/t/32566?silent=true) queries

List people who voted for a topic along with their email addresses:

```sql
--[params]
-- int :topic_id

SELECT
tvv.user_id,
email
FROM topic_voting_votes tvv
JOIN user_emails ue ON ue.user_id = tvv.user_id
WHERE topic_id = :topic_id
AND ue.primary = true

```

More explorer queries can be found in #Community Building > Data & reporting - [Topics tagged topic-voting](https://meta.discourse.org/tags/c/community-building/data-reporting/148/topic-voting/231)

> Last edited by @lindsey 2026-06-17T18:17:18Z
> 
> > **Check document**
> >
> > Perform check on document:

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [November 2, 2022, 1:33pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/270 "2022-11-02T13:33:52Z")

</div>

As part of the renaming for the [Discourse Post Voting](https://meta.discourse.org/t/discourse-post-voting/227808) plugin we have also now renamed this one to complement it. 🥳 🙂

So I hereby officially welcome you all to the **Discourse Topic Voting** plugin. 🎉🎈🍾

---

<div class="post-metadata">

### Author: ![haydenjames](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/haydenjames/32/255678_2.png) [@haydenjames](https://meta.discourse.org/u/haydenjames)
#### Post date: [November 30, 2023, 12:58pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/283 "2023-11-30T12:58:13Z")

</div>

Really like this plugin. Using it for a category reserved for blog articles. When entering a category with this plugin set to enabled, would it be possible to sort the topic list by # of votes descending?

thanks again!

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [December 8, 2023, 12:50pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/284 "2023-12-08T12:50:33Z")

</div>

2 posts were split to a new topic: [Votes not being returned on topic close](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963)

---

<div class="post-metadata">

### Author: ![jidanni](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jidanni/32/291938_2.png) [@jidanni](https://meta.discourse.org/u/jidanni)
#### Post date: [April 7, 2024, 6:53am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/285 "2024-04-07T06:53:59Z")

</div>

I notice in the animation on

> **[Topic Voting](https://www.discourse.org/plugins/topic-voting.html)**
>
> Let your community vote on their favorite topics.

the user only finds out that

- he in fact has a limited number of votes
- and he now only has xx votes left

after he clicks to vote.

Perhaps he should learn all this in the mouseover for the vote button, before he clicks.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [May 3, 2024, 11:46am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/289 "2024-05-03T11:46:31Z")

</div>

2 posts were split to a new topic: [‘See who voted’ display issue](https://meta.discourse.org/t/see-who-voted-display-issue/306641)

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [July 18, 2024, 2:45am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/290 "2024-07-18T02:45:56Z")

</div>

> [@JammyDodger](#):
>
> I hereby officially welcome you all to the **Discourse Topic Voting** plugin

To make it more official, the database tables of this plugin are now migrated to `topic_voting_` to match the ones in `post_voting_` as well, along with site settings .

When site owners update this plugin, existing [data explorer](https://meta.discourse.org/t/32566?silent=true) queries that use the old tables will automatically update to use the new table names.

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [December 19, 2024, 10:24pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/292 "2024-12-19T22:24:34Z")

</div>

How can I re-enable Discourse Reactions on the first post of a Voting Topic?

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [December 19, 2024, 10:35pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/293 "2024-12-19T22:35:26Z")

</div>

Did you try the tip to re-enable likes?

> [@Discourse](#):
>
> ### EXTRAS
> 
> > ℹ In the categories where the Voting plugin is activated, Likes are automatically deactivated. Some sites may want to use both functions at the same time to like replies, see [how to re-enable Likes](https://meta.discourse.org/t/show-both-like-and-vote-button-on-topics/101252/2).

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [December 19, 2024, 11:09pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/294 "2024-12-19T23:09:28Z")

</div>

Ah sorry I did do this but thought it wasn’t working until I realised I was looking at my own posts so I shouldn’t expect to see a like button 😆

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [January 6, 2025, 8:09am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/295 "2025-01-06T08:09:25Z")

</div>

Is there any way to add the Voting Button directly into the topic list?

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [January 6, 2025, 9:15am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/296 "2025-01-06T09:15:28Z")

</div>

I think this is what you’re looking for:

> [@Alternative Voting Category Style](https://meta.discourse.org/t/alternative-voting-category-style/101532):
>
> This theme component offers alternative styling for any specified categories that make use of the Discourse Voting plugin. Installation [Repository Link](https://github.com/discourse/discourse-alternative-voting-category-style) https://github.com/discourse/discourse-alternative-voting-category-style If you are unfamiliar with theme components and how to install them, check out the [theme installation guide](https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682). And if you’d like to learn more about Discourse themes, take a look at [this guide](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966). Preview The overall idea is based off of [this mockup](https://meta.discourse.org/t/unique-index-style-for-voting/59499/6) created by @…

---

<div class="post-metadata">

### Author: ![unknown\_error](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@unknown\_error](https://meta.discourse.org/u/unknown_error)
#### Post date: [February 6, 2025, 7:56pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/297 "2025-02-06T19:56:09Z")

</div>

Is there a way to automatically have the topic’s creator cast the first vote for their post? We have a bunch of users that create these topics but forget to vote on it, and it’s a small hassle having to remind them every time. Just wondering 🙂

Thanks for the plugin!

---

<div class="post-metadata">

### Author: ![Frederik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frederik/32/187063_2.png) [@Frederik](https://meta.discourse.org/u/Frederik)
#### Post date: [March 17, 2025, 10:00am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/298 "2025-03-17T10:00:53Z")

</div>

> [@jidanni](#):
>
> the user only finds out that
> 
> - he in fact has a limited number of votes
> - and he now only has xx votes left
> 
> after he clicks to vote.
> 
> Perhaps he should learn all this in the mouseover for the vote button, before he clicks.

I second this. Without users knowing that votes are limited they can’t adjust their behavior, so the original objective of encouraging users to vote thoughtfully is not effectively achieved.

---

<div class="post-metadata">

### Author: ![tyler.lamparter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tyler.lamparter/32/485862_2.png) [@tyler.lamparter](https://meta.discourse.org/u/tyler.lamparter)
#### Post date: [May 12, 2025, 11:48pm UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/299 "2025-05-12T23:48:05Z")

</div>

Is it possible to disable topic voting per topic in a category? We want most topics in the category to be votable, but sometimes we want to post non-v otable topics. I see there is a property on topics for can\_vote, but I can’t seem to find anywhere in the UI or any API call to update this. It seems possible since the “About the XYZ category” topic that is initially made is not votable.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [May 13, 2025, 12:05am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/300 "2025-05-13T00:05:25Z")

</div>

@tyler.lamparter Perhaps this setting in the category settings?

> [@Discourse](#):
>
> To enable it, edit any category, look on the settings tab for the “Allow users to vote on topics in this category” checkbox:
> 
> ![](https://global.discourse-cdn.com/meta/original/3X/6/2/625d84186ea85ff4aa0d3ab9b2088ea57f5cead0.png)

---

<div class="post-metadata">

### Author: ![tyler.lamparter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tyler.lamparter/32/485862_2.png) [@tyler.lamparter](https://meta.discourse.org/u/tyler.lamparter)
#### Post date: [May 13, 2025, 1:01am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/301 "2025-05-13T01:01:26Z")

</div>

@NateDhaliwal we have that enabled, but I’m wondering if some topics put in that category can have it disabled. So 99% of topics put in our category should have topic voting, but a select few shouldn’t.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [May 13, 2025, 1:31am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/302 "2025-05-13T01:31:55Z")

</div>

Right. I don’t think that’s possible. You may be able to hide it with CSS, but that would be difficult since these changes would be site-wide, not per topic…

---

<div class="post-metadata">

### Author: ![tyler.lamparter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tyler.lamparter/32/485862_2.png) [@tyler.lamparter](https://meta.discourse.org/u/tyler.lamparter)
#### Post date: [May 13, 2025, 1:51am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/303 "2025-05-13T01:51:30Z")

</div>

The reason it seems like it’s possible is there is a `can_vote` flag on each topic and it is already driving what the UI shows. I just don’t see any way to update this flag via api or set it via UI.

The “About this category topic” that gets made whenever a new category is created:

 ![A screenshot displaying a Discourse API interface showing a GET request to retrieve a single topic's data with specific script response fields. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/0/a/4/0a41586d7a1d2bdf6d305b3f5ac0f6f886d4bf87.png)

A topic that one of our users posted in the category:

 ![The image shows an API test result with JSON data displaying various emotional reactions and other metadata for a specified ID. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/3/d/3/3d33b2e7948541d65ca95247c76880bb38b4d680.png)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [May 13, 2025, 7:10am UTC](https://meta.discourse.org/t/discourse-topic-voting/40121/304 "2025-05-13T07:10:14Z")

</div>

For the #Contribute > Feature category here the voting options and info are hidden with a little CSS based on tag for #feedback topics.

[Next page](https://meta.discourse.org/t/discourse-topic-voting/40121.md?page=2)
