Mod

NeoBans

Quick rating

NeoBans

No reviews yet

Modern GUI Based Banning System

Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
neobans-1.0.1
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

# NeoBans

A server-side punishment management mod for **Minecraft 1.21.1** running **NeoForge 21.1.x**.

Adds a full suite of ban, mute, kick, and warn commands along with an in-game GUI for staff to issue punishments. All punishment history is stored on the server and persists across restarts. **Players do not need the mod installed to join** — it is only required on the client if staff want to use the GUI.

---

## Features

- Permanent and temporary bans (player and IP)
- Permanent and temporary mutes
- Kick and warn commands
- In-game ban GUI with configurable preset reasons and durations (requires mod on staff client)
- Full punishment history per player
- Server-side ban list browser
- Fully configurable ban disconnect message with placeholder support
- Optional appeal link appended to ban messages
- Data stored as JSON in the world folder — no database required

---

## Requirements

| Requirement | Version |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.x (tested on 21.1.222) |
| Java | 21 |

The mod is **server-side only**. Players without NeoBans can connect normally. Staff who want the `/ban` GUI need the mod on their client as well.

---

## Installation

1. Download the NeoBans `.jar` file.
2. Place it in your server's `mods/` folder.
3. Start the server once to generate the config file.
4. Edit `world/serverconfig/neobans-server.toml` to your liking (see [Configuration](#configuration) below).
5. Restart the server (or use `/reload` — the config will reload automatically).

For staff who want the GUI, they also place the same `.jar` in their client `mods/` folder.

---

## Commands

All commands require operator permission level 2 or higher.

### Ban

| Command | Description |
|---|---|
| `/ban` | Opens the player-select GUI (requires mod on client) |
| `/ban <player> [reason]` | Permanently bans a player |
| `/ban-ip <player\|ip> [reason]` | Permanently IP-bans a player or raw IP address |
| `/tempban <player> <duration> [reason]` | Temporarily bans a player |
| `/tempban-ip <player\|ip> <duration> [reason]` | Temporarily IP-bans a player or raw IP |
| `/unban <player>` | Pardons a player's active ban |

### Mute

| Command | Description |
|---|---|
| `/mute <player> [reason]` | Permanently mutes a player |
| `/tempmute <player> <duration> [reason]` | Temporarily mutes a player |
| `/unmute <player>` | Removes a player's active mute |

### Other

| Command | Description |
|---|---|
| `/kick <player> [reason]` | Kicks a player from the server |
| `/warn <player> <reason>` | Issues a formal warning |
| `/history <player>` | Opens the punishment history GUI for a player |
| `/banlist` | Opens the active ban list GUI |

### Duration format

Used by `/tempban`, `/tempban-ip`, and `/tempmute`.

| Suffix | Meaning |
|---|---|
| `m` | Minutes — e.g. `30m` |
| `h` | Hours — e.g. `2h` |
| `d` | Days — e.g. `7d` |
| `w` | Weeks — e.g. `2w` |
| `M` | Months — e.g. `1M` |
| `y` | Years — e.g. `1y` |
| `permanent` | No expiry |

---

## Configuration

The config file is generated at:

```
<world folder>/serverconfig/neobans-server.toml
```

### Options

#### `banReasons`

List of preset reasons shown in the `/ban` GUI. Editable without restarting — changes take effect the next time a staff member opens the GUI.

```toml
banReasons = [
"Griefing",
"Hacking / Cheating",
"Harassment",
"Inappropriate Content",
"Spam",
"Exploiting",
"Racism / Hate Speech",
"Other"
]
```

#### `appealLink`

URL shown at the bottom of every ban disconnect message. Set to `""` to hide the appeal line entirely.

```toml
appealLink = "https://your-server.com/appeal"
```

#### `banMessage`

The full disconnect message shown to a banned player. Supports Minecraft colour codes (`§` or `&`). Use `\n` for newlines.

```toml
banMessage = "§c§lYou are banned from this server!\n\n§fReason: §e{reason}\n§fBanned by: §e{banned_by}\n§fExpires: §e{expires}\n\n§7Punishment ID: {id}\n\n§eAppeal your ban: §b{appeal_link}"
```

**Available placeholders:**

| Placeholder | Value |
|---|---|
| `{reason}` | The ban reason |
| `{banned_by}` | The staff member who issued the ban |
| `{expires}` | `Permanent` or a human-readable time remaining (e.g. `3d 2h 15m`) |
| `{id}` | The internal punishment ID |
| `{appeal_link}` | The appeal URL — the **entire line** is removed if `appealLink` is empty |

---

## Data Storage

Punishments are saved to:

```
<world folder>/neobans/punishments.json
```

This file is written on every punishment action and on server shutdown. It is safe to back up while the server is running.

---

## Permissions

NeoBans uses NeoForge's built-in permission API. Each command has its own permission node so you can grant or deny them individually using a permissions mod such as [LuckPerms](https://luckperms.net/).

**If no permissions mod is installed**, every node falls back to vanilla operator level 2 — the behaviour is identical to before.

### Permission nodes

| Node | Commands |
|---|---|
| `neobans.ban` | `/ban`, `/ban-ip` |
| `neobans.tempban` | `/tempban`, `/tempban-ip` |
| `neobans.unban` | `/unban`, `/unban-ip` |
| `neobans.mute` | `/mute` |
| `neobans.tempmute` | `/tempmute` |
| `neobans.unmute` | `/unmute` |
| `neobans.kick` | `/kick` |
| `neobans.warn` | `/warn` |
| `neobans.history` | `/history` |
| `neobans.banlist` | `/banlist` |

Console always bypasses permission checks and has access to all commands.

### LuckPerms example

```bash
# Give a group access to kick and warn only
/lp group moderator permission set neobans.kick true
/lp group moderator permission set neobans.warn true

# Give a group full access
/lp group admin permission set neobans.* true
```

---

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync