1.0.0
Compatibility
Changes
3-in-1 Player Plugin - Feature Overview
What This Plugin Does
This plugin allows 3 players to control 1 character simultaneously. All three control players are conjoined inside the movement player - they occupy the same body and see what the main player sees!
The Three Roles
🗡️ ATTACK Role (Player 1)
- Controls: Combat and attacking
- Can Do:
- Punch/attack mobs and other players (if PvP enabled)
- Use swords and weapons
- Swing animations
- Visibility: INVISIBLE (hidden inside the main player)
- Collisions: Non-collidable; avoids pushing and prevents aim jitter
- Perspective: Sees what the movement player sees (camera follows main player)
⛏️ BREAK_PLACE Role (Player 2)
- Controls: Block interaction
- Can Do:
- Break/mine blocks
- Place blocks
- Use tools
- Visibility: INVISIBLE (hidden inside the main player)
- Collisions: Non-collidable; avoids pushing and prevents aim jitter
- Perspective: Sees what the movement player sees (camera follows main player)
🚶 MOVE Role (Player 3 - Main Player)
- Controls: Movement and position
- Can Do:
- Walk around and move the character
- Sprint and jump
- Use elytra (if creative)
- Interact with the world physically
- Visibility: VISIBLE (the only visible character)
- Perspective: The main character everyone perceives
Shared Resources
All three players share:
- Health: If one takes damage, all see the damage
- Hunger: All three players have the same hunger level
- Saturation: Eating food affects all three
- Inventory: Items are synchronized - if one player adds an item, all see it
- Body Position: All three occupy the exact same location (inside the main player)
- Camera/Crosshair: All three see the same view as the movement player
How It Works in Practice
Example Scenario: Fighting a Mob
- Player 3 (MOVE) walks up to a Creeper using their movement
- Player 1 (ATTACK) punches the Creeper repeatedly
- Player 2 (BREAK_PLACE) is doing something else (breaking a nearby tree)
- The Creeper takes damage from Player 1's attacks
- If the Creeper explodes, all three players take damage equally
- If any player needs to heal, all three eat from the shared inventory
Example Scenario: Mining
- Player 3 (MOVE) walks to a mine
- Player 2 (BREAK_PLACE) breaks blocks and collects ore
- Player 1 (ATTACK) fights off any mobs that appear while mining
- The ore goes into the shared inventory that all three can see
Command Reference
/create3in1
- Use: Create a new 3-in-1 session
- Who runs it: The main player (MOVE role player)
- Example: /create3in1
/join3in1 <player_name> <role>
- Use: Join an existing 3-in-1 session with a specific role
- Roles: ATTACK, BREAK_PLACE, MOVE
- Example: /join3in1 Alice ATTACK
- Example: /join3in1 Alice BREAK_PLACE
/leave3in1
- Use: Leave the current 3-in-1 session
- Example: /leave3in1
Technical Details
- Minecraft Version: 1.21.1+
- Server Type: Paper (Spigot-based)
- Language: Java 21
- Sync Interval: Every game tick (20 times per second)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:X497U9my:XeXE38pC"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:X497U9my:XeXE38pC"
}

