Weedie’s Industrial Fantasy

A Tech/Magic/RPG pack about exploration, crafting, and skill progression.
The tech mods:Create, Applied Energistics 2, Modern Industrialization, EnderIO
Magic in this pack revolves around Iron’s Spells and Scriptor Magicae.

RPG mechanics and content are provided by Project MMO, Advent of Ascension 3, Chococraft, and Divine RPG.

Performance Mods include Sodium and with the addition of Iris for shader compatibility as well as Noisium and FerriteCore.

Productive Bees and Trees will provide fun ways to get materials as well as creating hybrid trees.

Structure gen is provided by Explorify, Structory, and Structory: Towers.

Biomes and world gen have been overhauled using Larion with William Wythers Overhauled Overworld and Oh The Biomes We’ve Gone
Other Mods of note include Evilcraft, Ice And Fire Community Edition, Macaws Mods, Computercraft Retweaked, Luminous, Aether, and Necessities.

More images coming to gallery soon!

SERVER WARNING: DON’T INCLUDE anything Sodium or Iris Related in your server mods folder as these mods will crash a dedicated server! ToadLib and SmithingTemplateViewer are in this list as well as Entity Texture Features and Entity Model Features.

Webstone

Webstone

Remote control your Redstone contraptions using WebSockets.

## Background
This mod is inspired by a YouTube video by Fundy, in which he briefly shows a custom Redstone block that can be controlled via a browser. This part of the video never got released as a standalone mod, so this is where Webstone comes in.

