ModsJava
PvPDuels
Java mod listed for Minecraft 1.14–1.15. Downloads from the MC Java Mods app on Android.
⬇ Download on Spigot
Non-Kit based PvP duels for Survival/Faction Servers
I designed this plugin for Non-PvP based servers wishing to add a PvP style element to the server. For this reason, I avoided the kit route.
Please Note: This plugin is very buggy! use at your own peril
Features:
- Matchmaking & Requests
- Full GUI
- In-Game map creator
- Stats & Win Count
- High Customisation with Permissions & Config
- Fully Customisation Language File
- Multi-Lingual
- Tab Complete
Spoiler: Images
Known Bugs:
- Commands dont work
- Some Mistakes in language file
- Slow Targeted Match Start
- Maps enabled/disabled inverted
------------------------------------------------------------------------------------
Installation:
- Download the Resource (.jar file)
- Place it in your /plugins folder of your server
- Reload/Restart the Sever
Commands:
User Commands:
/pvp - Help/GUI
/pvp gui - GUI
/pvp matchmake - Join the Matchmake Queue
/pvp request <name> - Request a Duel with another player
/pvp accept <name> - Accept a Duel from another player
/pvp stats - View Player Stats
Admin Commands:
/pvp gui - GUI
/pvp matchmake - Join the Matchmake Queue
/pvp request <name> - Request a Duel with another player
/pvp accept <name> - Accept a Duel from another player
/pvp stats - View Player Stats
/pvpadmin - Admin Help
/pvpadmin list - List all Maps
/pvpadmin create <id> - Create a new map
/pvpadmin delete <id> - Delete a map
/pvpadmin info <id> - Show map info
/pvpadmin edit <id> <spawn1 | spawn2> - Set a map spawn
/pvpadmin edit <id> name <value> - Set map formal name
/pvpadmin enable <id> - Enable a map into circulation
/pvpadmin disable <id> - Disable a map out of circulation
/pvpadmin list - List all Maps
/pvpadmin create <id> - Create a new map
/pvpadmin delete <id> - Delete a map
/pvpadmin info <id> - Show map info
/pvpadmin edit <id> <spawn1 | spawn2> - Set a map spawn
/pvpadmin edit <id> name <value> - Set map formal name
/pvpadmin enable <id> - Enable a map into circulation
/pvpadmin disable <id> - Disable a map out of circulation
------------------------------------------------------------------------------------
Usage:
Spoiler: Create a new map
For this we can assume our new map
id as
map1 .
Replace map1 with your new map id.
Step 1: Build or Download your map.
Step 3: Set Spawns
Step 4: Enable the map
Replace map1 with your new map id.
Step 1: Build or Download your map.
Setup the map in the location you desire
Step 2: Create the map
/pvpadmin create
map1
/pvpadmin edit map1 name Example Map
/pvpadmin edit map1 name Example Map
Step 3: Set Spawns
Go to the locations that you want the player to spawn.
Make sure to look in the direction you want the player to spawn.
/pvpadmin edit map1 spawn1
or
/pvpadmin edit map1 spawn2
Make sure to look in the direction you want the player to spawn.
/pvpadmin edit map1 spawn1
or
/pvpadmin edit map1 spawn2
Step 4: Enable the map
Maps are disabled by default
/pvpadmin enable map1
By enabling the map, it allows the map to be put into match creation
/pvpadmin enable map1
By enabling the map, it allows the map to be put into match creation
------------------------------------------------------------------------------------
Configs:
There are a 4 config files created upon startup:
configuration.yml
Example Configs:
Chat Formating
Game Settings
Rewards and Commands
language.yml
Game Settings
Rewards and Commands
Stores all text for responses and GUI
Holds multiple languages
maps.yml
Holds multiple languages
Stores all map settings
store.yml
Stores Player data
Other stuff
Not recommended to be edited
Other stuff
Not recommended to be edited
Spoiler: configuration.yml
Code (YAML):
format :
lang : en
format : " §p$prefix§r §m$msg"
colour :
highlight : "§8"
msg : "§7"
warn : "§e"
success : "§a"
error : "§c"
info : "§3"
prefix :
error : "§l✖"
warn : "⚠"
success : "§l✔§r"
info : "⚔"
game :
match :
gametime : 60
timewarnings : [ 1,2,3,4,5,10,20,30,60,90,120,150 ]
countdown : 3
waitformap : 30
targetcountdown : 5
commands :
start : [ ]
finish : [ ]
winner : [ ]
loser : [ ]
tie : [ ]
lang : en
format : " §p$prefix§r §m$msg"
colour :
highlight : "§8"
msg : "§7"
warn : "§e"
success : "§a"
error : "§c"
info : "§3"
prefix :
error : "§l✖"
warn : "⚠"
success : "§l✔§r"
info : "⚔"
game :
match :
gametime : 60
timewarnings : [ 1,2,3,4,5,10,20,30,60,90,120,150 ]
countdown : 3
waitformap : 30
targetcountdown : 5
commands :
start : [ ]
finish : [ ]
winner : [ ]
loser : [ ]
tie : [ ]
Spoiler: language.yml
Code (YAML):
en :
error :
senderTypeError : "You must be a player to Execute this command"
notImplemented : "This feature is not implemented"
noResponse : "Command returned no response"
usage : "Usage: §h/$command §m$usage"
permission : "You do not have permission to run this command"
permission-admin : "$message §h($permission)"
noplayer : "A player with that name does not exist"
admin :
maps :
exist : "Map with id '$id' already exists"
noexist : "Map with id '$id' does not exist"
list : "$count maps: §h$list"
create : "Created new map '$id'"
delete : "Deleted map '$id'"
info :
header : " §m------ §hMAP INFO §m------"
footer : " §m------ -------- ------"
body : " §m$key: §h$value"
edit : "Set map $key for '$id' to $value"
disable : "Disabled map '$id'"
enable : "Enabled map '$id'"
play :
wait :
map : "Waiting for map"
peer : "Waiting for peer"
setup : "Setting up Match. (Approx $time seconds)"
matchmake :
join : "You have joined the Matchmaking Queue"
leave : "You have left the Matchmaking Queue"
queue : "Queue Position: $pos"
found : "Found Matchmake: $player1v$player2"
target :
send : "Sent PvP request to $player"
recv : "$player wants to PvP you! To accept run $command"
expire : "Your PvP request to $player has expired"
exist : "You have already requested to PvP '$player'"
accept : "Accepted $player PvP request."
accepted : "$player has accepted your request."
none : "You have no PvP Requests"
multiple : "You have multiple PvP Requests. Do /pvp accept <name>"
noplayer : "You dont have a PvP Request from that player"
start : "Starting Match in $time seconds"
stats :
header : " §m------ §h Player Stats §m------"
footer : " §m------ §h ------------ §m------"
body : " §m$key: §h$value"
time :
seconds : "seconds"
second : "second"
minutes : "minutes"
minute : "minute"
game :
msg :
remain : "$time remaining"
lost : "You lost against $other"
win : "You won against $other"
title :
time : "§7$time §7remaining"
timewarn : "§c$time §7remaining"
start : "§aFIGHT!"
win : "§aYou Won!"
lose : "§cYou Lost"
tie : "§6You Tied"
gui :
general :
close :
title : "Close"
subtitle : "Close the menu"
back :
title : "Back"
subtitle : "Go to the Previous Menu"
home :
title : "PvPDuels Menu"
matchmake :
title : "Play: Matchmake"
subtitle : "Starting A PvP duel with a random person"
request :
title : "Play: Request"
subtitle : "Invite a specific person to a PvP duel!"
accept :
title : "Play: Incoming Request"
subtitle : "Accept an Incoming request"
stats :
title : "Player Stats"
subtitle : "See your wins and loses"
credit : "Credit"
stats :
title : "PvPDuels Player Stats ($player)"
wins :
title : "Wins"
subtitle : "§f$v §7wins"
loses :
title : "Loses"
subtitle : "§f$v §7loses"
ties :
title : "Ties"
subtitle : "§f$v §7ties"
count :
title : "Total"
subtitle : "§f$v §7total games"
request :
title : "PvPDuels Request Duel"
clickable :
title : "$player"
subtitle : "Invite to PvP Duel"
accept :
title : "PvPDuels Accept Duel"
clickable :
title : "$player"
subtitle : "Accept Pvp Duel from $player"
error :
senderTypeError : "You must be a player to Execute this command"
notImplemented : "This feature is not implemented"
noResponse : "Command returned no response"
usage : "Usage: §h/$command §m$usage"
permission : "You do not have permission to run this command"
permission-admin : "$message §h($permission)"
noplayer : "A player with that name does not exist"
admin :
maps :
exist : "Map with id '$id' already exists"
noexist : "Map with id '$id' does not exist"
list : "$count maps: §h$list"
create : "Created new map '$id'"
delete : "Deleted map '$id'"
info :
header : " §m------ §hMAP INFO §m------"
footer : " §m------ -------- ------"
body : " §m$key: §h$value"
edit : "Set map $key for '$id' to $value"
disable : "Disabled map '$id'"
enable : "Enabled map '$id'"
play :
wait :
map : "Waiting for map"
peer : "Waiting for peer"
setup : "Setting up Match. (Approx $time seconds)"
matchmake :
join : "You have joined the Matchmaking Queue"
leave : "You have left the Matchmaking Queue"
queue : "Queue Position: $pos"
found : "Found Matchmake: $player1v$player2"
target :
send : "Sent PvP request to $player"
recv : "$player wants to PvP you! To accept run $command"
expire : "Your PvP request to $player has expired"
exist : "You have already requested to PvP '$player'"
accept : "Accepted $player PvP request."
accepted : "$player has accepted your request."
none : "You have no PvP Requests"
multiple : "You have multiple PvP Requests. Do /pvp accept <name>"
noplayer : "You dont have a PvP Request from that player"
start : "Starting Match in $time seconds"
stats :
header : " §m------ §h Player Stats §m------"
footer : " §m------ §h ------------ §m------"
body : " §m$key: §h$value"
time :
seconds : "seconds"
second : "second"
minutes : "minutes"
minute : "minute"
game :
msg :
remain : "$time remaining"
lost : "You lost against $other"
win : "You won against $other"
title :
time : "§7$time §7remaining"
timewarn : "§c$time §7remaining"
start : "§aFIGHT!"
win : "§aYou Won!"
lose : "§cYou Lost"
tie : "§6You Tied"
gui :
general :
close :
title : "Close"
subtitle : "Close the menu"
back :
title : "Back"
subtitle : "Go to the Previous Menu"
home :
title : "PvPDuels Menu"
matchmake :
title : "Play: Matchmake"
subtitle : "Starting A PvP duel with a random person"
request :
title : "Play: Request"
subtitle : "Invite a specific person to a PvP duel!"
accept :
title : "Play: Incoming Request"
subtitle : "Accept an Incoming request"
stats :
title : "Player Stats"
subtitle : "See your wins and loses"
credit : "Credit"
stats :
title : "PvPDuels Player Stats ($player)"
wins :
title : "Wins"
subtitle : "§f$v §7wins"
loses :
title : "Loses"
subtitle : "§f$v §7loses"
ties :
title : "Ties"
subtitle : "§f$v §7ties"
count :
title : "Total"
subtitle : "§f$v §7total games"
request :
title : "PvPDuels Request Duel"
clickable :
title : "$player"
subtitle : "Invite to PvP Duel"
accept :
title : "PvPDuels Accept Duel"
clickable :
title : "$player"
subtitle : "Accept Pvp Duel from $player"
Spoiler: maps.yml
Code (YAML):
maps :
test :
name : Epic Test map
spawn1 :
world : world
x : -27
y : 84
z : -33
rx : -0.0
ry : -180.0
'null' : false
spawn2 :
world : world
x : -27
y : 84
z : -42
rx : -0.0
ry : 17.860754013061523
'null' : false
enabled : false
demo :
name : Demo
spawn1 :
world : world
x : -17
y : 55
z : -140
rx : -0.15020181238651276
ry : -180.37744140625
'null' : false
spawn2 :
world : world
x : -17
y : 55
z : -176
rx : 1.3495675325393677
ry : -359.3263854980469
'null' : false
enabled : true
test :
name : Epic Test map
spawn1 :
world : world
x : -27
y : 84
z : -33
rx : -0.0
ry : -180.0
'null' : false
spawn2 :
world : world
x : -27
y : 84
z : -42
rx : -0.0
ry : 17.860754013061523
'null' : false
enabled : false
demo :
name : Demo
spawn1 :
world : world
x : -17
y : 55
z : -140
rx : -0.15020181238651276
ry : -180.37744140625
'null' : false
spawn2 :
world : world
x : -17
y : 55
z : -176
rx : 1.3495675325393677
ry : -359.3263854980469
'null' : false
enabled : true
Spoiler: store.yml
Code (YAML):
players :
f39e8647-c99f-3d71-a09b-2ebf5daa121f :
name : Landon1986
stats :
c : 10
t : 1
w : 1
l : 8
games : [ ]
a6a08663-91c9-3062-b2dc-cfc6c045fadf :
name : SamHDev
stats :
c : 10
t : 1
w : 8
l : 1
games : [ ]
f39e8647-c99f-3d71-a09b-2ebf5daa121f :
name : Landon1986
stats :
c : 10
t : 1
w : 1
l : 8
games : [ ]
a6a08663-91c9-3062-b2dc-cfc6c045fadf :
name : SamHDev
stats :
c : 10
t : 1
w : 8
l : 1
games : [ ]
You can use PEX or other permission mangers to assign permissions
In General:
For users - pvpduels.use.*
For Admins - pvpduels.use.* + pvpduels.admin.* or pvpduels.*
For Admins - pvpduels.use.* + pvpduels.admin.* or pvpduels.*
Spoiler: All Permissions
Code (YAML):
permissions :
pvpduels.admin :
description : "Allows PvP Duels admin commands"
pvpduels.admin.list :
description : "Allows PvP Duels maps to be listed"
pvpduels.admin.create :
description : "Allows PvP Duels maps to be created"
pvpduels.admin.delete :
description : "Allows PvP Duels maps to be deleted"
pvpduels.admin.edit :
description : "Allows PvP Duels maps to be edited"
pvpduels.use :
description : "Allows PvP Duels commands to be used"
pvpduels.use.gui :
description : "Allows PvP Duels GUI to be used"
pvpduels.use.matchmake :
description : "Allows PvP Duels Matches to be created by matchmaking"
pvpduels.use.request :
description : "Allows PvP Duels Matches to be created by targeted"
pvpduels.use.accept :
description : "Allows PvP Duels Matches to be accepted"
pvpduels.use.stats :
description : "Allows PvP Duels Stats to be shown"
pvpduels.use.stats.other :
description : "Allows PvP Duels Stats to be shown of another Player"
pvpduels.admin :
description : "Allows PvP Duels admin commands"
pvpduels.admin.list :
description : "Allows PvP Duels maps to be listed"
pvpduels.admin.create :
description : "Allows PvP Duels maps to be created"
pvpduels.admin.delete :
description : "Allows PvP Duels maps to be deleted"
pvpduels.admin.edit :
description : "Allows PvP Duels maps to be edited"
pvpduels.use :
description : "Allows PvP Duels commands to be used"
pvpduels.use.gui :
description : "Allows PvP Duels GUI to be used"
pvpduels.use.matchmake :
description : "Allows PvP Duels Matches to be created by matchmaking"
pvpduels.use.request :
description : "Allows PvP Duels Matches to be created by targeted"
pvpduels.use.accept :
description : "Allows PvP Duels Matches to be accepted"
pvpduels.use.stats :
description : "Allows PvP Duels Stats to be shown"
pvpduels.use.stats.other :
description : "Allows PvP Duels Stats to be shown of another Player"
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.14, 1.15
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
PvPDuels is a free Minecraft Java mod. Compatible with Minecraft 1.14, 1.15. Downloaded 192 times (via Spigot). Download it and open it directly in the game.