/ misc_txt_files / README.txt
README.txt
  1  For New Worlds:
  2   Game rules: doDaylightCycle=off, doWeatherCycle=off, doInsomnia=off, doMobSpawning=off, doPatrolSpawning=off, doTraderSpawning=off, announceAdvancements=off
  3   Preset (superflat): 64*minecraft:air;minecraft:the_void
  4   Generate structures off
  5   Time: noon
  6   
  7  DEPLOYMENT:
  8   1. Setup java and paper
  9   2. Setup Geyser and Floodgate (optional)
 10   3. Download CCMCC plugin
 11   4. Copy config files from config/ to plugins/CornerCultMCC/
 12   5. Copy world files (from worlds/) to server root
 13   6. Configure server.properties (level-name=CCMCC-spawn, spawn-protection=0, allow-nether=false, max-players=<whatever>, allow-flying=true), Geyser, Floodgate, and that paper setting that enables team colours in chat
 14   7. Setup Java Resource Pack (idk how) and Bedrock Texture Packs (zip contents of CCMCC pack (bedrock) + CCMC pack (bedrock_2) (separate zip files) and copy to plugins/Geyser-Spigot/packs)
 15  
 16  Note:
 17   The bedrock resource pack has been split into multiple packs:
 18    - The Music Pack: A chonker-size pack containing all of the music. It's so big that the music is now compressed for both bedrock and java (down to a 48k bitrate).
 19    - The Other Pack: Contains graphics, sfx, etc.
 20   
 21   Since java only supports one server resource pack, java is unaffected (apart from by the compression). In terms of server pack support, bedrock would win if not for download speed issues.
 22  
 23  Resource Pack Notes:
 24                    [place(s) to consult]
 25   THING      JAVA                        BEDROCK
 26   Sounds     sounds.json                 sounds/sound_definitions.json
 27              sounds/                     sounds/
 28   Blocks     textures/block              textures/block
 29   Items      textures/item               textures/items
 30   Armour     models/armor                models/armor
 31   Language   lang/en_gb.json             texts/en_GB.lang
 32   Font       font/default.json           font/glyph_XX.png (where XX is valid hex - each char is 32x32 see https://wiki.bedrock.dev/concepts/emojis.html)
 33   
 34   Bedrock: Bump manifest and place zipped pack(s) in plugins/Geyser-Spigot/packs
 35   Java: Zip, name, and upload to dropbox. Change share link to ?dl=1 (not ?dl=0) and paste in server.properties in the correct place.
 36   
 37  MAPMAN.YML
 38  break:
 39    maps: ["default"]
 40    map_default:
 41      title: "Spawn"
 42      nopersist: false
 43      spawn_default:
 44        world: "CCMCC-spawn"
 45        x: 0.5
 46        y: 1
 47        z: 0.5
 48      spawn_team1:
 49        world: "CCMCC-spawn"
 50        x: -2.5
 51        y: 1
 52        z: -2.5
 53        paint1:
 54          find: "white_concrete"
 55          place: "_concrete"
 56          minPos: [-4, 0, -4]
 57          maxPos: [-2, 1, -2]
 58      spawn_team2:
 59        world: "CCMCC-spawn"
 60        x: 3.5
 61        y: 1
 62        z: 3.5
 63        paint1:
 64          find: "white_concrete"
 65          place: "_concrete"
 66          minPos: [2, 0, 2]
 67          maxPos: [4, 0, 4]
 68  
 69  break -> Game ID (used for each game)
 70  
 71  map_default -> Map with ID 'default' from the maps list
 72  title -> Map Name
 73  nopersist -> Set to 'true' to enable no-persist, which means that a temporary copy of any worlds within the map will be made for the duration of the game (and then deleted afterwards). Useful for games such as TGTTOSAHAF, Battle Box, and really any game in which the map will be changed (but you don't want to keep the changes afterwards).
 74  
 75  spawn_default -> worldname/x/y/z/pitch/yaw for the default spawn. Pitch/yaw is optional.
 76  spawn_teamX -> Spawn #X for unique teams (allocated starting with 1 and going onward). As per default spawn but with an additional option for 'paints'.
 77  
 78  instance -> Used to place a spawn in a given "instance" of a world (using a number). Only works when nopersist is enabled. If ommitted or set to 0, spawns in the "default instance".
 79  
 80  paintX -> Used for 'team paints', where areas of the map can be painted in team colours based on the teams present. paintX paints the area in the colour of the team whose spawn it is specified in.
 81  find -> Block to find (full spigot ID, any case)
 82  place -> Block to place (without the colour part, so "_concrete" to place coloured concrete).
 83  minPos -> Minimum position to search from
 84  maxPos -> Maximum position to search to
 85  
 86  
 87  Fancy Diagram For How Phases Steal The Same Map Manager Over And Over And Over:
 88   IntroductionPhase <--- MCCPhase ---> SubPhase ---> SubPhase
 89   
 90   
 91  How dodgebolt is structured because I'm a fucking idot
 92   1. Pre-Finals Break
 93    A 60-second MCCBreak phase leading up to Dodgebolt.
 94   
 95   2. Finals Preparation
 96    A 1-minute preparation phase.
 97     On Join/Start => Spectators are placed in the spectator section and are given emeralds based on their team's coin count, which they can spend at the villager vendors. Participants are housed offside of the pitch in the "changing room" areas.
 98    
 99   3. Dodgebolt Introduction
100     The introduction phase.
101     The doors open and beckon the participants on to the arena.
102     The spectators should continue to cheer and buy merch.
103   
104   4. Dodgebolt!
105     At the start of each round, the participants are inventory-cleared then given their bows and are placed in their spawn positions (blocked by barriers). Bows are Power V / CurseOfVanishing. On respawn, the participants are placed out of the arena.
106   
107   5. Celebration!
108     Once dodgebolt is completed, the participants are teleported out and (finally) given their emeralds. The champions are placed on a trophy and gain some extra emeralds as a prize.
109     The Celebration phase will automatically end after 15 minutes, though people are not required to stay that long.
110  
111  
112  Sandstone Types:
113   - Regular Sandstone: Tiles - large tiles which can make walls
114   - Cut Sandstone: Cut - 1.8 smooth sandstone
115   - Chiselled Sandstone: Chiselled into a square-shape (similar to stone bricks)
116   - Smooth Sandstone: Faint bricks
117   
118   - Red Standstone: Bricks - red/alternative bricks
119   - Cut Red Sandstone: Pillar - vertical pillar
120   - Chiseled Sandstone: Chiseled with a heiroglyph
121   - Smooth Red Sandstone: Solid squares (used for those square things)
122   
123   - End Stone: Cracked Sandstone
124   - Purpur Pillar: Blue Sandstone Pillar
125   - Purpur Bricks: Blue Sandstone Bricks
126   - End Bricks: Cut Blue Sandstone
127   
128   - Cobblestone: Cracked Stone
129   - Cobbled Deepslate: Cracked Deepslate
130   
131   - Deepslate redstone/lapis/emerald/gold - Red/blue/green/gold stripe
132   - Redstone Block - Red vault block
133   - Lapis/Emerald Block - Blue/green vault block
134   - Raw Gold Block - Gold vault block
135   - Polished Granite - Vault Door Edge Block
136   - Regular redstone/lapis/emerald/gold ore - Red/blue/green/gold keyhole
137   
138   - Banner Patterns (items) - Keys of various types (TODO: pick a better thing to retexture)
139  
140  SURVIVAL GAMES MAP: Tranquility Base
141   Moon / sci-fi
142   Buildings are like structures as part of a moon base, but there are also outdoor areas to explore.
143   The outdoor areas (anywhere with skylight) have low gravity (ambient Jump Boost III + Slow Fall).
144   
145  Survival Games Loot:
146   Split into three tiers:
147    - Tier I: Leather + wood/stone. Easy to reach. Only challenge is getting there first.
148    - Tier II: Gold/Iron. Moderate to reach. May require searching/hunting or an easy challenge.
149    - Tier III: Diamond. Hard to reach. Hidden in cryptic places or past tough challenges.
150   
151   Split into five categories:
152    - Armour: armour.
153    - Weapon: Swords/Axes + Bows
154    - Food: food (duh)
155    - Common: Arrows, enchantments, materials, etc.
156    - Twist: Items such as water buckets, cobwebs, shields, tridents, ender pearls, etc.
157   
158   Then collated together to form each chest.
159   
160   Twist:
161    - Tier I: Cobweb, TNT
162    - Tier II: Water Bucket, Ender Pearl, Shield, Potions (level I)
163    - Tier III: Lava Bucket, Trident, Potions (level II)
164   
165   
166  TGTTOSAWACC
167   Boom Town:
168    Equipment - TNT + Flame Bow
169    Western setting with metal/wood skyscrapers akin to plr_highertower in both materials and verticality. Many paths to travel, cutting through empty parts of buildings. Stacks of TNT in places where it can get set off.
170   
171   Pride Month:
172    Equipment: Default + Crossbow + Transgender Fireworks
173    Sky map. Floating pride flags.
174   
175   Glide:
176    Equipment: Elytra (you die if you land)
177    ??? elytra course
178   
179   Ace Race..?:
180    Equipment: Default + trident (Loyalty III not RIPTIDE)
181    Some kind of ace race style thing?
182   
183   Moon Bounce:
184    Equipment: 64x slime block, 64x lime stained glass
185    Set on the moon with moon gravity active.
186    Course will involve a lot of high jumps and 'leaps of faith' requiring the user to place slime blocks at points so they bounce back up (saving time).
187   
188   Spleef:
189    Equipment: Efficiency ??? Iron Shovel (unbreakable)
190    Set in a large, multi-tiered snow spleef arena, with each tier cutting away further towards the back as you get higher up. Digging snow will immediately place the snowballs in your hotbar for use in towering up toward the top (or throwing at others hehehehehe)
191    
192  CANON TEAM NAMES:
193   Beep Boop [yellow]
194   Blue Blarps [blue]
195   Green B!tches [green]
196   Lilac Lesbians [dark_purple]
197   Cyan Catpeople [dark_aqua]
198   D.Green Dangans [dark_green]
199   Sapphire Simps [dark_blue]
200   Garnet Genshins [dark_red]
201   
202  Structure Tagging:
203   Structures are saved using the structure system.
204   "Structure tagging" is used to represent various locations for things such as connections.
205   
206   A structure tag is an armour stand with a name in the format "t:<type>[:metadata]*"
207   Type defines the type of tag, which the program may use to determine what to do. (tags are made invisible/invulnerable when loaded)
208   Metadata can be of unlimited length (up to MC name restriction).
209   
210   /structure pos1/pos2
211   /structure save <name> - save the structure to a file
212   /structure tag <type> [metadata]* - create a tag atop the block you're facing
213  
214  Plugin List:
215   - Geyser/Floodgate (bedrock)
216   - Citizens (dependency)
217   - ProtocolLib (???)
218   - Viaversion (1.18 server)
219  
220  1.19 checklist:
221   [x] Update resource packs (just bump pack_format should work)
222   [x] Update Geyser/Floodgate
223   [ ] Test updating server and plugin - if that doesn't work figure out how to make viaversion stop kicking players on startbeep_high
224  
225  Sands of Time Tags:
226   - con <type> [noentry] - connector. type specifies the next type of tunnel allowed. Add "noentry" as the second arg to force it to be used as an exit (e.g. prevent another tunnel from connecting to it)
227   - bigcoin - Big Coin Pile
228   - smallcoin - Small Coin Pile
229   - loot - Loot (e.g. item)
230   - sand <x> - 1 in x chance of sand here
231   
232   Substructuring (note - this must be implemented by generators on the import stage, not in PopulateWorldStep):
233   - substructure <category>
234    Allows you to embed a random structure from the given category. The position of the tag acts as the minimum coordinates of the structure.
235   
236   Triggers:
237    Triggers are used to build simple systems. They are split into two types: Sensors and Effectors. Every trigger has a "trigger group" that they belong to.
238    
239    Sensors trigger all triggers in their trigger group when a condition is met. Effectors do something when their trigger group is triggered. Triggers can only be triggered once.
240    Groups are specified by any string but can only trigger triggers within the same structure/substructure (i.e. same PopulateWorldStep call).
241    
242    Sensors:
243     - senseplr <group> <radius>: Triggers when a player is nearby to the tag
244     - lever <group> <radius>: Triggers when a player flips a lever (on the same block as the tag)
245     [more will be implemented once the puzzles are added]
246    
247    Effectors:
248     - setair <group> [delay]: Sets the block to air, optionally after an x-tick delay.
249     - spawnmob <group> <amount> [mobs...]: Spawns a random mob from the list (Spigot IDs). Omit mob to use a default selection
250     - setspawner <group> [mobs...]: On load, sets the spawner to spawn a random mob from the list (Spigot IDs). Omit [mobs...] to use a default selection. When triggered, will immediately activate the spawner once to ensure that some mobs are spawned before a torch is placed.
251     - statue <group1> <group2> <mob>: Mob is a spigot ID for a 2 tall 1 wide mob. Places a statue at that position when triggered once. The statue is woken up once the trigger is triggered a second time. The two groups used for this can be in any order.
252     
253  Roadmap:
254   - Core, Decision Dome, Dodgebolt (DONE)
255   - Battle Box, SG*, TGTTOS* (DONE)
256   - Sands of Time (80% there)
257   
258   - Continue work on SG* and TGTTOS
259   - Rocket Spleef Rush, Ace Race*, Hole in the Wall, Parkour Warriors*
260   - More work on Sands of Time*
261   
262   - Continue work on SG, Parkour Warriors*, Ace Race*
263   - Sky Battle, Meltdown*
264   - Finish work on Sands of Time, Ace Race, and Parkour Warriors
265   
266   Meltdown will not be ready for release before CCMCC #1.
267   Games marked with a * will not be completed by the end of that step, but may be playable in an incomplete state.
268   Big Sales at Buildmart and Grid Runners are currently not planned but may arrive in future.
269  
270  BetterTunnelGen (SOT):
271   Splits rooms into "tunnels", "passages", and "rooms".
272    Tunnels: Short, 3x3 tunnel pieces which connect things together like glue. Don't count towards depth score.
273      Avg Sand: 0
274      Length: 2-5 blocks
275      Size: 3x3 or similar
276    
277    Passages: Wider tunnels which often contain interesting features e.g. spawner rooms, gold, parkour, etc.
278      Avg Sand: 0.5
279      Length: 5-15 blocks
280      Size: 5x5 or similar
281    
282    Rooms: Large rooms, often with multiple branches and something interesting to do.
283      Avg Sand: 1
284      Length/Size: Big, fairly open (but depends on the room)
285   
286   Rooms can connect to tunnels or passages.
287   Passages can connect to rooms, tunnels, or passages.
288   Tunnels can connect to rooms or passages.
289   The Hub can connect to passages only.
290   
291   Rusty Doors count as a tunnel.
292   
293   Tunnels should expect to fill a 5x4 hole in the area they connect to, even if they don't use all of that space.
294   
295  Dodgebolt shops:
296   Food:
297    ???
298    
299   Merch I - team colours: ???
300   Merch II: 
301    - 15 emeralds per item
302    - Items: Fan-Whacker 3000, Rocket Launcher (doesn't break blocks), Ace Trident (Riptide II), Pocket Sand Timer, etc.
303  
304  Parkour Tag: - I feel like this is a flawed mechanism and is impossible to test as it still requires a minimum number of players
305   Each matchup can be split into two halves:
306    - First Half: Team 1 hunts Team 2
307    - Second Half: Team 2 hunts Team 1
308    
309   Player Number Strategies: 
310    If there aren't enough players, halves can happen sequentially rather than simultanaeously, so the Hunter for team 2 can run during the first half (and the runners for team 1 will spectate).
311    Halves will switch without a music or world change. Hunter selection happens before the first half and results are announced after the second.
312    The coin bonus will be awarded to the first half's hunter if the "caught by" time is reached, or to the second half's hunter if they manage to tag all runners before the "caught by" time is reached. 
313    
314    If there still aren't enough players, then runners for team 1s can be drafted as "support runners" to assist in other teams' matchups. (and vice versa for the second half).
315   
316   PKTMatchup:
317    - World world
318    - List<PKTHalf> halves
319    - CCMCCTeam team1, team2
320   
321   PKTHalf:
322    - World world
323    - ??? arena (which arena to use - each instance of the map has 2 copies of the arena)
324    - Player hunter
325    - List<Player> runners
326    
327    - List<UUID> livingRunners
328    - int runnerCaughtTime (when the runners were caught)
329  
330  Registering New Games:
331   - Add to Dome Manager refresh() and gameID systems
332   
333  Updated Roadmap:
334   - Stage Alpha: Core, Decision Dome, Dodgebolt
335   - Stage Beta: Battle Box, Survival Games, TGTTOS
336   - Stage Theta: Sands of Time (pt1), Hole in the Wall, Rocket Spleef Rush (pt1)
337   
338   - Stage Delta: Battle Box map, Big Sales at Build Mart, Survival Games
339   
340   - Stage Epsilon: Rocket Spleef Rush (pt2), Sands of Time (pt2), Parkour Warriors
341   - Stage Omega: [Secret Game], Sky Battle
342   CCMCC #1 will likely happen during Stage Omega. Depending on the secret game the first dome will either contain Sky Battle or the secret game, but it is not likely to be both.
343   I may host a non-canon "CCMCC #0" prior to this but this would rely on enough games being event-ready.
344   
345   Progress (> = Barely Playable, >> = Playable, >>> = Good, >>>> = Very Good):
346    Battle Box [>>>-]: Map complete apart from detailing.
347    Survival Games [>---]: Needs a new map.
348    TGTTOS [>>--]: 2/6 maps complete.
349    Hole In The Wall [>>--]: Needs about 2~4x as many walls as it has currently. Fixing the physics would be nice at some point but isn't "required" to run an event.
350    Rocket Spleef Rush [>---]: 0/3 maps complete.
351    Sands of Time [>>--]: Needs Puzzles, Death, and a bunch more rooms.
352    Build Mart [----]: Map incomplete (propellers, top resource islands). 6/24 builds complete but some still need touch ups/fixes.
353    
354    Parkour Warriors: Not started.
355    [Secret Game]: TBA/TBD
356    Sky Battle: Not started, but I know the map will be called "Skyduckle".
357   
358   Benched: Ace Race (larger than buildmart in map size), Grid Runners (large scope for both map and code), Meltdown (large, detailed map), Parkour Tag (not enough people + I don't have enough MC accounts to test).
359  
360  SG Loot:
361    - Stone/Iron tools, Leather/Chain/Iron armour
362    - Cookie, Chicken, Pumpkin Pie, Cake
363    - Enchanted Books
364    - Arrows, Bows, Crossbows
365    - Cobwebs, TNT, Harming II potions
366    - Gapples