## Usage
The mod opens up a WebSocket server on port 4321, which then lets you connect with any WebSocket client (like this one – or the hosted client at http://webstone.festival.tf) to toggle registered blocks or change their output signal strength.
You can find the Webstone Remote Block under the “Redstone Blocks” tab in Creative Mode (no Survival recipe yet). To register it, right-click it with an empty hand (if successful, you’ll see a message above your hotbar). To toggle it locally, right-click the block while sneaking.

### Crafting Recipe

Starting with Webstone 1.0.1, the Webstone Remote Block can be crafted outside of Creative:

![crafting-webstone-remote-block](https://github.com/festivaldev/webstone/raw/forge-1.20.1/.github/assets/crafting-webstone-remote-block.png)

## Configuration Options

Webstone has its own configuration file, located at `.minecraft/config/webstone-config.toml`. You can set the following options:

| Key | Default value | Description |
| — | — | — |
| `Passphrase` | `””` | Passphrase to allow only authorized users. |
| `WebSocketPort` | `4321` | Port used by the Webstone WebSocket Server. |
| `SecureWebSocket` | `false` | Specifies if the WebSocket should use a secure connection. |
| `CertificateFilename` | `cert.pem` | Filename of the certificate public key inside `.minecraft/data`. |
| `CertificateKeyFilename` | `key.pem` | Filename of the certificate private key inside `.minecraft/data`. |
| `CertificateKeyPass` | `””` | Passphrase used for the private key. |

## API Reference

Server → Client

If the WebSocket server needs a passphrase to connect to, clients need to supply it encoded as a hex string in the `Sec-WebSocket-Protocol` header. Using JavaScript, you can add it to an array as a second parameter when creating a WebSocket instance, following the connection URL:

“`js
const socket = new WebSocket(‘ws://:4321′, [‘‘]);
“`

When connecting to the WebSocket server, the connecting client receives a list of currently registered blocks (including their display name, the current powered state, the output signal strength and the assigned group’s id, if any), as well as block groups.

“`jsonc
{
“type”: “block_list”,
“data”: [
{
“blockId”: “00000000-0000-0000-0000-000000000000”,
“name”: “Example”,
“power”: 15,
“powered”: false,
“groupId”: “00000000-0000-0000-0000-000000000000”
},
// …
]
}
“`

“`jsonc
{
“type”: “block_groups”,
“data”: [
{
“groupId”: “00000000-0000-0000-0000-000000000000”,
“name”: “Example Group”,
“blockIds”: [
//…
]
},
// …
]
}
“`

If any block or group is updated, their data will broadcast to every connected client.

“`jsonc
{
“type”: “block_updated”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“name”: “Example”,
“power”: 15,
“powered”: false,
“groupId”: “00000000-0000-0000-0000-000000000000”
}
}
“`

“`jsonc
{
“type”: “group_updated”,
“data”:
“groupId”: “00000000-0000-0000-0000-000000000000”,
“name”: “Example Group”,
“blockIds”: [
//…
]
}
}
“`

Client → Server

### Block Management
#### Set a block’s powered state:

“`jsonc
{
“type”: “block_state”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“powered”: false // Can be either true or false
}
}
“`

#### Set a block’s output signal strength:

“`jsonc
{
“type”: “block_power”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“power”: 7 // Can be anything between 0 and 15
}
}
“`

#### Set the display name of a block:

“`jsonc
{
“type”: “rename_block”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“name”: “My Example Block”
}
}
“`

#### Delete a block from the Web UI:

“`jsonc
{
“type”: “unregister_block”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”
}
}
“`

#### Add or remove a block to/from a group:

“`jsonc
{
“type”: “change_group”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“groupId”: “00000000-0000-0000-0000-000000000000”
}
}
“`

#### Move a block to a different position in a group:

This only affects a block if it has been assigned to a group.

“`jsonc
{
“type”: “move_block”,
“data”: {
“blockId”: “00000000-0000-0000-0000-000000000000”,
“newIndex”: “2”
}
}
“`

### Group Management
#### Create a new group:

“`jsonc
{
“type”: “create_group”,
“data”: {
“name”: “My awesome group”
}
}
“`

#### Rename a group:

“`jsonc
{
“type”: “create_group”,
“data”: {
“groupId”: “00000000-0000-0000-0000-000000000000”,
“name”: “My awesome (renamed) group”
}
}
“`

#### Delete a group:

“`jsonc
{
“type”: “delete_group”,
“data”: {
“groupId”: “00000000-0000-0000-0000-000000000000”
}
}
“`

#### Move a group to a new position in the list of all groups:

“`jsonc
{
“type”: “move_group”,
“data”: {
“groupId”: “00000000-0000-0000-0000-000000000000”,
“newIndex”: 2
}
}
“`

## Security

In Webstone 1.0.2, two security options have been added: an optional passphrase required to connect to the WebSocket server, as well as support for Secure WebSockets using SSL certificates.

### Passphrase

In order to protect your server from unauthorized access, you can add an optional passphrase that clients need to submit before connecting to the WebSocket Server. This passphrase needs to be hashed using Bcrypt, so you don’t have to store your passphrase in plain text.

To generate a Bcrypt hash, you can use `mkpasswd` on Debian-based systems (available in the `whois` package):

“`
$ mkpasswd -m bcrypt
$2b$05$aHZ8W4AL3o.GnXN5ocSWXumD0Qlu0fU5jLGseYdLzbDW5N1d21Poa
“`

The result then needs to be added to the configuration using the `Passphrase` key.

As described in the API Reference, connecting to the WebSocket server then needs the `Sec-WebSocket-Protocol` header to be set client-side to the hex-encoded passphrase in order for the connection to not be rejected.

### Secure WebSocket using TLS

By default, the traffic between the WebSocket server and clients is unencrypted. To encrypt the traffic, you’ll need a domain name and a SSL certificate for that domain specifically, including the private and the public key. Both keys need to be stored in `.minecraft/data` as `cert.pem` (public key) and `key.pem` (private key) respectively. If the private key requires its own passphrase, you can set the `CertificateKeyPass` key in the config.

To enable or disable Secure WebSocket, set the `SecureWebSocket` key to either `true` or `false`.

## Support

Currently, only Forge is supported. Feel free to port this over to any other mod loader you like, as long as you clearly state this project as the original one.

The mod has been tested on Minecraft 1.20.1, but should also work on newer versions. It also may or may not work on older versions of Minecraft.

## Credits
Fundy – Original idea, textures (probably)
Kaupenjoe – Creating a tutorial series that made this mod possible in the first place

WebsocketServer

# WebSocketServer
**This is a Plugin/Mod that starts a Websocket Server that provides Data about the Server.**
## Implemented Features
– Player Positions
## Planned Features
– Fabric/Quilt Support
– Players
– Inventories
– Health
– Mapping
– Custom Markers
– Areas (Factions, Spawn regions etc.)
– If you have an idea for something you want to see in this, please submit an Issue on Github.

WebPanel

# WebPanel
A Minecraft 1.21.4 PaperMC/Spigot Plugin that creates a WebPanel.

This plugin allows you to modify your server via the web, including adding, removing, and downloading files, as well as managing the console.

## Early Access
This plugin is still in early access and may contain bugs or insecurities.

Features may also be subject to change.

## Features
These are the current features of this WebPanel plugin.

### WebPanel
– Manage the server console
– Stop the server
– Upload files to the server
– Download files from the server
– Delete files or directories
– Create new folders

### Commands
There are no commands yet.

### Events
There are no events yet.

### Planned
To see what features are currently planned please check out the WebPanel GitHub project board

## Installation
1. Download the plugin jar file.
2. Place the jar file in the `plugins` folder of your PaperMC/Spigot server.
3. Restart the server to load the plugin.

## Usage
1. Add your IP address to the `allowedIPs` list in the plugins `config.yml` file.
2. Restart the server to apply the changes. (Later there will be a command)
3. Access the panel via `http://:/` in your browser.

## Endpoints
These endpoints are currently used by the panel. They may not yet be final and may be subject to change.

| Endpoint | URL | Method | Headers | Parameters | Response |
|——————–|———————|——–|————————————————————————————–|———————-|——————————————————————————————————————————————————————————————————————————————————————————–|
| Get Files | `/getFiles` | GET | `Content-Type: application/x-www-form-urlencoded` | `path` | `200 OK`: File list retrieved successfully
`400 Bad Request`: Missing path
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to retrieve file list |
| Upload File | `/uploadFile` | POST | `Authorization: Bearer `, `Content-Type: multipart/form-data` | `path`, `folderName` | `200 OK`: File uploaded successfully
`400 Bad Request`: File not found in request body
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to save file |
| Delete File | `/deleteFile` | POST | `Authorization: Bearer `, `Content-Type: application/x-www-form-urlencoded` | `path` | `200 OK`: File or directory deleted successfully
`400 Bad Request`: Missing file path
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`404 Not Found`: File not found
`500 Internal Server Error`: Failed to delete file or directory |
| Create Folder | `/createFolder` | POST | `Authorization: Bearer `, `Content-Type: application/x-www-form-urlencoded` | `path`, `folderName` | `200 OK`: Folder created successfully
`400 Bad Request`: Missing path or folder name
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to create folder |
| Download File | `/downloadFile` | GET | `”Authorization”: Bearer ` | `path` | `200 OK`: File downloaded successfully
`400 Bad Request`: Missing file path
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`404 Not Found`: File not found
`500 Internal Server Error`: Failed to download file |
| Send to Console | `/sendToConsole` | POST | `Authorization: Bearer `, `Content-Type: application/x-www-form-urlencoded` | `command` | `200 OK`: Command sent successfully
`400 Bad Request`: Missing command
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to send command |
| Get Console Output | `/getConsoleOutput` | GET | | | `200 OK`: Console output retrieved successfully
`500 Internal Server Error`: Failed to retrieve console output |
| Get Players | `/getPlayers` | GET | | | `200 OK`: Player list retrieved successfully
`500 Internal Server Error`: Failed to retrieve player list |
| Stop Server | `/stopServer` | POST | `Authorization: Bearer ` | | `200 OK`: Server stopped successfully
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to stop server |
| Get API Key | `/getApiKey` | GET | `Authorization: IP Based (Config)` | | `200 OK`: API Key retrieved successfully
`401 Unauthorized`: Missing or invalid API Key
`403 Forbidden`: Forbidden
`500 Internal Server Error`: Failed to retrieve API Key |

## Security
**Security may be subject to change. This is due the user inconvenience of IP based security.**
– API Key authentication is used to secure the endpoints. For now only permitted IPs in the plugins config.yml can access the `/getApiKey` endpoint.
– IP address validation is performed to ensure requests are from authorized sources.

## License
This project currently has no license yet.
For now all rights are reserved.
You may however suggest changes via PRs

WebLinker

# 🌐 WebLinker – Connect your Minecraft account to the web!

**WebLinker** is a lightweight and powerful plugin that allows players to link their Minecraft accounts with external web services through secure and unique URLs. Ideal for servers that use **Discord verification**, **web panels**, or **custom APIs**.

## 🚀 Key Features:
– 🔗 Generate unique codes for each player to verify their account.
– 🛡️ Secure and customizable verification system.
– 🧩 Optional integration with LuckPerms to assign ranks automatically.
– 🔌 Supports database interactions.
– ⚙️ Easy to configure and developer-friendly.

## 🛠️ Use cases:
– Link Minecraft accounts to Discord, forums, or website profiles.
– Automatically assign ranks after successful verification.
– Build your own account linking system using WebLinker as a backend.

## 📦 Requirements:
– Spigot or Paper server **1.21+**
– *(Optional)* LuckPerms for permission management

## ⌨️ Commands:
– `/link` – Generates a unique link for the player
– `/weblinker reload` – Reloads the config

Weblink (IcedSpear Addon)

# WebLink (IcedSpear Addon)

**Secure website integration for your Minecraft server.**

WebLink is an official addon for IcedSpear that bridges the gap between your Minecraft server and your website. It enables secure account linking, real-time data fetching, and remote command execution through a built-in webhook API.

## ✨ Features

* **🔗 Secure Account Linking**
Allow players to link their Minecraft account to your website using a secure, temporary 6-digit code. Perfect for syncing ranks, stats, and forum profiles.

* **📡 Webhook API**
A built-in HTTP server exposes endpoints for your website to query player data, check online status, and fetch party/friend information in real-time.

* **🎮 Remote Control**
Execute console commands remotely via secure webhooks, enabling powerful integrations like web-based administration tools.

* **💾 SQLite Storage**
Fast, local storage for link data. No complex MySQL setup required—it just works out of the box.

## 🚀 Installation

1. **Prerequisite**: Ensure you have IcedSpear installed.
2. Download `WebLink.jar`.
3. Place it in your server’s `plugins/` folder.
4. Restart the server.
5. Configure the `webhook-port` and `cors-origin` in `plugins/WebLink/config.yml`.

## 📚 Documentation

Full documentation for WebLink, including API endpoints and configuration examples, is available on our **Official Wiki**.

## 🤝 Support & Source

* **Source Code**: GitHub
* **Issue Tracker**: Report Bugs


*Powered by FragMC*

WeBeCrafty

The modpack required for the WeBeCraftin’ server!
Feel free to use this modpack on your own servers or locally.

The main goal here was to expand the vanilla feel of Minecraft and its performance. Create and its associated mods were the main draw.

The rest of the mods are mainly for performance or shader enablement. Distant Horizons is optional, as well as Oculus/Oculus Fix.

Yung mods were added as they are simple but offer quite a bit of cool content.

Included Mods

– Server Tools

– Better Compatibility Checker v4.0.8

– Game Mechanics

– Create v1.20.1-0.5.1.f
– Create: Structures v0.1.1
– Serene Seasons v9.0.0.46
– Sound Physics Remastered vforge-1.20.1-1.4.2
– Dynamic Lights v1.8.2+mod (non-shader based dynamic lights)

– Shaders/Lighting

– Oculus v1.20.1-1.7.0 (optional)
– Iris & Oculus Flywheel Compat voculus-1.20.1-0.2.5 (optional)
– Complementary Shaders – Unbound vr5.2.1 (optional)

– Performance

– ImmediatelyFast v1.2.17+1.20.4-forge
– FerriteCore v6.0.1
– Radium v0.12.3
– Embeddium v0.3.20+mc1.20.1
– Embeddium++ v1.20.1-v1.2.12
– Embeddium (Rubidium) Extra v0.5.4.3+mc1.20.1-build.121
– [ETF] Entity Texture Features v6.0.1
– ModernFix v5.18.0+mc1.20.1
– spark v1.10.53-forge

– World Generation

– YUNG’s API v1.20-Forge-4.0.5
– YUNG’s Better Ocean Monuments v1.20-Forge-3.0.4
– YUNG’s Better Desert Temples v1.20-Forge-3.0.3
– YUNG’s Better Witch Huts v1.20-Forge-3.0.3
– YUNG’s Better Nether Fortresses v1.20-Forge-2.0.6
– YUNG’s Better Strongholds v1.20-Forge-4.0.3
– YUNG’s Better Jungle Temples v1.20-Forge-2.0.5
– YUNG’s Bridges v1.20-Forge-4.0.3

WebDisplays

# WebDisplays
WebDisplays is a mod for creating and interacting with web browsers in Minecraft. You can create screens in your world and browse the internet.

WebDisplays was originally written by montoyo. It is currently maintained by CinemaMod Group.

## Install
**WebDisplays Requires MCEF!** You must install MCEF in order for WebDisplays to work.

Download MCEF from either:
– CurseForge: https://curseforge.com/minecraft/mc-mods/mcef
– Modrinth: https://modrinth.com/mod/mcef

## Wiki
Outdated Wiki from the original creator

Outdated Getting Started

WebConsoleServer

# WebConsoleServer

A Minecraft plugin that exposes your server console through a WebSocket connection. Built for groupez.dev, a test server generator for paid plugins.

## Features

– Real-time console log streaming via WebSocket
– Password-protected authentication
– Log history persistence (loads previous logs on client connection)
– Support for both **Spigot/Paper** and **Velocity** platforms
– Included test web page for quick testing

## Supported Platforms

| Platform | Minecraft Version | Java Version |
|———-|——————-|————–|
| Spigot/Paper | 1.8.8+ | Java 8+ |
| Velocity | 3.3.0+ | Java 21+ |

## Test Web Page

A test web page is included in the `web/` folder. Open `web/index.html` in your browser to connect to the WebSocket server and view console logs in real-time.

## Installation

1. Download the appropriate JAR for your platform from Modrinth
2. Place the JAR in your server’s `plugins` folder
3. Restart your server
4. Configure the plugin in `plugins/WebConsoleServer/config.properties` (Velocity) or `plugins/WebConsoleServer/config.yml` (Spigot)

## Configuration

“`properties
# IP address to bind the WebSocket server (use 0.0.0.0 for all interfaces)
websocket-host=0.0.0.0

# Port for the WebSocket server
websocket-port=8765

# Password for WebSocket authentication (leave empty for no authentication)
websocket-password=changeme

# Maximum number of log lines to keep in history
max-log-history=500
“`

## WebSocket Protocol

### Authentication Flow

1. Client connects to `ws://host:port`
2. Server sends `{“type”:”auth_required”}`
3. Client sends `{“type”:”auth”,”password”:”your_password”}`
4. Server responds with `{“type”:”auth_success”}` or `{“type”:”auth_failed”}`
5. On success, server sends log history followed by `{“type”:”history_complete”}`

### Message Types

| Type | Direction | Description |
|——|———–|————-|
| `auth_required` | Server → Client | Authentication is required |
| `auth` | Client → Server | Authentication request with password |
| `auth_success` | Server → Client | Authentication successful |
| `auth_failed` | Server → Client | Authentication failed |
| `log` | Server → Client | Console log message |
| `history_complete` | Server → Client | All historical logs have been sent |

### Log Message Format

“`json
{“type”:”log”,”message”:”[12:34:56] [INFO] [ServerName]: Your log message here”}
“`

## Building from Source

“`bash
# Build all modules
./gradlew build

# Output JARs are located in target/
# – WebConsoleServer-Spigot-1.0.jar
# – WebConsoleServer-Velocity-1.0.jar
“`

On Windows, use `gradlew.bat` instead of `./gradlew`.

## License

MIT License

## Links

– groupez.dev – Test server generator for paid plugins
– Github – Source code

WebCMD

![WebCMD visual description](https://cdn.modrinth.com/data/cached_images/817c8fc9ec689b57f73ccc9c344c476abaed7fe1.png)

**PlayerCONSOLE is REQUIRED!**

Text Version

WebCMD is a lightweight PlayerCONSOLE module that runs a persistent web panel on your machine.
When Minecraft goes offline the panel stays up – so you can fire a start command from any browser and bring it back.
Server went down? Open a browser on your phone or laptop, hit Run, it’s back. No one needs to be at the machine.
Controlled via PlayerCONSOLE
Turn the panel on or off from inside the game using webcmd enable and webcmd disable. No files to edit, no restarts needed.