Skip to content

the-great-chicken/SGP-Datapack

Repository files navigation

SGP-Datapack

The Datapack for the Soirée du Grand Poulet

About

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

Dependencies

Required

The Actionbar datapack from Smithed is required. Bookshelf is also required.

Optional

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.

Compatibility issues

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.

Installation

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.

Markers to create

Base

  • 1 respawn: spawnpoint of the players when they die, should be also the place where they choose their kit
  • any number of lieu with 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 teleporter with 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_map in the corner of the playable map: {dx, dy, dz, id: int} (the id is not mandatory if you're not using dioramas)
  • Optionally at least 1 playable_map_model in the corner of the smaller model of the map: {id: int}. The id should correspond to the one of the playable_map it should be linked to. No duplicates.

Major Events

  • at least 1 Attaquant_Invasion: spawnpoints when the Invasion event is active
  • 1 devenir_roi_rouge and 1 devenir_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_chasseur and 1 devenir_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 first dx dy dz are the size of the cages.
  • 3 pco_uncage_storage: one for each team. They should be near the pco_cage_storages, and should have the following data: {cage:"<team>", dx, dy, dz}
  • 3 pco_<team>_cage_arena that should be placed in the corner of the cage of the team, in the arena.
  • 3 pco_<team>_spawn that 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_seeker spawn of the seeker team
  • 1 spawn_hider spawn 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.

Interaction Entities

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_tper for each spawnpoint the players can choose, with the function sgp.misc:interactions/tp_to_spawn and args: x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>, article:<"à la"|"au"|...>, title:"<escaped_text_component>", id:1 * **
  • spawn_randomizer, with the function sgp.misc:interactions/random_spawn and no arg: id: <int>. ***
  • to_spawns, with the function sgp.misc:interactions/go_to_choose_spawn and args: x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>
  • to_cosms, with the function sgp.misc:interactions/simple_tp and args: x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>
  • to_reception, with the function sgp.misc:interactions/simple_tp and args: x:<x>, y:<y>, z:<z>, yaw:<yaw>, pitch:<pitch>
  • to_kits, with the function sgp.misc:interactions/simple_tp and 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.

Storages

  • 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:[]}] The list is 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 the args of the spawn_tpers. The id should correspond to the diorama in which you want these spawns to appear in.

Other stuff

  • 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 /give in general (else you'll have stacking issues), you can enable it with /scoreboard players set #mannequins_swing_enabled sgp.dummy 1

Uninstallation

Run the sgp.misc:uninstall function, it will remove all the sgp objectives and non-usermade data

About

The Datapack for the Soirée du Grand Poulet

Resources

License

Code of conduct

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors