The Datapack for the Soirée du Grand Poulet
The Soirée du Grand Poulet is a Minecraft event mostly centered around PvP. This is the datapack that contains the kits, events, etc.
You can join the discord of the original SGP at https://www.discord.gg/FqGKSqPBbk
The Actionbar datapack from Smithed is required. Bookshelf is also required.
You need CommandAPI to use plugin commands in datapacks, as well as Luckperms, the TGCPlugin and DiscordSRV + an add-on for the /move command. You can bypass these dependencies by removing every non-vanilla command from the datapack. The actions performed by these custom commands are independent from the rest of the datapack (making players glow, moving them from a voice channel to another...) so removing them shouldn't break anything. We strongly recommend the Worldguard plugin, as some things in the datapack might have not been tested without it. For example tnt-based abilities will destroy your world, or poseidon's trident ability will place water that might flow under certain circumstances.
We do replace the #bypasses_shield damage type tag with all its vanilla damage type, to allow us to have a damage type that bypasses armor but not shield. We also replace the vanilla magenta_shulker_box death loot table.
Add the datapack to your world, and add the necessary markers in your world, that specify the location of objects. These markers must all have the tag sgp.marker.
- 1
respawn: spawnpoint of the players when they die, should be also the place where they choose their kit - any number of
lieuwith data corresponding to the POI. Example :data:{dx:16, dy:3, dz:6, lieu:observatoire, lieu_propre:"Observatoire", couleur:"#DDDDDD"}. Need 8\to escape a'. - any number of
teleporterwith data corresponding to the teleporter destination :data:{x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>} - at least 1
Confinement: spawnpoints when the Confinement event is active - at least 1
Lootdrop: locations of lootdrop chests, with the visual direction of the chest:data:{facing:<direction>} - 1
abilities_shulker: somewhere hidden, in an empty (air) block, to allow abilities to work - At least 1
playable_mapin the corner of the playable map:{dx, dy, dz, id: int}(theidis not mandatory if you're not using dioramas) - Optionally at least 1
playable_map_modelin the corner of the smaller model of the map:{id: int}. The id should correspond to the one of theplayable_mapit should be linked to. No duplicates.
- at least 1
Attaquant_Invasion: spawnpoints when the Invasion event is active - 1
devenir_roi_rougeand 1devenir_roi_bleu: These are rooms where a player can become the Roi when "Protéger le Roi" is active. Note that Devenir Roi Rouge and Devenir Roi Bleu cannot be in the same location. - 1
devenir_chasseurand 1devenir_pigeon: These are rooms where players can become Chasseurs or Pigeons. Note that Devenir Chasseur and Devenir Pigeons cannot be in the same location. - 3
pco_cage_storage: one for each team. They should not be placed somewhere visible, and are used to clone the cages from there to the arena at the start of the event. They should have the following data:{cage:"<team>", dx, dy, dz}The 3 firstdx dy dzare the size of the cages. - 3
pco_uncage_storage: one for each team. They should be near thepco_cage_storages, and should have the following data:{cage:"<team>", dx, dy, dz} - 3
pco_<team>_cage_arenathat should be placed in the corner of the cage of the team, in the arena. - 3
pco_<team>_spawnthat are the place at which the players from the specified team spawn - 3
pco_spawn_cage_<team>that are the place at which the players from the specified team respawn when he is capture - 1
spawn_seekerspawn of the seeker team - 1
spawn_hiderspawn of the hider team
Additional Note: The markers for Devenir Roi Rouge and Devenir Chasseur can share the same location. Similarly, the markers for Devenir Roi Bleu and Devenir Pigeons can share the same location.
The template to summon one is /summon interaction ~ ~ ~ {Tags:["sgp.interaction", "sgp.<name>"], data:{args:{<args>}, function: "<func>"}, response:true}.
Each of these is optional (or can be present multiple times), depending on how you want to make your players' UX.
spawn_tperfor each spawnpoint the players can choose, with the functionsgp.misc:interactions/tp_to_spawnand args:x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>, article:<"à la"|"au"|...>, title:"<escaped_text_component>", id:1* **spawn_randomizer, with the functionsgp.misc:interactions/random_spawnand no arg:id: <int>. ***to_spawns, with the functionsgp.misc:interactions/go_to_choose_spawnand args:x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>to_cosms, with the functionsgp.misc:interactions/simple_tpand args:x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>to_reception, with the functionsgp.misc:interactions/simple_tpand args:x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>to_kits, with the functionsgp.misc:interactions/simple_tpand args:x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>
There needs to be the same number of spawn_tper for each spawn type, or else the random will be skewed.
You do not need to add any if you're using the diorama! Instead initialize the storage.
If you're not using dioramas, choose id: 1. Else it should be the id of the diorama it will choose the spawns from.
- You can change the cooldowns and durations of all abilities by changing the values in
sgp:data kits.ability_cooldowns sgp:data spawns[{id:int, list:[]}]Thelistis containing all the spawns, and will be used if you're using the diorama to automatically place the interation entities and text displays. Each element should be exactly what would have been theargsof thespawn_tpers. The id should correspond to the diorama in which you want these spawns to appear in.
- Whatever is described in the Kits module Readme
- Whatever is described in the Cosmetics module Readme
- You should forceload all the chunks in which you placed markers.
- If you want the diorama mannequins to replicate players' swings, and don't use
/givein general (else you'll have stacking issues), you can enable it with/scoreboard players set #mannequins_swing_enabled sgp.dummy 1
Run the sgp.misc:uninstall function, it will remove all the sgp objectives and non-usermade data