Welcome to ElectionSystem
ElectionSystem is a universal, multi-method voting system for Roblox. It supports 14 different voting algorithms, comprehensive eligibility checking, alt detection, and real-time result calculation.
Start Here
First time? Follow these steps in order:
- Getting Started — Open the place file and verify it works (5 minutes)
- DataStore Setup — Enable vote persistence (critical!)
- Settings Configuration — Add candidates and configure your election (optional Discord webhook for staff alerts)
- Custom UI Implementation — Build a custom voting interface
What Can It Do?
- 14 voting methods: FPTP, IRV, Approval, Score, STAR, Borda, Condorcet, STV, PartyListPR, MMP, Parallel, TwoRound, Cumulative, Sortition
- Eligibility rules: Group membership, account age, ban lists
- Alt detection: Prevent vote fraud with configurable heuristics
- Multi-seat elections: Districts, seat allocation, coalition support
- Real-time results: Live vote counts and result calculation
- Player persistence: Votes survive server restarts via DataStore
- Full customization: Voting method, candidates, UI, rules all configurable
Key Concepts
The Three Parts of ElectionSystem
- Settings (Your Config) — Customize candidates, voting method, times, eligibility (optional
discordblock for admin-only webhook posts; never sent to clients) - ElectionManager (Core System) — Records votes, calculates results, manages state
- Your UI (What Players See) — Any GUI you build that connects to the system via RemoteFunction
The Voting Flow
Player joins game
↓
System loads their previous vote from storage
↓
[Voting Phase] Player selects candidates via your UI
↓
Server validates eligibility, ballot format, and detects alts
↓
Vote saved to DataStore
↓
All players notified
↓
[Closed Phase] Admin/system calculates results
↓
Results sent to all clients
Quick Navigation
- Setting up: Start with Getting Started
- Configuring elections: Go to Settings Configuration
- Building UI: See Custom UI Implementation
- API reference: Check the auto-generated API documentation
- Troubleshooting: Each guide has a troubleshooting section
Common Questions
Do I need Rojo?
No. Download the .rbxl place file and open it directly in Roblox Studio.
How do I save votes? Enable DataStore (it's critical!). See DataStore Setup.
Can I use my own voting booth UI? Yes. See Custom UI Implementation for how to connect your UI to the system.
Which voting method should I use? Start with FPTP (first-past-the-post, most votes wins) or IRV (ranked choice). See Settings Configuration for details.
How do I prevent cheating? Use alt detection (detects rapid voting) and eligibility rules (group membership, account age, bans).
Ready to begin? → Getting Started