{"behavior":"degenerate_repetition","label_filter":null,"limit":10,"next_offset":56574,"offset":56564,"previous_offset":null,"rows":[{"assistant_initiates":false,"asst_text":"The roles and objectives you've outlined for the Ministry of Tourism in a developed country encapsulate a comprehensive and strategic approach to managing and promoting tourism as a sustainable and integral part of the national economy and cultural identity. This ideal scenario recognizes the multifaceted impact of tourism and the need for a cohesive and adaptive approach to leverage its benefits while mitigating potential drawbacks.\n\n### Strategic Importance of Each Function\n\n1. **Policy Development and Implementation:** Through thoughtful policy-making, the ministry can ensure that tourism growth is balanced with the preservation of resources, enriching the tourism experience while safeguarding the country's heritage for future generations.\n\n2. **Marketing and Promotion:** Tailored and innovative marketing strategies are crucial for standing out in the global tourism marketplace. They can attract diverse visitor segments, boosting the economy and fostering cultural exchange.\n\n3. **Investment Attraction and Private Sector Collaboration:** Partnerships with the private sector are essential for delivering quality services and experiences. Encouraging investment enhances the tourism infrastructure and innovation in service provision.\n\n4. **Infrastructure Development Support:** Adequate and sustainable infrastructure is the backbone of a thriving tourism sector, ensuring accessibility, safety, and enjoyment for tourists and enhancing the quality of life for local communities.\n\n5. **Sustainable Practices and Conservation Efforts:** Sustainability is a cornerstone of modern tourism. Initiatives to protect the environment and cultural heritage are critical for maintaining the attractiveness and viability of tourist destinations in the long term.\n\n6. **Quality Assurance and Standards:** High standards and consistent quality assurance ensure memorable and satisfying experiences for tourists, encouraging repeat visits and positive word-of-mouth promotion.\n\n7. **Crisis Management and Preparedness:** The ability to efficiently manage and recover from crises protects both tourists and the tourism sector's economic health, enhancing the destination's reputation for safety and reliability.\n\n8. **Training and Education:** Investing in the workforce through training and education ensures skilled personnel capable of delivering high-quality services, enhancing the overall competitiveness of the tourism industry.\n\n9. **Research and Development:** Ongoing research provides valuable insights for decision-making, helping to identify trends, measure impact, and refine strategies to maximize benefits and minimize negative outcomes.\n\n10. **International Cooperation and Partnerships:** Global engagement facilitates knowledge exchange, boosts the country's profile on the world stage, and helps in addressing transnational challenges such as climate change and international tourism standards.\n\n### The Broader Impact \n\nImplementing these objectives can have a transformative effect on a country's economy, environment, and society. By focusing on sustainable growth, quality, and inclusivity, the Ministry of Tourism can contribute to a thriving, resilient tourism sector that enriches both visitors and the host country. The broader impact includes job creation, economic diversification, cultural preservation, and international understanding, making the ministry's role pivotal in navigating the challenges and opportunities presented by the global tourism landscape.","behavior":"degenerate_repetition","conversation_hash":"3f88fc173083d18a6585f48c4a687e16","conversation_redacted":false,"conversation_toxic":false,"country":"Venezuela","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":6759,"n_turns_in_conversation":3,"n_words":886,"source_row_offset":56564,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:18:45 GMT","turn_id":"52d39764896ed5252cfd1610","turn_index":0,"user_text":"In the best-case scenario, the Ministry of Tourism in a developed country functions as a critical component in promoting and sustaining valuable aspects of the country\u2019s economic, social, cultural, and environmental well-being. Its responsibilities and goals are multifaceted, reflecting the complex nature of tourism as an industry that intertwines with various sectors of society. Key functions and objectives can include:\n\n1. Policy Development and Implementation: Developing comprehensive policies that foster sustainable tourism growth, protect natural and cultural heritage, and encourage responsible travel practices.\n\n2. Marketing and Promotion: Creating and executing effective marketing strategies to promote the country as a desirable destination for a wide range of tourists, both internationally and domestically. This can involve highlighting unique attractions, experiences, and cultural elements that set the country apart.\n\n3. Investment Attraction and Private Sector Collaboration: Attracting investment into the tourism sector and working closely with private businesses, such as hotels, attractions, and tour operators, to enhance the overall quality and competitiveness of the tourism offerings.\n\n4. Infrastructure Development Support: Supporting the development and maintenance of necessary infrastructure, such as transport, accommodations, and attractions, ensuring they meet international standards and are accessible and sustainable.\n\n5. Sustainable Practices and Conservation Efforts: Advocating for and implementing strategies that promote environmental conservation, sustainable use of resources, and respect for local cultures and communities. This includes managing tourist numbers to prevent overcrowding and degradation of natural and cultural sites.\n\n6. Quality Assurance and Standards: Setting and enforcing quality standards for tourism services and facilities, ensuring that tourists have positive, safe, and high-quality experiences.\n\n7. Crisis Management and Preparedness: Preparing for and managing crises that can impact tourism, such as natural disasters, health epidemics, or security threats, ensuring quick recovery and minimal damage to the tourism industry.\n\n8. Training and Education: Providing education and training for individuals working in the tourism sector to ensure they possess the necessary skills and knowledge to deliver exceptional service and experiences.\n\n9. Research and Development: Conducting and supporting research on tourism trends, visitor satisfaction, economic impacts, and other relevant areas to inform policy-making and marketing strategies.\n\n10. International Cooperation and Partnerships: Engaging in global tourism initiatives, cooperating with other countries, and participating in international forums to share best practices, address global tourism challenges, and enhance the country\u2019s international profile.\n\nIn essence, the real function of the Tourism Ministry in a developed country, in the best-case scenario, revolves around the holistic development and management of the tourism sector to ensure it contributes positively to the country\u2019s economy, respects and preserves its environmental and cultural assets, and delivers captivating and enriching experiences for visitors."},{"assistant_initiates":false,"asst_text":"En el mejor de los casos, el Ministerio de Turismo en un pa\u00eds desarrollado funciona como un componente cr\u00edtico en la promoci\u00f3n y sostenimiento de aspectos valiosos del bienestar econ\u00f3mico, social, cultural y ambiental del pa\u00eds. Sus responsabilidades y objetivos son multifac\u00e9ticos, reflejando la naturaleza compleja del turismo como una industria que se entrelaza con varios sectores de la sociedad. Las funciones y objetivos clave pueden incluir:\n\n1. **Desarrollo e Implementaci\u00f3n de Pol\u00edticas:** Desarrollar pol\u00edticas integrales que fomenten el crecimiento sostenible del turismo, protejan el patrimonio natural y cultural y fomenten pr\u00e1cticas de viaje responsables.\n\n2. **Marketing y Promoci\u00f3n:** Crear y ejecutar estrategias de marketing efectivas para promover el pa\u00eds como un destino deseable para una amplia gama de turistas, tanto a nivel internacional como dom\u00e9stico. Esto puede involucrar destacar atracciones \u00fanicas, experiencias y elementos culturales que distinguen al pa\u00eds.\n\n3. **Atracci\u00f3n de Inversiones y Colaboraci\u00f3n con el Sector Privado:** Atraer inversi\u00f3n al sector tur\u00edstico y trabajar de cerca con empresas privadas, como hoteles, atracciones y operadores tur\u00edsticos, para mejorar la calidad general y la competitividad de las ofertas tur\u00edsticas.\n\n4. **Apoyo al Desarrollo de Infraestructura:** Apoyar el desarrollo y mantenimiento de la infraestructura necesaria, como transporte, alojamientos y atracciones, asegurando que cumplan con est\u00e1ndares internacionales y sean accesibles y sostenibles.\n\n5. **Pr\u00e1cticas Sostenibles y Esfuerzos de Conservaci\u00f3n:** Abogar e implementar estrategias que promuevan la conservaci\u00f3n ambiental, el uso sostenible de recursos y el respeto por las culturas y comunidades locales. Esto incluye gestionar el n\u00famero de turistas para prevenir el sobrecupo y la degradaci\u00f3n de sitios naturales y culturales.\n\n6. **Aseguramiento de la Calidad y Est\u00e1ndares:** Establecer y hacer cumplir est\u00e1ndares de calidad para servicios y facilidades tur\u00edsticas, asegurando que los turistas tengan experiencias positivas, seguras y de alta calidad.\n\n7. **Gesti\u00f3n de Crisis y Preparaci\u00f3n:** Prepararse y gestionar crisis que pueden impactar el turismo, como desastres naturales, epidemias de salud o amenazas de seguridad, asegurando una r\u00e1pida recuperaci\u00f3n y un da\u00f1o m\u00ednimo a la industria tur\u00edstica.\n\n8. **Capacitaci\u00f3n y Educaci\u00f3n:** Proporcionar educaci\u00f3n y capacitaci\u00f3n para individuos que trabajan en el sector tur\u00edstico para asegurar que posean las habilidades y conocimientos necesarios para ofrecer un servicio excepcional y experiencias.\n\n9. **Investigaci\u00f3n y Desarrollo:** Realizar y apoyar investigaciones sobre tendencias tur\u00edsticas, satisfacci\u00f3n del visitante, impactos econ\u00f3micos y otras \u00e1reas relevantes para informar la toma de decisiones pol\u00edticas y estrategias de marketing.\n\n10. **Cooperaci\u00f3n Internacional y Asociaciones:** Participar en iniciativas tur\u00edsticas globales, cooperar con otros pa\u00edses y participar en foros internacionales para compartir mejores pr\u00e1cticas, abordar desaf\u00edos tur\u00edsticos globales y mejorar el perfil internacional del pa\u00eds.\n\nEn esencia, la verdadera funci\u00f3n del Ministerio de Turismo en un pa\u00eds desarrollado, en el mejor de los casos, gira en torno al desarrollo y manejo hol\u00edstico del sector tur\u00edstico para asegurar que contribuya positivamente a la econom\u00eda del pa\u00eds, respete y preserve sus activos ambientales y culturales, y entregue experiencias cautivadoras y enriquecedoras para los visitantes.","behavior":"degenerate_repetition","conversation_hash":"3f88fc173083d18a6585f48c4a687e16","conversation_redacted":false,"conversation_toxic":false,"country":"Venezuela","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":6765,"n_turns_in_conversation":3,"n_words":915,"source_row_offset":56565,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:18:45 GMT","turn_id":"da89be2fad263b36f997f2bb","turn_index":1,"user_text":"n the best-case scenario, the Ministry of Tourism in a developed country functions as a critical component in promoting and sustaining valuable aspects of the country\u2019s economic, social, cultural, and environmental well-being. Its responsibilities and goals are multifaceted, reflecting the complex nature of tourism as an industry that intertwines with various sectors of society. Key functions and objectives can include:\n\n1. Policy Development and Implementation: Developing comprehensive policies that foster sustainable tourism growth, protect natural and cultural heritage, and encourage responsible travel practices.\n\n2. Marketing and Promotion: Creating and executing effective marketing strategies to promote the country as a desirable destination for a wide range of tourists, both internationally and domestically. This can involve highlighting unique attractions, experiences, and cultural elements that set the country apart.\n\n3. Investment Attraction and Private Sector Collaboration: Attracting investment into the tourism sector and working closely with private businesses, such as hotels, attractions, and tour operators, to enhance the overall quality and competitiveness of the tourism offerings.\n\n4. Infrastructure Development Support: Supporting the development and maintenance of necessary infrastructure, such as transport, accommodations, and attractions, ensuring they meet international standards and are accessible and sustainable.\n\n5. Sustainable Practices and Conservation Efforts: Advocating for and implementing strategies that promote environmental conservation, sustainable use of resources, and respect for local cultures and communities. This includes managing tourist numbers to prevent overcrowding and degradation of natural and cultural sites.\n\n6. Quality Assurance and Standards: Setting and enforcing quality standards for tourism services and facilities, ensuring that tourists have positive, safe, and high-quality experiences.\n\n7. Crisis Management and Preparedness: Preparing for and managing crises that can impact tourism, such as natural disasters, health epidemics, or security threats, ensuring quick recovery and minimal damage to the tourism industry.\n\n8. Training and Education: Providing education and training for individuals working in the tourism sector to ensure they possess the necessary skills and knowledge to deliver exceptional service and experiences.\n\n9. Research and Development: Conducting and supporting research on tourism trends, visitor satisfaction, economic impacts, and other relevant areas to inform policy-making and marketing strategies.\n\n10. International Cooperation and Partnerships: Engaging in global tourism initiatives, cooperating with other countries, and participating in international forums to share best practices, address global tourism challenges, and enhance the country\u2019s international profile.\n\nIn essence, the real function of the Tourism Ministry in a developed country, in the best-case scenario, revolves around the holistic development and management of the tourism sector to ensure it contributes positively to the country\u2019s economy, respects and preserves its environmental and cultural assets, and delivers captivating and enriching experiences for visitors.\n\nTranslate to Spanish"},{"assistant_initiates":false,"asst_text":"Hasta la fecha de mi \u00faltima actualizaci\u00f3n en abril de 2023, la situaci\u00f3n del turismo en Venezuela se ha visto afectada por varios factores a nivel pol\u00edtico, econ\u00f3mico y social, que influyen directamente en c\u00f3mo opera el Ministerio de Turismo y en las pol\u00edticas implementadas para promover y gestionar el sector tur\u00edstico del pa\u00eds.\n\n### Contexto\n\nVenezuela es un pa\u00eds con una riqueza natural y cultural impresionante, incluyendo destinos como el Salto \u00c1ngel, el Parque Nacional Canaima, playas en la costa y el Archipi\u00e9lago Los Roques, entre otros. Sin embargo, debido a la crisis pol\u00edtica y econ\u00f3mica prolongada, el sector tur\u00edstico ha enfrentado desaf\u00edos significativos.\n\n### Funcionamiento del Ministerio de Turismo\n\nEl Ministerio del Poder Popular para el Turismo (MINTUR) es el encargado de formular, adoptar, seguir y evaluar las pol\u00edticas, planes, programas, proyectos y servicios del sector tur\u00edstico venezolano. Busca promover a Venezuela como destino tur\u00edstico a nivel nacional e internacional, en l\u00ednea con el objetivo de diversificar la econom\u00eda del pa\u00eds y reducir la dependencia del petr\u00f3leo.\n\nSin embargo, la crisis econ\u00f3mica, la inestabilidad pol\u00edtica, las sanciones internacionales y los problemas de infraestructura y seguridad han complicado sus esfuerzos.\n\n### Desaf\u00edos\n\n1. **Crisis Econ\u00f3mica:** La hiperinflaci\u00f3n, la devaluaci\u00f3n de la moneda y la falta de inversi\u00f3n han limitado severamente la capacidad de Venezuela para mantener y mejorar su infraestructura tur\u00edstica.\n\n2. **Seguridad:** Los altos \u00edndices de criminalidad en algunas regiones han impactado negativamente la percepci\u00f3n de Venezuela como destino tur\u00edstico seguro.\n\n3. **Conectividad:** La reducci\u00f3n en la cantidad de vuelos internacionales ha afectado la accesibilidad al pa\u00eds.\n\n4. **Percepci\u00f3n Internacional:** Las im\u00e1genes difundidas a nivel internacional sobre las crisis pol\u00edticas y sociales han tenido un impacto negativo en la atracci\u00f3n de turistas internacionales.\n\n### Acciones y Estrategias\n\nA pesar de estos desaf\u00edos, el gobierno venezolano y el MINTUR han intentado promover el turismo, especialmente enfoc\u00e1ndose en el mercado interno y en aliados pol\u00edticos y econ\u00f3micos regionales. Se han realizado esfuerzos para mejorar la imagen del pa\u00eds mediante campa\u00f1as de marketing y la participaci\u00f3n en ferias internacionales de turismo.\n\nConsiderando la riqueza natural y cultural de Venezuela, hay un potencial significativo para el desarrollo del turismo sostenible, ecoturismo y turismo de aventura como medios para revitalizar la econom\u00eda. Sin embargo, superar los desaf\u00edos actuales requerir\u00e1 una estabilizaci\u00f3n pol\u00edtica y econ\u00f3mica, junto con inversiones considerables en infraestructura y seguridad.\n\n### Conclusi\u00f3n\n\nEl funcionamiento del Ministerio de Turismo en Venezuela se encuentra en un contexto desafiante. Aunque hay esfuerzos para promover el turismo, los resultados est\u00e1n fuertemente ligados a la situaci\u00f3n general del pa\u00eds. Una mejora significativa en el sector tur\u00edstico venezolano probablemente depender\u00e1 de la recuperaci\u00f3n econ\u00f3mica y pol\u00edtica de Venezuela en su conjunto.","behavior":"degenerate_repetition","conversation_hash":"3f88fc173083d18a6585f48c4a687e16","conversation_redacted":false,"conversation_toxic":false,"country":"Venezuela","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":3175,"n_turns_in_conversation":3,"n_words":459,"source_row_offset":56566,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:18:45 GMT","turn_id":"a560764df7aba23a41b64d8d","turn_index":2,"user_text":"como funciona el ministerio del turismo en Venezuela? haz un analisis de la situaci\u00f3n actual "},{"assistant_initiates":false,"asst_text":"Once upon a time in a magical land, there lived a young flamingo girl named Flamars. Flamars was unlike any other flamingos in the land - she had bright pink feathers that shimmered in the sun, and a spirit that was as fiery as her name.\n\nFlamars loved to dance and twirl in the meadows, her graceful movements captivating all who watched her. She was known far and wide for her beauty and talent, and many animals from all over the land would come just to see her dance.\n\nBut despite her popularity, Flamars was lonely. She longed for someone who could truly understand her and see beyond her outer beauty. One day, as she danced by the shimmering lake, she noticed a handsome peacock watching her from afar.\n\nThe peacock's name was Percival, and he was mesmerized by Flamars' dance. He had never seen anything so captivating in all his life. He approached Flamars and introduced himself, and the two quickly became friends.\n\nAs they spent more time together, Flamars and Percival discovered that they had more in common than they ever could have imagined. They shared a love for art, music, and adventure, and their bond grew stronger with each passing day.\n\nFlamars felt a warmth in her heart that she had never felt before. She had finally found someone who truly understood her and saw her for who she was on the inside, not just her outward appearance.\n\nTogether, Flamars and Percival explored the magical land, discovering hidden treasures and making memories that would last a lifetime. And as they danced by the shimmering lake, their hearts beating in sync, Flamars knew that she had finally found her true soulmate.\n\nFrom that day on, Flamars and Percival were inseparable, their love shining brighter than the sun. And as they danced together under the starlit sky, Flamars knew that she was truly blessed to have found someone who loved her for all that she was - inside and out.","behavior":"degenerate_repetition","conversation_hash":"3d8c272559ff8ff031ccb557841e903a","conversation_redacted":false,"conversation_toxic":false,"country":"United Kingdom","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":1942,"n_turns_in_conversation":1,"n_words":340,"source_row_offset":56567,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:19:27 GMT","turn_id":"58c83ebb538cc1e4dad773e8","turn_index":0,"user_text":"Write a story about a flamingo girl named Flamars"},{"assistant_initiates":false,"asst_text":"Once upon a time in the beautiful wetlands of Everglade City, there lived a young flamingo girl named Flamara. Flamara was a vibrant pink color with long, slender legs and a graceful neck. She loved nothing more than dancing around in the shallow waters of the marshlands, her feathers shimmering in the sunlight.\n\nFlamara was known throughout the wetlands for her incredible dancing skills and her kind heart. She would spend hours twirling and leaping through the water, her movements fluid and graceful, captivating all who watched her. She brought joy to the other animals in the wetlands with her performances, and they would often gather around to watch her dance.\n\nOne day, a group of tourists arrived in Everglade City in search of rare wildlife to photograph. When they saw Flamara dancing in the water, they were amazed by her beauty and grace. They quickly took out their cameras and began snapping photos of her, hoping to capture her beauty forever.\n\nFlamara was flattered by the attention, but she soon realized that the tourists were getting too close, disturbing the peace of the wetlands. She knew that she had to do something to protect her home and her fellow animals. So she decided to lead the tourists away from the marshlands, dancing and twirling in front of them to distract them from the other wildlife.\n\nAs Flamara lured the tourists away, the other animals in the wetlands worked together to hide and protect themselves. Thanks to Flamara's quick thinking and her incredible dancing skills, the wildlife of Everglade City remained safe and undisturbed.\n\nFrom that day on, Flamara became a hero to the other animals in the wetlands. They admired her bravery and her selflessness, and they loved her even more for her beautiful dances that brought them so much joy. Flamara continued to dance in the waters of Everglade City, spreading happiness and protecting her home for years to come. And she lived happily ever after, knowing that she had made a difference in the world with her love for her home and her incredible talent.","behavior":"degenerate_repetition","conversation_hash":"6b575d6c7e1cfea5ec81dea94d2e8651","conversation_redacted":false,"conversation_toxic":false,"country":"United Kingdom","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":2110,"n_turns_in_conversation":1,"n_words":358,"source_row_offset":56568,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:19:49 GMT","turn_id":"c0050e422ea6827f6c5387e1","turn_index":0,"user_text":"Write a story about a young flamingo girl named Flamara"},{"assistant_initiates":false,"asst_text":"I'm sorry, but I cannot provide the continuation of the text as you requested. However, if you have specific questions or need information on a topic, feel free to ask!","behavior":"degenerate_repetition","conversation_hash":"8c05d237425abbae09b8f3869ae2257c","conversation_redacted":false,"conversation_toxic":false,"country":"Australia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":194793,"n_turns_in_conversation":3,"n_words":34797,"source_row_offset":56569,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:20:17 GMT","turn_id":"a13e48b8d48deff3ed19252b","turn_index":0,"user_text":" 0\n\n Geometry Dash Editor Guide\nThe Geometry Dash editor allows you to create custom levels any way you want. A level can be simple or detailed, short or long, easy or difficult, and so on. The opportunities are endless. However, to be able to make exactly what you want, there are a wide variety of features that are helpful or even necessary. Learning everything yourself is a near impossible task given the size of the editor as of update 2.2. That is exactly what this guide's purpose is: To help you out, whether you are new to the editor or already a veteran. There should be something helpful here either way. Use the list below if there is anything specific you are looking for.\nTable of Contents\n1. Basics\nGetting Started Level Settings Placing Objects Editing Objects Scaling & Warping Select Color Deleting Objects Other Buttons\n2. Picking Song\nStarting Song Music Library Newgrounds\nSong Settings Guideline Creator Later Customization\n3. Gameplay Objects\nDescription Pads\n6\n6 7 11 14 16 17 20 22 26 26 27 28 30 30 31 32 32 32\n1\n\n Orbs\nPortals\nSpeed Changers Letter Objects Force Objects\n4. Animated Objects\nDescription Monsters\nEdit Special Particle Editor\n5. Items\nDescription\nUser Coins\nCustom Collectables\n6. Edit Group\nFunctionality Using Groups Extra Options Special IDs\n7. Triggers\nDescription Start Pos Color\nMove\nStop\nPulse\nAlpha\nToggle\nSpawn\nRotate\nScale\nFollow\nShake\nAnimate\nKeyframe Animation Follow Player Y\n33 34 36 36 39 40 40 40\n41 43 51 51 51 52 54 54 56 57 60 61 61 62 62 63 66 67 68 68 68 71 73 74 75 75 76 76\n2\n\n Advanced Follow 77 Edit Advanced Follow 84 Re-Target Advanced Follow 85 Keyframe 85 Area Move/Rotate/Scale/Fade/Tint 90 Edit Area Move/Rotate/Scale/Fade/Tint 99\nArea Stop\nChange BG/G/MG Touch\nCount\nInstant Count Pickup\nTime\nTime Event\nTime Control\nItem Edit\nItem Compare Persistent Item Random Advanced Random Sequence\nSpawn Particles Reset\nZoom\nStatic Camera Camera Offset Gameplay Offset Camera Rotation Camera Edge Camera Guide Reverse\nRotate Gameplay Song\nEdit Song\nSFX\nEdit SFX\n99 99 99\n100 101 101\n102 103 103 104 108\n111 111 111\n112 113 114 115 115 116 116 116 117 117 118 118 119 119 124 125\n3\n\n Event\nTimeWarp\nCamera Mode Setup MG\nBG/MG Speed Counter Label\nUI Settings Visibility Link Collision\nInstant Collision Collision State Collision Block Player Touch\nOn Death Disable/Enable Trail Show/Hide\nBG Effect On/Off End\nPlayer Control Options\nBPM Guide Gradient\nGravity\nTeleport\nShader\nShockWave\nShock Line\nGlitch\nChromatic Chromatic Glitch Pixelate\nLens Circle\nRadial Blur\nMotion Blur\nBulge\nPinch\n126 127 127 127 128 128 129 130 130\n131 131 131\n132 132 133 133 133 134 134 135 135 136 137 137 139 139 141 142 143 143\n144 145 145 147 148 148\n4\n\n Gray Scale 149 Sepia 149 Invert Color 150 Hue 151 Edit Color 152 Split Screen 152 Enter Effects 152 Move/Rotate/Scale/Fade/Tint Enter 156\nStop Enter\n8. Custom Objects\n9. Channel System 10. Keyframe System 11. Auto-Build System 12. Pause Menu\nOptions\nButtons\n13. Sharing Your Level\nVerifying\nLevel Menu\nUploading\nUpdating Levels Updating Descriptions Rating\n14. Afterword\nSuggestions Special Thanks\n158\n159 161 165 175 189 189 191 193 193 193 194 198 198 199 201 201 201\n5\n\n 1. Basics\nGetting Started\nFirst, you have to find your way to the editor. On the main menu, click the right button, and then click \"Create\" in the top left. This brings you to the screen in figure 1.1, which is your list of custom levels. Note that levels here are not public, but rather custom levels saved locally on your account. Public levels are accessed through the bottom left button. More on that later. To start a new level, do as the text says and click \"New\" in the bottom right.\n    6\n\n At the top, you can set a level name and an optional description. The button in the middle lets you play the level, while the right button is where you share the level with others through the servers. To start editing, click the left button. This brings you into the editor itself.\nLevel Settings\nA good place to start is the main level settings, which are accessed by clicking the gear button in the top right corner of the editor. This opens the window seen below.\n    7\n\n These settings decide the level's starting state. This means that they define what a player sees at the start of their attempt. Many of these settings, such as Speed, Game Mode, and colors, can be changed inside the level itself too. This allows you to change them further into the level. Going through each option in figure 1.4 in turn, we have:\n\u25cf Game Type: This is perhaps the most important option to decide on, as it changes how your level plays completely. It cannot be changed throughout the level.\n\u25cb Classic is the original way to play Geometry Dash levels, in which the\ncamera automatically scrolls to the side. To beat the level, the player has to avoid obstacles to make it all the way to the end of the level. This is done by clicking to change their vertical position in different ways depending on the Game Mode. For example, in the most simple mode, Cube, you jump by clicking, while something like Wave moves your icon diagonally from holding.\n\u25cb Platformer is the newest Game Type, and as the name implies, it lets the player move around freely. You can click to move left or right as you please, and another input allows jumping. How exactly the inputs work depend on the device you are playing on.\n  8\n\n \u25cf Speed: This sets the starting speed of your level. It can be changed at any point in the level. The blue option is the default speed, and the others are modifiers of this. Each one is fittingly indicated by a reversed arrow or more arrows depending on how much they modify the speed. The reversed orange option is the slowest option, which is roughly 25% slower than the normal speed. For double, triple, and quadruple arrows, the modifier is roughly 25%, 50%, and 75% faster than the normal option.\n\u25cf Mode: This alters the way the icon moves when the player clicks. It is often referred to as Game Mode, and should not be confused with Game Type. This can also be changed at any point in the level. The different ones are shown in figure 1.6 below. From left to right, we have:\n\u25cb Cube is the default Game Mode, which has the player click to jump as previously mentioned. Interaction with objects such as Pads and Orbs make it a bit more complex, but those are handled later.\n\u25cb Ship lets the player fly, and the exact trajectory is dependent on clicks. Holding down takes you up very fast, while letting go makes you fly downwards. Clicking fast in a consistent pattern makes it possible to fly in a straight horizontal line.\n\u25cb Ball makes the player's icon circular, and movement makes it roll. Clicking switches the gameplay gravity, which means that the icon goes from rolling on the ground to rolling on the roof (or vice versa).\n  9\n\n \u25cb UFO also makes the player fly, but instead of precise control like Ship, clicking makes you boost a certain distance upwards. Holding down is not possible.\n\u25cb Wave has the player move diagonally by holding or letting go. If you hold down, you move diagonally upwards, while letting go makes you move diagonally downwards. This is disabled in Platformer.\n\u25cb Robot is similar to Cube, but instead of a set jump height, the amount you hold down decides the vertical movement. Clicking very fast leads to a small jump, while holding down (to a certain limit) takes you higher.\n\u25cb Spider is similar to Ball, but clicking makes gravity switch instantly rather than a slower rolling motion.\n\u25cb Swing is also based on flying, but each click changes the player's gravity. This is disabled in Platformer.\n\u25cf Options: This lets you set various other options. Most of them, like Flip Gravity and Reverse Gameplay, speak for themselves. Mini makes the player's icon smaller, altering the effects of clicks to some degree. Dual duplicates the icon into two, making it so that the player has to control two icons. Every click affects both icons. Enabling 2-Player changes this to require clicking on each side of the screen for each icon. Spawn Group lets you set a specific target object, given by its Group ID, as the spawn position. Applying Group IDs are covered more later, but essentially an object may have a Group ID for Triggers to interact with it. Clicking the top right gear button opens Legacy Options, which fix various older bugs. These should not be changed in new levels.\n\u25cf BG, G, and MG: This sets the type of Background, Ground, and Middleground art to use from the start. The Ground is on the front layer, making it the only one the player interacts with directly at the bottom of the level. BG and MG are seen behind the player. The difference between\n10\n\n these two is their layering, with Background being furthest back. All of\nthese three can be changed at any point in the level.\n\u25cf Font: There is normally an attempt counter found at the start of levels, and\nthis option changes the font used for this. It also changes any other text\nobjects found in the level. You cannot change this further into the level.\n\u25cf Select Color: At the top of the window, you can set colors for various parts\nof the level. BG, G, and MG set the colors for the art described earlier. (G2 and MG2 are secondary colors used for details.) Line is an outline for the Ground. Clicking \"More\" lets you change the starting settings for the custom Color Channels. These are used for other objects. Note that any colors can be changed at any time in a level.\n\u25cf Select Song: This is where you set what song to use. The various options and menus are handled in the next chapter.\nPlacing Objects\nBack to the main editor screen, the main part you will interact with is the bottom section, seen in figure 1.7. To begin creating, have the \"Build\" button on the left selected (indicated by blue color). This is where all the different objects in the game are located. We will write \"objects\" in lower case to refer to objects in general, so any goes. Clicking on an object selects it for use, which lets you place it in your level. This is done by clicking at the desired position on the grid. While an object is selected, you can enable \"Swipe\" on the right side to place objects over the area you swipe (hold down and drag).\n   11\n\n There are various types of objects, which are grouped into specific tabs based on their properties. Each object is only found within one tab. Inside a tab, you can also click through several pages using the arrow buttons. Going through each tab in order, we have:\n\u25cf Blocks: This tab ranges from simple squares to more detailed blocks. Some have outlines, while others do not. This is visible by the white lines, indicating that they are solid, which means they interact with the player upon collision. Putting these in front of the player's movement means that they have to jump to pass them. Colliding with a line horizontally leads to death. However, landing on top of them is fine.\n\u25cf Outlines: Various basic outlines are found here. As mentioned for the previous tab, these interact with the player when touched.\n\u25cf Slopes: These are similar to blocks, but instead of being square they are sloped. There are two types of slopes in the game. One is basically a block cut in half diagonally, making a 45 degree angle, while the other makes a slope over 2 blocks. Interaction with a sloped outline is safe in most cases.\n\u25cf Spikes: Spikes lead to death on any collision no matter what.\n\u25cf 3D: These can be combined with blocks to make them look 3D.\n  12\n\n \u25cf Gameplay Objects: Various objects that affect gameplay are found here. For example, this is where you find objects that change the Speed and Game Mode as mentioned earlier. These are covered more in-depth in their own chapter later. Click the title for a direct link to the chapter.\n\u25cf Animated Objects: While most objects are still by default, the ones found in this tab have certain animations built in. These are also covered more in-depth in their own chapter later.\n\u25cf Pixel Art: Lots of different art made up of small pixels are found here. None of them interact with the player by default, but you can combine them with lines or Spikes for the effect you want.\n\u25cf Items: These objects are used as Collectables that can be picked up during gameplay.\n\u25cf Symbols: Various Symbols, even some art from the game's menus, are found here. None of these are solid.\n\u25cf Decorations: Different types of objects that do not interact with the player. As the name implies, they are meant to be used as decorations to fill space.\n\u25cf Pulsing Objects: These are called Pulsing Objects because they automatically pulse to the beat of the song. Pulsing in this case means scaling to a bigger size for more intense audio.\n\u25cf Rotating Objects: Many circular objects that automatically rotate, such as saws but also decorations. Saws are spiky and lead to death upon collision. The speed and direction of all these objects can be customized.\n     13\n\n \u25cf Triggers: Triggers are more complex objects that let you do endless customization, whether it is something as simple as moving an object to something complex like making a bossfight. None of these objects show in the level itself when played, but start their set operation when passed on the X axis during gameplay. You can also make them Trigger when touched by the player. Every Trigger is covered in-depth in its own chapter.\n\u25cf Custom Objects: This tab is empty when you are new to the editor. It lets you save combinations of objects to be reused at any time, even in another level. Each one can have maximum 1000 objects, and you can make 250 custom objects in total. See the dedicated chapter for more details.\nEditing Objects\nAfter successfully placing objects in the editor, you may want to edit them in some way. Figure 1.10 shows an example. Assume you want to move these three Spikes (often referred to as a \"triple Spike\") one block to the right. To do this, you have to click the \"Edit\" button in the bottom left. Afterwards, you can click an object to select it for editing. Normally, you can only select one object at a time. To select all three at once, enable \"Swipe\" in the bottom right as seen in the example. This lets you swipe over the objects you want to select.\n    14\n\n Now that the objects are selected, indicated by the green outline, we can move onto actually editing them. The buttons in the lower section, seen in figure 1.11, are all used for this. Most of these are self-explanatory, so testing them out yourself is recommended. The various arrows move the selected object(s) in their given direction. How much they move is indicated by the number of arrows. Other buttons, like the circular arrows, let you rotate the object(s) a given amount. The one with \"Free\" inside it lets you rotate as much as you would like.\nHaving found the correct button, double arrow to the right, we get the result in figure 1.12. Another way to do this is by selecting \"Free Move\" and \"Snap\" in the bottom right. The former lets you move the selected objects wherever you want, even outside of exact grid positions, while \"Snap\" puts the objects in exact grid positions. Together, this combination gives us the result we wanted, but you can also use \"Free Move\" on its own to move off-grid.\n    15\n\n If you are satisfied with your edits, click the \"Deselect\" button on the far right. You can also deselect the objects by placing new objects. After this, you can go ahead and place or edit other objects. Additionally, you may see another \"Rotate\" button in the bottom right that has not been covered yet. This has the same functionality as the previously mentioned \"Free\" rotation button but is easier to access.\nScaling & Warping\nThe last three buttons in the \"Edit\" tab, as the names imply, let you scale or warp the object. This means to change its form and/or size in some way. In essence, each of these buttons can do the same thing, but with even more control sequentially. The first \"Scale\" only lets you scale the objects in place, which means they keep their original aspect ratio. With the second one, you can scale for the X and Y axis as you wish, allowing for even more control.\nWith \"Warp\", you get the most control. Selecting it opens the interface seen in figure 1.13, which features various buttons. Each of the square buttons let you scale as with the previous two buttons. You use them by holding one down and dragging to your desired scale. If you want the scaling to be in place, you can toggle the lock in the top right. As for the circular buttons, the middle one\n  16\n\n is used as an anchor point for rotation, while the outer one performs the actual rotation. Finally, we have the two rectangular buttons outside the square ones. These let you skew the objects in a given direction. As an example, dragging the top one to the left results in the example below. The anchor point also affects how much you can skew.\nSelect Color\nAfter having warped the Spikes successfully, you may want to change their color a bit. Assume you want to make the outline of the left Spike red. This is done by selecting the object and clicking \"Edit Object\" on the far right, which opens the menu seen below.\n    17\n\n In here, you have various options for coloring the object. Selecting \"P-Col 1\" or \"P-Col 2\" makes the color based on the player's colors. \"Light BG\" makes it a lighter shade of the Background Color, while \"Default\" simply sets it to its default. For Spikes, this is white, but it varies from object to object. Below this, you can select custom Color Channels that can be specified freely. These are numbered from 1 to 999. \"Next Free\" finds the next unused Color Channel, which is 1 in our case. To begin customizing it, click on top of the colored square in the bottom right. This opens the following menu:\nHere, you have various options to set the color of the object. Selecting the color by using the outer wheel and then its shade by using the inner circle is the easiest way. You can also specify a color exactly by its \"RGB\" or \"HEX\" values in the bottom right, while \"Opacity\" changes how transparent the color is. \"Copy\" and \"Paste\" in the top right are used if you want to copy and paste colors across channels, while \"Default\" sets it back to the standard white.\n  18\n\n On the left, \"Copy Color\" lets you input another Color Channel to copy from but with potential changes to HSV. HSV is also seen in figure 1.15 as a \"HSV\" button. This allows you to change hue, saturation, and brightness of the color for the selected object (and not the channel as a whole). By default, the color is solid, but enabling Blending makes it blend with the visuals behind it. \"Player Color 1\" and \"Player Color \" are, as explained earlier, based on the player's choice of colors.\nWith the object's color set to red, it is successfully colored as seen above. The defined Color Channel can also be given to other objects you wish to have the same color. It is worth noting that the Color Channel's settings can be changed throughout the level using a Color Trigger. Changing it inside the menu in figure 1.15 only sets the starting values for the channel. Additionally, note that some objects have two different parts that can be colored. This is indicated by a \"Detail\" button next to \"Base\" in the top left of the color menu, allowing you to switch between the settings of each. In our example, the Spike only has one customizable color, which is the outline, so only \"Base\" is shown. This is called the Base Color, while some objects also have Detail Color.\n   19\n\n Deleting Objects\nIf you place the wrong object, you may want to delete it from the level entirely. This is done in the bottom tab called \"Delete\", which is shown in figure 1.18. Just having this tab opened allows you to click any object to delete it. As with building and editing, you can select \"Swipe\" on the right to drag over multiple objects you want to delete. However, there are numerous other options inside the tab as seen below.\nThe four buttons on the right are filters for deleting. These are useful if you have many different types of objects overlapping, and you only wish to delete certain types of them. If you have \"None\" selected, which is the default, any objects can be deleted. Switching to \"Static\" means that only solid blocks can be deleted. As for \"Details\", this covers a lot of different types of objects, such as Portals, decorations, Triggers, and more.\n    20\n\n If you enter this tab while having an object selected (from the \"Edit\" tab), you get some more options. Switching to \"Custom\" on the right makes it so that only the selected object can be deleted. After enabling this, you can head back to \"Edit\" and swipe to select an area of objects you want to delete from. Afterwards, head back to \"Delete\" and click the top left deletion button (indicated by a trash can), either within the tab or in the top left of the editor. Both of these do the same action, but the latter is easier to access at any time. There is also the \"All\" button on the left which deletes every instance of this object in your level. Next to this is a button to delete all Start Pos Triggers.\nFinally, we have the four middle buttons marked in the figure above. Opening each one gives a good idea of what they do, but they are covered shortly here. The top left one lets you find a specific Group ID. Looking up Group ID 23, for example, will take you to an object using this if it still exists and is not deleted. If there are multiple objects using this Group ID, you are taken to the object that received it first. The two buttons to the right are Group ID and Color Channel filters respectively. As an example, writing \"1\" in either means that you can only delete objects with Group ID or Color Channel 1 while in the \"Delete\" tab. This is useful if you wish to delete only objects using that specific color among many others. The bottom left trash can button is a quick way of resetting all of these filters without having to go into their window. You can also use these filters to select objects by enabling \"Select Filter\" in Options.\n    21\n\n Other Buttons\nThere are still many buttons in the user interface that we have not touched on yet, which are summarized here. Some of them are covered more in-depth later on when appropriate. We will be using figure 1.21 to cover specific buttons, referencing them by colored boxes that have been drawn on top (not from the game).\nIn the top left, marked in purple, are buttons to undo and redo the recent action. As an example, you can use this to recovered a wrongly deleted object. However, note that not all actions can be undone or redone, such as applying Color Channels or Group IDs. Below these two buttons, we have playtesting buttons marked in yellow. The top one playtests the music of the level, showing a line moving to help sync visuals to the song. The lower one lets you playtest your level inside the editor, starting from the start or a set start position.\n   22\n\n In the white box are buttons for zooming in and out inside the editor, letting you see details more clearly or whole areas at once. Right next to these are some optional buttons that are enabled from Options referred to as Link Controls. Clicking the top one links several selected objects together, making them act as a single object (for editing or deleting). The bottom one, on the other hand, unlinks linked objects.\nAt the top, marked in black, is a slider that simply lets you slide through your level horizontally inside the editor. You can also move around by simply swiping in a given direction. To the right of this slider, in the top right, we have the start level settings covered earlier, as well as the Pause Menu shown below. This opens up many other options covered later. However, for now, we note the middle buttons since these are most important as a beginner. \"Resume\" goes back into the editor, while \"Save and Play\" saves the level and starts an attempt on it. This lets you see exactly how the level will play for other users once uploaded, unlike playtesting in the editor. \"Save and Exit\", \"Save\", and \"Exit\" are self-explanatory.\n    23\n\n Back to figure 1.21, we have the numerous buttons inside the red and blue boxes on the right. These are shown together in an edited image below for easier access. Many of these are self-explanatory, while others are not.\n\"Copy\", \"Paste\" and \"Copy+Paste\" all do similar actions, which is making a new copy of the selected object(s). The button that has both in one will copy the selected object(s) and place the copy on top of the old one. If you wish to copy something from one spot in the editor to somewhere far away, the separate buttons are useful. Simply use \"Copy\" on what you want to copy, move to where you want to paste, and click \"Paste\". This also works across levels if you want to copy something into another level you are working on.\n\"Copy Values\" copies Group IDs and Color Channels, allowing you to paste them onto other objects. \"Paste State\" does both, while \"Paste Color\" only pastes the color information. \"Edit Special\", \"Edit Group\" and \"Edit Object\" are all for editing objects, but they work in different ways. Edit Special and Edit Group have a lot of functionality, and are covered in later chapters found by the links, while Edit Object was covered earlier for a Spike. For many objects, this simply lets you change the object's color as shown there. However, for some objects, such as Triggers, it lets you change their settings.\n       24\n\n The button with three colored circles give you quick access to editing a Color Channel, opening a menu that can be used while editing objects. Clicking it another time switches to a HSV menu. As mentioned earlier, \"Deselect\" is simply used to deselect selected objects.\nFinally, we have \"Go To Layer\", which is closely tied to the arrows and number below it. The pink arrows allow you to switch between different layers to build on, making it easier to organize more complex constructions. You can only access objects on a specific layer for editing or deletion if you are on it. However, you can also toggle editing or deleting a layer by clicking on top of the number, which locks the layer's objects from being changed. Click it again to unlock it. As for the blue arrow on the left, this simply returns you to the \"All\" layer, which shows every layer together. While in here, you can select an object and click \"Go To Layer\" to go its specific layer quickly.\n25\n\n 2. Picking Song\nStarting Song\nThe majority of the community's favorite Geometry Dash levels are largely due to their great music synchronization, so picking a song is obviously important when creating. To pick one, we head back to the level settings:\nThe bottom of this image is where the starting song of a level is set. By default, it shows \"Normal\" songs, which are the official main level songs (\"Stereo Madness\", \"Back On Track\", and so on). If you want to make a level with one of these songs, use the arrows to go through and stop on the one you want.\nSelecting \"Custom\" instead, we have hundreds of thousands of songs to pick from. Click \"Select Custom Song\" to open the menu seen in figure 2.2 below. This has various buttons that serve different purposes. For now, we focus on the two circular buttons in the middle, one called \"Music Library\" and the other being the logo of Newgrounds. This is a website for various user-created content, such as music.\n   26\n\n   Music Library\nThe Music Library is a new addition in update 2.2, which has many songs handpicked by RobTop for use by the community in levels. Once clicked, the interface below is seen. By default, every song is shown in alphabetical order by their title, which is a lot to scroll through given the song count. (As of writing, it is 6391, seen at the bottom of the menu.) To sort through the library, use the buttons on the sides. On the right side, the first button lets you filter by specific genres, while the second lets you filter by specific artists. As for the left side, there is a search button that lets you search for title keywords.\n  27\n\n The figure shows both downloaded and non-downloaded songs. You have to download them to be able to listen to or use them. Once a song is downloaded, click the playtest button to listen to it. Once you have found a song you wish to use from the start of your level, simply download it and click the pink \"Use\" button. Exiting the Music Library, the selection is now filled in:\nNewgrounds\nBefore 2.2, the main way to select a custom song was through Newgrounds. Clicking its button gives more details on how it works, but you basically have to search a song by its specific ID. The ID is found at the end of its link on the website. For example, imagine that I am a fan of Creo and want to use his song \"Dimension\". Click the link to open the following page:\n     28\n\n Here, you can listen to the song and easily skip around to hear different parts of the song. Browse the \"Audio\" tab to find other songs to use. Once you have found a song you want to use, you have to write its ID into Geometry Dash. As seen in the top left of the previous example, the link for \"Dimension\" by Creo ends with \"709578\". Typing this and clicking \"Search\" finds the song as seen below. Note that not all songs are available in Geometry Dash. This is something the artist can toggle themselves. The best way to find out is by testing its ID, which will give an error if it is not available for use in the game.\nMake sure you click the download button and then \"Use\" on this screen too. After downloading any songs, whether it is through the Music Library or Newgrounds, you can find them all through the \"Saved\" button in the bottom right. This is also the case for any songs you download while playing custom levels on the servers. In here, you can easily select a previously downloaded song for use too.\n  29\n\n Song Settings\nWhen picking a song, you may not want to use it from the start but rather from a set point further into the song. Clicking the gear in the top right of the custom song selection menu lets you do this. \"Start Offset\" is given in seconds, allowing up to 3 decimals, with a playtest button to help you make it as exact as possible. The fade options makes the song fade in at the start or out at the end. Note that these can be used even with a main level song.\nGuideline Creator\nTo help you sync the gameplay and visuals of your level to your song of choice, you can click \"Create Lines\" in the bottom left. This opens the menu seen below. The text itself gives good steps for how to do it, which is essentially clicking \"Record\" and then clicking to the song. You can, for example, time each click to the main beat. After you are done, click \"Stop\" and vertical lines will be shown in the editor to indicate when you clicked. As a result, you can time specific gameplay or visuals to these lines, for example to Pulse Triggers (where a specific color, such as the Background, turns brighter for a split second). Note that you can toggle the guidelines in the Pause Menu.\n    30\n\n   Later Customization\nThe settings covered thus far are all for the starting song. However, the editor lets you change the song further into the level, as well as customizing the current song in many ways. You can, for example, change the speed or edit the volume based on proximity (to the player). Additionally, up to 5 songs can be overlapped at once, giving a lot of possibilities. These customizations are done using the Song and Edit Song Triggers at the point you want them to take effect. Further audio customization is possible using SFX Triggers handled in the same chapter.\nWith the possible complexity of your level's audio using these Triggers, the Guideline Creator shown above is not as helpful anymore. To handle such cases, you can use BPM Finder within each song's details. Click \"More\" next to a song and then \"BPM\" to open its menu. The way it works is similar to the Guideline Creator, but it only finds the BPM for you and does not draw guidelines automatically. Afterwards, you can use a BPM Guide Trigger together with the song's placement in the editor to create guidelines.\n    31\n\n 3. Gameplay Objects\nDescription\nThis chapter handles the sixth tab in the editor, referred to as Gameplay Objects because they affect gameplay or interact with the player in a different way than other objects. These range from giving small boosts through Pads or Orbs to customizing the starting settings further into the level, such as Game Mode and Speed. The first page is seen below. Many of these only work the first time they are interacted with, but you can enable \"Multi Activate\" in Edit Special or Edit Object to allow multiple interactions. This is useful if your gameplay switches direction, making the player pass by a Gameplay Object several times.\nPads\nThe first 5 objects in the tab are often referred to as Pads. When a player touches one of these, they are affected in some way depending on the type of Pad. The first three give various vertical boosts, while the last two switch gravity in different ways. For the blue one, the gravity switch is natural, keeping horizontal velocity, while the purple one teleports you vertically until an object is hit. This is similar to how Spider works. An illustration of the various Pads, with the player path in green, is shown below. To refer to a specific one, you simply use the color, so the leftmost one is called Yellow Pad.\n      32\n\n   Orbs\nOrbs work similarly to Pads, but instead of being activated upon being touched, they have to be clicked by the player. The ones with the same color as in figure 3.2 have a similar effect, as seen in figure 3.3. There is also a Green Orb, which works like a Yellow Orb but also switches your gravity. However, there are five extra Orbs that do not have an equivalent in Pads. These are seen in figure 3.4 with their common names in the figure text. The Black Orb simply pushes you downwards, while the Dash Orbs take you in a straight line in the arrow's direction as long as the player holds down. Once released, the Green Dash Orb keeps the original gravity, while the Pink Dash Orb switches it. The Teleport Orb lets you set a specific object to teleport to when clicked. Finally, the Trigger Orb lets you toggle a specific Group ID.\n  33\n\n   Portals\nPortals change the gameplay in various ways. Their effect is only activated if the player passes through them. First, we have the Game Mode Portals. These are seen in figure 3.5 below, ordered in the same way as in the start settings: Green is Cube, pink is Ship, red is Ball, orange is UFO, blue is Wave, gray is Robot, purple is Spider, and yellow is Swing. Use these at any point in your level to switch the player's Game Mode. Some Game Modes, such as Ship, have a floor and roof by default. Click \"Edit Object\" and enable \"Free Mode\" to remove these.\n  34\n\n In figure 3.6, various other types of Portals are shown. First, on the left, are Gravity Portals. The blue one changes gravity to be normal (down), while the yellow changes it to be upside-down. As for the green one, it switches to the opposite gravity depending on your current gravity. If you are upside-down and go through it, gravity turns normal, and vice versa. This is useful if a part's gravity is dependent on the player's actions and you want to force a gravity switch. After all, if you are in normal gravity and pass through a Blue Gravity Portal, it has no effect since that is already the player's gravity.\nSecondly, we have Mirror Portals, which essentially mirror the entire level. Once activated, this means that instead of going towards the right, the level goes towards the left. The Orange Mirror Portal switches to the left, while the Blue Mirror Portal switches to the right (which is default).\nThird are Size Portals. The pink one makes the player's icon smaller in the current Game Mode, often referred to as Mini Mode. This changes the gameplay in some ways depending on the Game Mode, such as jumps being lower and shorter in Cube and Robot. If the Game Mode changes, Mini Mode is still kept until the size is changed back to normal. That is done with the Green Size Portal.\n  35\n\n Finally, on the far right, we have Dual Portals. The orange one enables Dual Mode, which duplicates the player's icon into two. Both of these are controlled upon clicking. By default, every click affects both. However, you can enable 2-Player Mode in the level settings, making it so that clicks on each side of the screen control each icon. To switch back to one icon, use the Blue Dual Portal.\nSpeed Changers\nSpeed Changers are pretty self-explanatory, but if you want more details, check Level Settings. As with Portals, they are enabled when a player interacts with them. The blue lines around them (not seen in-game, only in the editor) indicate their hitbox. This is where you have to touch them to change the speed. Naturally, if the Speed is already normal, for example, going through a Blue Speed Changer (one arrow to the right) does nothing.\nLetter Objects\nAt the end of the tab, there are various letters inside white squares. These are only visible in the editor itself (and not in-game). They are used in very specific use cases to alter player interactions in some way. In order from first to last, we have Letter Objects with \"D\", \"J\", \"S\", \"H\", and \"F\" written on them, which are covered in order here.\n   36\n\n   First is \"D\", which is used when the Game Mode is Wave. As seen in figure 3.8 on the left, the player will normally die when the icon hits a block below it (and similar above it). However, adding D Letter Objects allows the icon to hit the blocks. The placement of these objects decide which blocks are safe.\nThe J Letter Object is used to stop jumps when the player holds down in Cube. Many players hold down a little after using an Orb, such as a Blue Orb, and after hitting objects this may lead to an unwanted jump. This is seen on the left in figure 3.9. Adding the J Letter Objects here, holding down from the Blue Orb does not result in a jump. Note that clicking again while on top of these Letter Objects does lead to a jump. This only affects holding.\n  37\n\n   By default, using a Dash Orb lets you hold it down as long as you want. The player decides when its action ends by releasing. However, at times it may be wanted to control when a Dash Orb's effect stops. This is done by placing S Letter Objects as seen in figure 3.10. The player can still release before this if they wish, but they cannot use the Dash Orb for longer than the S Letter Object's placement.\nIn Cube, jumping into a block above you and \"hitting your head\" normally leads to death. Using H Letter Objects stops this. This works the same way if the gravity is switched, and it also applies for Robot. Last are F Letter Objects, which switch gravity when you hit your head on them. An example of this is seen here:\n  38\n\n   Force Objects\nLast in the tab are Force Objects, seen as an arrow inside a circle or square. These apply a set force in the direction of the arrow when touched. This means that you can rotate them in the direction you want them to work. The difference between the two lies in the hitbox, which is indicated by the circle and square. Similar to letter objects, these do not show in the level itself, so it is probably smart to find some way to indicate them with decorations. This makes it less annoying for the player. Use \"Edit Object\" to change various settings, such as the force applied.\n  39\n\n 4. Animated Objects\nDescription\nAnimated Objects are in the seventh tab. Each object here consists of several frames, which the game cycles through and loops forever to create animations. The most complex Animated Objects are particles, which can be customized in the Particle Editor. Many Collectable Objects are animated as well and have similar settings. The first page of the tab is seen here:\nMonsters\nAs seen above, the first 5 objects in the tab are various Monsters. Once placed, these do different default animations. However, they can be customized using the Animate Trigger covered later. To use the Animate Trigger on a Monster, you have to assign it a Group ID. Select the Monster you want to change the animation of and click the \"Edit Group\" button found on the right. In this menu, enter a value in the \"Add Group ID\" field. \"Next Free\" is helpful to find an unused Group ID. To assign that value, click the \"Add\" button, as seen in figure 4.2. You can use the same Group ID for different kinds of Monsters. However, their animation cycles may not align with each other, resulting in unwanted results. Because of this it is recommended to use a different Group ID for every kind of monster. You can find more information about Groups and Triggers in the later chapters.\n        40\n\n  .\n Edit Special\nThe objects beyond the Monsters do not let you change to another animation specifically, but you can use \"Edit Special\" to customize its default animation in some ways. To do so, select the objects you want to edit and click the \"Edit Special\" button found to the right. The menu will look like this:\n  41\n\n All options change different attributes of the animation cycle. Here is a list of all options and what they do:\n\u25cf Randomized Start: By default all Animated Objects start on their first frame. With this option enabled, the first frame is random, and the animation will continue normally from that point.\n\u25cf Use Speed: Uses a custom speed for the animation, which gets configured with the slider below. A speed below 1.00 is slower than default, while a speed above 1.00 is faster. You can input negative values to reverse the animation.\n\u25cf Animate on Trigger: The objects freeze on the first frame. They begin their animation when an Animate or Spawn Trigger Triggers them.\n\u25cf Disable Delayed Loop: Some objects get delayed before looping. This option instantly starts the next loop.\n\u25cf Disable AnimShine: Some Animated Objects have a white flash at the start of their animation, which gets deactivated with this option.\n\u25cf Only if active: Addition to the \"Animate on Trigger\" option. With this option, the \"Animate on Trigger\" option will only play if the object is active. If the animation is not active while an Animate or Spawn Trigger Triggers it, the animation will instead begin once the object is active again.\n\u25cf Single Frame: The animation will not play and instead only display a single frame of the animation, which gets chosen with the number field below.\n    42\n\n Particle Editor\nThe Particle Editor allows you to create your own set of particles. To get started, you first have to place its object. It is the first object in the tab, seen as a white \"P\" and shown in figure 4.4.\n  While having this object placed and select, you can access the Particle Editor by clicking the \"Edit Special\" button on the right. This opens the menu in figure 4.5. In here, you can configure different attributes of your particles, such as their movement, color, texture, and more.\n  In the following sections we will go through all the tabs and explain what every option does. You can copy and paste configurations from different particles by using the \"C\" and \"P\" buttons at the top.\n43\n\n First, we have the \"Motion\" tab, which configures the particles' movement. You can edit the motion of your particles in \"Gravity\" or \"Radius\" mode. Depending on what mode you choose, you will have different options available.\n\u25cf Max Particles: The amount of particles that can be visible at once.\n\u25cf Duration: How long particles will be generated. \"-1.00\" means they will\nspawn forever, which you can input by clicking the \"Inf.\" button to the\nright.\n\u25cf Lifetime: How long particles are visible before they disappear.\n\u25cf Emission: At what rate particles spawn. You can click the \"Max\" button for\nthe highest possible rate or click the \"Calc\" button to use the \"Max\nParticles\" and \"Lifetime\" values to generate them at an even rate.\n\u25cf Angle: The angle at which the particles will go. A value of \"0\" means right,\n\"90\" down, \"180\" left, and so on.\n\u25cf Speed: The speed at which the particles go from the center.\n  44\n\n \u25cf PosVar: Position variables indicate the space in which the particles can spawn.\n\u25cf Gravity: This applies a gravity force to the particles. The higher the value, the stronger the force. Positive values make the gravity go right and up, while negative values make the gravity go left and down, depending on what slider you choose.\n\u25cf AccelRad: Refers to the radial acceleration of the particles.\n\u25cf AccelTan: Refers to the tangential acceleration of the particles.\n\u25cf StartRad: This option is only available in \"Radius\" mode. It sets the start\nradius of the particles.\n\u25cf EndRad: This option is only available in the \"Radius\" mode. It sets the end\nradius of the particles.\n\u25cf RotSec: This option is only available in the \"Radius\" mode. It refers to\nrotations per second.\nNext is the \"Visual\" tab, which lets you change how the particles look. The start and end colors are customized in the top left.\n  45\n\n \u25cf StartSize: The size the particles have when they spawn.\n\u25cf EndSize: The size the particles have when they despawn.\n\u25cf StartSpin: The rotation of the particles when they spawn.\n\u25cf EndSpin: The rotation of the particles when they despawn.\n\u25cf Start R/G/B: Percentage of red, green, and blue values when the particles\nspawn.\n\u25cf Start A: Opacity when the particles spawn.\n\u25cf End R/G/B: Percentage of red, green, and blue values when the particles\ndespawn.\n\u25cf End A: Opacity when the particles despawn.\nIn the \"Extra\" tab, seen below, various other configuration can be done.\n  46\n\n \u25cf Free: With this option enabled, you do not move the particles but pan the camera around.\n\u25cf Relative: With this option, particles do not move when you move the object but spawn at the new position.\n\u25cf Grouped: With this option, all particles move when you move the object.\n\u25cf Fade in/out: Fade time for the particles to appear and disappear.\n\u25cf FrictionP: Adds friction to the particles.\n\u25cf FrictionS: Adds friction to the particle speed.\n\u25cf FrictionR: Adds friction to the particle rotation.\n\u25cf Respawn: Modifies the rate at which particles respawn.\n\u25cf Additive: This is comparable to the blending option for Color Channels.\n\u25cf Start Size = End: The particles have the same size at the end as the start.\n\u25cf Start Spin = End: The particles have the same rotation at the end as the\nstart.\n\u25cf Start Rad = End: Changes the \"StartRad\" value to be the end instead of\nthe start. This option only works in \"Radius\" mode.\n\u25cf Start rot is dir: The rotation of the particles when they spawn is the\ndirection they will go towards.\n\u25cf Use obj color: Particles use Color Channels instead of the color specified in\nthe visual tab.\n\u25cf Uniform obj color: Makes the beginning and ending colors the same.\n\u25cf Dynamic rotation: The particles rotate to face towards the direction they\nare going.\n\u25cf Animate on Trigger: The objects freeze on the first frame. They begin their\nanimation when an Animate Trigger Triggers them.\n\u25cf Animate Active Only: Addition to the \"Animate on Trigger\" option. With\nthis option, the \"Animate on Trigger\" option will only play if the object is active. If the animation is not active while the Animate Trigger is activated, the animation will instead begin once the object is active again.\n  47\n\n \u25cf Order Sensitive: Orders particles with newest ones on top.\n\u25cf StartRGB Var Sync: Syncs the \"Start R/G/B\" values from the \"Visual\" tab.\n\u25cf EndRGB Var Sync: Syncs the \"End R/G/B\" values from the \"Visual\" tab.\n\u25cf Quick Start: By default, the particles will start slowly before reaching their\nnormal movement. With this option, normal movement is achieved instantly.\nIn the \"Texture\" tab, the actual texture of your particle is chosen. Note that for textures with a Base Color other than white, such as the Difficulty Faces, the particle color has to be white. Choosing a color other than white will tint the colors, which may lead to unwanted results. Based on prior settings, the particles may even disappear if you choose black for the particle color.\n  48\n\n The Particle Editor preview is on the left half of the settings menu. In this editor, you can configure motion options by dragging lines around and positioning the particles at different locations. The default version of the editor looks like figure 4.10, but it will automatically update the motion, color, and texture depending on prior configurations.\nAll buttons allow you to modify different parts of the motion. Choose the mode by clicking on the corresponding button. If no button is enabled, you can move the particles inside the editor. Their movement depends on the \"Free\", \"Relative\", and \"Grouped\" options from the \"Extra\" tab.\nThe first button, \"1\", edits the \"PosVar\" values in \"Gravity\" mode, and the \"StartRad\" value in \"Radius\" mode. You can change them by clicking on the green line and moving it around to scale it, as seen in figure 4.11. If you click on an edge, you can change the size on the corresponding axis. If you click on a corner, the size will change relative to the corner position in the square.\n  49\n\n The second button, \"2\", edits the \"Gravity\" values in \"Gravity\" mode, and the \"EndRad\" value in \"Radius\" mode. You can change them by clicking somewhere in the editor and moving around. The blue line will draw from the center to the position you are at, with a longer line indicating a stronger gravity in the corresponding direction, as seen in figure 4.11.\nThe third button, \"3\", edits the \"Angle\" value in both modes, as well as the \"Speed\" value in \"Gravity\" mode. You can change them by clicking somewhere in the editor and moving around. The angle will change to the angle between the center and your click, and the speed will adjust depending on how far the mouse is from the center. The angle is indicated by the rounder yellow line, while the speed is indicated by the straight yellow line, as seen in figure 4.11.\nThe \"C\" button recenters the particles if you moved them around, and the last, colored button changes the background color of the editor.\n  50\n\n 5. Items\nDescription\nItems are found in the tenth tab of the editor, and consist of various objects that are suitable as Collectables. This means that they can be picked up throughout the level, whether they are optional extra challenges or necessary to advance. You can also use many of these as decorations if you wish. The first page of the tab is seen here:\nUser Coins\nThe first object in the tab are User Coins. These are the most used Collectables in the game because they are official. This means that they show on a level's menu screen and may count towards player statistics. You can place up to three of these in your level, but note that you do not need to put any. They are supposed to offer an extra, optional challenge for the player, meaning that they should not be a part of the level's normal route and free to get when beating the level. Once you upload your level, they will initially show as bronze both inside the level and on its menu screen. However, if your level gets rated, RobTop can \"verify\" the coins, making them silver and count for statistics. This means that players get more User Coins on their Profile if they collect yours and beat the level. Note that he may not verify them if your User Coins are free. Similar to Animated Objects, you can use Edit Special to edit their default rotating animation.\n   51\n\n Custom Collectables\nAll other objects in the tab function as custom Collectables. You can assign specific actions to them that will be activated once they get collected. This can be editing a specific Item ID, activating or deactivating a specific Group ID, or assigning Points that add up for the player. To access these options, first place the Collectable you want to use and click \"Edit Special\". This opens the following menu:\nYou can use \"Pickup Item\" to change the value of an Item ID. Item IDs are variables that can be edited and referenced throughout the level. Enter the Item ID you want to change in the \"ItemID\" field. By default, the Item ID will be increased by one. By enabling the \"Sub Count\" option, it will be decreased by one instead. You can read the Pickup Trigger section, as well as the various Item Triggers, for more information on Item IDs.\n    52\n\n Use \"Toggle Trigger\" if you want the Collectable to behave like a Toggle or Spawn Trigger. By default, the Group ID will be toggled off. If you click the \"Enable Group\" option, the Group ID you input in the \"Group ID\" field will toggle on instead. If the Group ID is assigned to a Trigger, the Trigger will be activated like a Spawn Trigger instead. You can read the Using Groups section for an explanation of what Group IDs are and how to use them.\nThe \"Particle\" option allows you to spawn particles when the custom Collectables are collected. Assign a Group ID to your set of particles and enter that Group ID in the \"Particle\" field. Note that your particles cannot have an infinite duration for this to work. You can check the Particle Editor subchapter for more information about particles and how to use them.\nLastly, you can assign Points to the Collectables. Points function similarly to Item IDs. However, they count as a single variable and are used for the Level Leaderboards in Platformer levels. The number you input in the \"Points\" field is how many Points the custom Collectables will award when collected.\n     53\n\n 6. Edit Group\n\"Edit Group\" is one of the most important buttons in the game. It is found on the right side of the editor when the object(s) you want to edit are selected. This menu is what enables you to change attributes of your objects through various options, as well as adding Group IDs to link to Triggers.\nFunctionality\nThe options are used to set editor layer, assign Group IDs, change the Z position, set the Order, and set up Channels. Here is a list of all the settings seen in figure 6.1 and a short explanation of what they do.\n\u25cf Editor L and Editor L2: These options place objects at different editor layers. Objects will appear on both editor layers once set. If \"Editor L2\" is 0, however, the objects will only appear on the layer set in \"Editor L\". You can use the \"+\" buttons to get the lowest layer that has no objects placed on it.\n\u25cf Z Layer: Seen at the bottom, this is used as the drawing order of objects. In order of increasing priority, it goes from \"B5\" to \"T4\" selected by the\n   54\n\n buttons. Objects in layers starting with a \"B\" are below the player, while objects in layers starting with a \"T\" are above the player. When multiple selected objects are in different \"Z Layers\", you can use the \"+\" and \"-\" buttons to move everything up or down one step in layer respectively. To change the drawing order of objects even further, see below.\n\u25cf Tileset: This term is not directly seen in figure 6.1, but its value marked to the right of \"Z Layer\" in parentheses. It specifies the tileset number of the selected object(s). For similar types of objects, this will typically be the same value. For different types of objects in the same \"Z Layer\", the tileset value specifies its priority. Within the same \"Z Layer\", an object with a lower tileset number is always drawn above one with a higher value. To bypass this, you can move the object with a higher value to a higher \"Z layer\". See figure 6.2 for an example.\n\u25cf Z Order: Seen in the top right of figure 6.1, this sets the drawing order of objects that are in the same \"Z Layer\" and also have the same tileset number. If this is the case, putting a higher \"Z Order\" makes it drawn on top. You can input positive and negative values in this field.\n\u25cf Add Group ID: Assign up to ten Group IDs, which you can later use in other Triggers. How to use Group IDs is covered later in this chapter.\n\u25cf ORD: This option only appears for Gameplay Objects and Triggers. It sets an Order in which the objects get activated.\n\u25cf CH: This option only appears for Gameplay Objects and Triggers. It assigns a Channel to the objects, which are used for Rotate Gameplay Triggers to work with different gameplay directions. See Channel System for more information.\nCopy and paste settings from different objects using the \"Copy\" and \"Paste\" buttons in the top right. The \"Extra\" and \"Extra2\" categories have special options, and are covered below.\n       55\n\n   Using Groups\nGroup IDs are essential for Trigger usage. You can add up to ten Group IDs to a specific object. To assign a Group ID to objects, enter the Group ID you want to add into the number field and click the \"Add\" button. The number will be added to the window below in gray, as seen in figure 6.3. Clicking the \"Next Free\" button inputs the lowest Group ID value that has not been used in the level yet.\n  56\n\n To remove a Group ID, simply click the one you want to remove. If you have a single object selected, a new \"P\" button appears next to \"Add\". This is used to mark the object as Group Parent ID. After clicking the \"P\" button, the corresponding Group ID will show in pink instead of the normal gray, as seen in figure 6.4. You can use Group Parent IDs for different Triggers.\nExtra Options\nExtra options are in the \"Extra\" and \"Extra2\" buttons on the right side of the menu. These tabs have many options that change the attributes of objects, some of which are only accessible if the selected object is a Gameplay Object or Trigger, and others are only useful for Platformer. Here is a list and a short explanation of the options in \"Extra\" do:\n\u25cf Dont Fade: Disables fading in and out when entering and exiting the screen. This is default behavior for all visible objects.\n\u25cf Dont Enter: Disables any applied Enter Effects.\n\u25cf No Effects: This option deactivates the effects of Portals. Some examples\ninclude the Background lightning for Size Portals and gravity lines for Gravity Portals.\n      57\n\n \u25cf Group Parent: Sets an object as a Group ID Parent, which is used for scaling and rotating objects.\n\u25cf Area Parent: Marks an object as the Area Parent, which can be used for Area Triggers.\n\u25cf Dont Boost Y/Dont Boost X: Disables the player being boosted by a moving object for the given axis.\n\u25cf High Detail: Marks an object as High Detail. Objects marked as High Detail get disabled when the player enables the Low Detail Mode on the level page. This is useful if your level has a lot of extra, unnecessary details that can lead to poor performance for some users.\n\u25cf NoTouch: Disables interactions between the player and the objects\n\u25cf Passable: You can jump through solid objects but land on them from the\ntop.\n\u25cf Hide: Makes objects invisible.\n\u25cf NonStickX/NonStickY: Only usable for Platformer. The player will stick to\nmoving objects by default. This option removes the friction so the player\ndoes not stick to the objects.\n\u25cf ExtraSticky: When the player stands on an object that moves down too\nfast, the player will not stick to the block anymore. This option increases\nhow sticky it is.\n\u25cf Extended Collision: Objects with a scale larger than a value of 6 have\ninaccurate hitboxes. This option fixes the hitbox to be accurate again. Note\nthat this does not apply to the visuals of objects.\n\u25cf IceBlock: Only usable for Platformer. This option makes blocks slippery, so\nthe player slides further. Controls are also harder.\n\u25cf GripSlope: By default, the player can not slide up steep slopes and will\nslide down instead. With this option enabled, the player has more grip on slopes so that they can slide up.\n 58\n\n \u25cf NoGlow: Disables the glow emitted from solid objects and Spikes, as seen in figure 6.5.\n\u25cf ScaleStick: By default, the player's X position will not change when standing on a scaling object. With this option enabled, the player's position moves the corresponding distance from the scale center.\n\u25cf NoParticle: Disables the particles on Orbs and Portals.\n\u25cf Center Effect: When previewing Triggers with \"Touch Trigger\" enabled in\nthe editor, the effect spawns when the player touches the Trigger at all.\nWith this option enabled, it will only spawn when at the Trigger center.\n\u25cf Single PTouch: This option is used for Rotate Gameplay Triggers and Dual\nMode. If one of the players touches the Trigger, only that one is affected.\n\u25cf No Audio Scale: Disables pulsing for both Orbs and Pulsing Objects. See\nthe figure below.\n  59\n\n   Special IDs\nSpecial IDs are in the \"Extra2\" tab and are used for some Triggers. They have no effect on their own. Here is a list of all the Special IDs and a short explanation of their usage.\n\u25cf Enter Channel: Enter Channel IDs are used for Enter Effects and Custom Enter Effects, which are covered in greater detail later. You can click the \"+\" button to get the lowest Enter Channel ID that is unused.\n\u25cf Material: You can assign Material IDs to objects for set events upon interaction. For example, you can add a Material ID to all ground blocks and use it in Event Triggers to Trigger a stone sound whenever the player lands on them.\n\u25cf ControlID: This option is only available for Gameplay Objects and Triggers. Control IDs are used to reference specific objects when using the remapping setting in Spawn Triggers.\nWhen using \"Edit Group\" with a Trigger, additional options \"EDP\" and \"EDO\" show below the \"Extra\" buttons. \"EDP\" stands for editor preview, and it enables \"Touch Trigger\" Triggers while playtesting. \"EDO\" stands for editor playback object, which makes music playtesting start from this Trigger.\n        60\n\n 7. Triggers\nDescription\nThere are over a hundred Triggers in the game. These are found in the second to last tab, seen below. As explained earlier, Triggers are used to perform various complex actions. They may alter visible objects, such as blocks, in some way, or just change the gameplay or visuals. Since they work in this way, they are never visible objects that can be seen when playing a level. You place them in the editor, and they do their action when the player passes the Trigger's position or other linked events. For example, Triggers that have the \"Touch Trigger\" option enabled will be triggered when the player touches them. There is also a \"Spawn Trigger\" option, which means it is spawned by a Spawn Trigger or different conditional Triggers, like Touch Triggers, Count Triggers, Time Triggers, and more.\nBelow this, every Trigger is covered in-depth in order. If you are unsure about the name of a Trigger found in-game, you can find it by looking at the title inside Edit Object. This is also where you will edit a Trigger's settings. Note that you can also find some simple quick help there by clicking the information button (shown as an \"i\" in one of the corners). This guide works best as an additional resource if any of that text is unclear. Previous knowledge in this document, such as Edit Group, is expected to be able to work with Triggers well.\n         61\n\n Start Pos\nThis Trigger is used to set a custom starting location of the player for playtesting. Levels cannot be verified if they include a Start Pos Trigger.\nThe \"Speed\" and \"Mode\" options are used to set the Speed and Game Mode to use from the Trigger. The \"Options\" menu features more settings, such as starting in Mini Mode, Dual Mode, or Rotated Gameplay.\nThe \"Reset Camera\" option resets all prior camera settings.\n\"Target Order\" and \"Target Channel\" refer to the \"Order\" and \"Channel\" options found in the Edit Group menu. They are used to activate Gameplay Objects and Triggers in a specific order.\nYou can temporarily disable a Start Pos by enabling the \"Disable\" option.\nColor\nColor Triggers are used to change the settings of a Color Channel. It works the same way as the normal color selection, which was covered in the Select Color section.\nThe \"Color ID\" field refers to what Color Channel you want to edit. You can click the \"+\" button for more options, such as the Background Color.\nIf you wish to change a Color Channel to the player's colors, you can use \"Player Color 1\" or \"Player Color 2\".\nThe \"Blending\" option applies blending to the color, which makes it multiply with the colors below it.\n      62\n\n By enabling the \"Copy Color\" option, you can copy the color of a different Color Channel. The Color Channel you wish to copy is input in the \"Channel ID\" field. You can change attributes of the color you copy by using the \"Hue\", \"Saturation\", and \"Brightness\" sliders.\nYou can use the \"Copy\" and \"Paste\" buttons to copy the color from one Color Trigger to another. By clicking the \"Default\" button, it will automatically show the color the corresponding Color Channel has in the Select Color screen.\nMove\nThis Trigger is used to move a specific Group ID. Its interface is seen below. After that, each option is described.\n   63\n\n \u25cf Target Group ID: The Group ID you want to move.\n\u25cf Move X: Moves blocks along the X-axis. One block is equal to a value of 10.\nInput a positive number to move to the right, and a negative one to move\nto the left.\n\u25cf Move Y: Moves blocks along the Y-axis. One block is equal to a value of 10.\nInput a positive number to move up, and a negative one to move down.\n\u25cf Move Time: The duration you want the movement to last.\n\u25cf Easing: Easing options change the way the objects start and end their\nmovement.\n\u25cf Player: You can select a \"Player\" option for both the X-axis and Y-axis.\nWhen this option is selected, the objects will follow the player's movement\nin the given direction.\n\u25cf Camera: The \"Camera\" option can also be selected for both the X-axis and\nY-axis. It functions similarly to the \"Player\" option, but follows the screen movement instead of the player movement.\n\u25cf Target Mode: Moves the objects to a \"Target Group ID\". This must be a single object. \"Center Group ID\" declares the center of the objects you want to move. This must also consist of a single object only. Selecting \"P1\" or \"P2\" declares Player 1 or 2, in Dual Mode, respectively as \"Target Group\" and moves the objects to that player's location instead.\n  64\n\n \u25cf Direction Mode: Moves the objects in the direction of a \"Target Group ID\". This must be a single object. \"Center Group ID\" declares the center of the objects you want to move. This must also be a single object. Selecting \"P1\" or \"P2\" declares Player 1 or 2, in Dual Mode, respectively as \"Target Group\" and moves the objects to that player's location instead. \"Distance\" indicates how far in the direction the objects move. As before, one block is equal to a value of 10.\n\u25cf Small Step: Enabling this option changes the value for one block from 10 to 30. This improves accuracy and allows for more precise movements.\n\u25cf Dynamic Mode: This option checks if the \"Target Group ID\" moves when in \"Target Mode\" or \"Direction Mode\". Normally the Trigger will only check upon activation where the target is and move towards that direction. With \"Dynamic Mode\" enabled, it will update its direction based on the target moving.\n\u25cf Silent: In Platformer mode, the player sticks to solid blocks that move instantly. With this option enabled, blocks move instantly without the player following their movement.\n   65\n\n Stop\nThis Trigger shows as a Stop, Pause or Resume Trigger depending on what option you choose inside \"Edit Object\".\n\"Stop\" is used to stop the action of other Triggers permanently. Give the Triggers you want to stop a Group ID and enter that Group ID in the Stop Trigger.\n\"Pause\" pauses the action of other Triggers temporarily. Give the Triggers you want to pause a Group ID and enter that Group ID in the Stop Trigger. The difference to a Stop Trigger is that you can resume the Trigger later by using a Resume Trigger.\n\"Resume\" resumes the action of other Triggers. Give the Triggers you want to resume a Group ID and enter that Group ID in the Stop Trigger. Only Triggers that were paused with a Pause Trigger can be resumed.\n\"Use Control ID\" allows you to only stop a specific Group ID when using remapping. For example, if you remap a Spawn Trigger to use Group IDs 1, 2, and 3, and you only want to stop Group ID 3, you can enter a \"Control ID\" and enable the option in the Stop Trigger. You can find the \"Control ID\" option in the \"Extra 2\" category after clicking \"Edit Group\".\n 66\n\n Pulse\nThis Trigger is normally used to change the color of a Color Channel or Group ID temporarily. The interface and various options are as follows:\n\u25cf Channel: With \"Channel\", you pulse an entire Color Channel. Clicking the \"+\" button allows you to select a special color. This includes for example the Background, Ground, Middleground, and Player Colors.\n\u25cf Group: With \"Group\", you pulse objects with that Group ID.\n\u25cf Main Only and Secondary Only: These options are only available when\nclicking \"Group\". Some objects have a Base Color and Detail Color, which\ncan be seen in the \"Edit Object\" menu.\n\u25cf Color: With \"Color\", the objects pulse the color you select.\n\u25cf HSV: With \"HSV\", you can pulse the objects using another \"Color ID\" and\nchange the \"Hue\", \"Saturation\" and \"Brightness\" of that \"Color ID\". If you leave this value at 0, you pulse the color you put into the \"Channel ID\" field\n  67\n\n \u25cf Fade In: The duration for the objects to reach the pulse color.\n\u25cf Hold: How long the objects hold the pulse color.\n\u25cf Fade Out: The duration for the objects to return to their original color.\n\u25cf Exclusive: This option disables all other pulses with the same ID, and only\nplays the current pulse.\nAlpha\nThis Trigger is used to change the opacity of an object over a given time frame. The options are as follows:\n\u25cf Group ID: The objects you want to change the opacity of.\n\u25cf Fade Time: The duration until the objects reach the set opacity.\n\u25cf Opacity: The opacity you want the objects to have.\nToggle\nThe Toggle Trigger enables or disables objects. Objects that are disabled are invisible, and the player cannot interact with them anymore.\n\u25cf Group ID: The objects you want to disable or enable.\n\u25cf Activate Group: With this option enabled the objects will be enabled. With\nthe option disabled, objects will be disabled.\nSpawn\nSpawn Triggers can activate other Triggers.\n\u25cf Group ID: The Triggers you want to spawn.\n\u25cf Delay: The delay before you spawn the Trigger.\n\u25cf Preview Disabled: Disables the Spawn Trigger when in \"Preview Mode\".\nThe Trigger will still activate when you playtest in the editor. 68\n\n \u25cf Spawn Ordered: All Triggers within this Group ID will be activated from left to right, with the distance between the Triggers indicating the delay between them.\n\u25cf Reset Remap: Resets the remapping of Group IDs.\nYou can use the second page of the Trigger's interface to remap Spawn Trigger setups. This is useful to save Group IDs.\n    69\n\n Due to this being complex, we will use an example. In figure 7.8, we are moving a block left and right by using a Spawn Loop. Now we want to add another block that also moves left and right. Normally we would need to copy all the Triggers and change their values. With remapping, we can copy the Spawn Trigger on the left, and remap the Group ID of the old setup to the new block. This is seen in figure 7.9.\nNow Group ID 4 will behave the same as Group ID 1. You can spawn Group ID 4 at a later time to offset the two block movements. This particular remapping saves 3 Group IDs.\n    70\n\n Rotate\nThis Trigger is used to rotate a specific Group ID. Its interface is seen below. After that, each option is described.\n\u25cf Target Group ID: The objects you want to rotate.\n\u25cf Center Group ID: The center the objects should rotate around. This Group\nID can only consist of a single object. Leaving this as 0 will result in all\nobjects rotating around their own center.\n\u25cf Move Time: The duration you want the rotation to last.\n\u25cf Degrees: How many degrees you want the objects to rotate. Enter a\nnegative value to rotate counter-clockwise and enter a positive value to\nrotate clockwise.\n\u25cf x360: How many full rotations (360 degrees) you want to do. Enter a\nnegative value to rotate counter-clockwise and enter a positive value to rotate clockwise.\n  71\n\n   \u25cf Aim Mode: The objects will face towards the \"Rot Target ID\". This must be a Group ID with a single object. You can offset the rotation with \"Rot Offset\". Choosing \"P1\" or \"P2\" will make the objects face towards Player 1 and Player 2 respectively. If this is enabled, you can limit the rotation to be between objects set on the second page of the Trigger.\n\u25cf Follow Mode: The objects will follow the rotation of \"Rot Target ID\". This must be a Group ID with a single object. You can offset the rotation with \"Rot Offset\". Choosing \"P1\" or \"P2\" will make the objects face towards Player 1 and Player 2 respectively. The second page of the overall Trigger lets you set Group IDs of single objects as boundaries for following. This means that the rotation will not continue to follow the target if it reaches these positions.\n    72\n\n \u25cf Dynamic Mode: This option checks if the target moves when in \"Aim Mode\" or \"Follow Mode\". Normally the Trigger will only check upon activation where the target is and face towards that direction. Moving the Target Group ID does not update the direction. With \"Dynamic Mode\" enabled, it will update its direction based on the target moving.\n\u25cf Lock Obj Rotation: The objects themselves will not rotate but instead only update their position.\nScale\nThis Trigger is used to scale a specific Group ID. Its interface is seen below. After that, each option is described.\n\u25cf Target Group ID: The objects you want to scale.\n\u25cf Center Group ID: The center the objects should scale from. This Group ID\ncan only consist of a single object. Leaving this as 0 will result in all objects\nscaling from their own center.\n\u25cf Duration: The duration you want the scaling to last.\n\u25cf ScaleX/ScaleY: How much you want to scale the objects in the X and Y\ndirection respectively.\n\u25cf Div by Value X/Y: Divides the current scale by this number and uses this\nas the target value.\nIf you want to scale an object and have it return to its original size, you can use \"ScaleX/ScaleY\" like normal on the first Scale Trigger, and simply tick the \"Div by Value\" boxes when scaling back on another Scale Trigger. For example, if you want to scale a block to 3.00, put \"ScaleX\" and \"ScaleY\" to 3.00. If you want it to return to 1.00 now, you would need to put 1/3 into the fields. This is not possible and leads to inaccuracies. By ticking the \"Divide by Value\" box, you divide the scale by 3.00, which brings you back to 1.00.\n73\n\n \u25cf Only Move: The objects will only move to the place they would be when you scale them. They will not change their size.\n\u25cf Relative Rotation: When blocks are rotated, they will rotate their X-axis and Y-axis as well. Turning this option on draws a new X-axis and Y-axis and puts it at the correct place. In the example below, the blocks are rotated 45 degrees.\n\u25cf Relative Scale: This option makes the scale value adjust based on a reference object. Normally, if you scale an object down by 0.95 for example, each scale will be smaller and smaller. With this option enabled, the scale will instead refer to the object in the Center Group ID to decide what the next scale factor should be.\nFollow\nThis Trigger is used to make objects mimic the movement of other objects. All options are explained below.\n\u25cf Target Group ID: The objects you want to follow another Group ID. 74\n  \n \u25cf Follow Group ID: The Group ID that should be followed. This Group ID can only consist of a single object.\n\u25cf Move Time: How long you want the objects to follow the Group ID.\n\u25cf X/Y Mod: The values you put here will be multiplied with the movement of\nthe \"Follow Group ID\". For example, if the \"Follow Group ID\" moves 50 blocks to the right, and you put 0.5 in \"X Mod\", the objects move 25 blocks to the right instead of 50.\nShake\nThe Shake Trigger applies a temporary shake effect to the screen. Be careful to not overuse this Trigger or input large numbers into the options, as it may result in a bad experience for players. The options are explained below.\n\u25cf Strength: How intense the shake effect is.\n\u25cf Interval: The interval between every shake effect. Leaving this value at 0\nresults in the screen shaking every frame.\n\u25cf Duration: How long the shake effect is applied to the screen.\nAnimate\nThe Animate Trigger is used to give custom animations to Monsters, and it can also be used to activate the animation of Animated Objects.\n\u25cf Group ID: The Group ID of the objects you want to animate or change the animation of.\n\u25cf Animation ID: Only used for Monsters. Check the information box in-game to get information about what \"Animation ID\" refers to what monster.\n 75\n\n Keyframe Animation\nThis Trigger is used to activate a keyframe animation. You can find all settings below, as well as a detailed example of its usage in the Keyframe System chapter.\n\u25cf Animation Group ID: Group ID of your Keyframe Triggers. It is enough for the first Keyframe Trigger in your animation to have this Group ID.\n\u25cf Target ID: The objects you want to follow the animation.\n\u25cf Parent ID: The Group ID that should be used as the center for scaling and\nrotating. By default objects will choose their own center. You can also set\nthe center of the objects using the \"Group Parent ID\".\n\u25cf Time/Position/Rotation/Scale Mod: The values you put here will be multiplied with the movement of the keyframes. For example, if the\nkeyframes move 50 blocks to the right, rotate 90 degrees, and scale to 4.00, and you put 0.5 for all modifiers, the target objects will only move 25 blocks, rotate 45 degrees, and scale to 2.00.\nFollow Player Y\nFollow Player Y Triggers are used to make objects follow the Y movement of the player. The movement can be modified by using the different options explained below.\n\u25cf Target Group ID: The objects you want to follow the player's Y movement.\n\u25cf Move Time: How long you want the objects to follow the player's Y\nmovement.\n\u25cf Speed: Modifies the speed the object has when following the movement\nof the player. The value you put here will be multiplied with the player movement. For example, if the player moves 5 blocks per second and you put 0.5, the objects will move 2.5 blocks per second.\n  76\n\n \u25cf Delay: Delay before the objects follow the movement.\n\u25cf Offset: Offsets the objects. Normally the objects will snap to the exact Y\nposition. A value of 10 is equal to one block offset above the player. Enter a\nnegative value to offset below the player.\n\u25cf Max Speed: The maximum speed the objects can reach when following\nthe movement. The formula used to calculate the speed is (Max Speed/(Max Speed + 1)). Thus, if you put 5.0 for \"Max Speed\", for example, the objects will do 5/6 of the movement the player did in the same time.\nAdvanced Follow\nAdvanced Follow Triggers are used to make objects move towards a target and make them follow its movement. They are by far one of the most complex Triggers in the game. We highly suggest you follow along on your own example when testing out the options.\n  77\n\n \u25cf Target GID: The Group ID of the objects that should go towards the Group ID set in \"Follow GID\".\n\u25cf Follow GID: The Group ID of the object that should be the new target. You can choose from the buttons below for more options.\n\u25cf Priority: The priority at which the movements will be applied if an object is affected by more than one Advanced Follow Trigger.\n\u25cf X/Y Only: The objects will only follow the X or Y movement of the Group ID in \"Follow GID\" respectively.\n\u25cf P1/P2/C: Corresponds to Player 1, Player 2, and the screen center respectively.\n\u25cf Rotation Offset: Offsets the rotation of the objects. Enter a negative value to offset the rotation to the left or a positive value to offset the rotation to the right.\n\u25cf Ignore Disabled: The movement is not applied if the objects are not active. Activating them again starts the movement.\n\u25cf Rotate Dir: Makes the objects rotate towards the target.\n\u25cf Rotate Easing: Adds easing to the rotation of the objects.\n\u25cf Rotate DeadZ: A deadzone for the rotation of the objects.\n\u25cf Init: This option is used for the second and third mode, and controls how\nthe values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, the values are used only when the object has no speed values.\n\u25cf Set: This option is used for the second and third mode, and controls how the values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, any current velocity gets overridden.\n\u25cf Add: This option is used for the second and third mode, and controls how\nthe values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, the velocity gets added to the current one.\n\u25cf Exclusive: Advanced Follow Triggers have a \"Priority\" value. When multiple\nAdvanced Follow Triggers for the same object are active, it will process 78\n\n them in order based on \"Priority\". If an action is exclusive, it will not process any other actions after it.\nOn the second page you can choose between 3 different modes by using the three buttons labeled 1, 2, and 3 in the top right. We will be going through all options and what their differences are.\nThe \"+-\" sliders on all options indicate variance. For example, if you input a \"Delay\" of 3 and enter 2 into the \"+-\" field, the \"Delay\" will randomly be chosen in a range of 2 below and above. As a result, you get 1 to 5 \"Delay\".\nIn the first mode, the objects will simply move towards the target.\n\u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30. 79\n  \n \u25cf Easing: Adds an easing to the start and end of the movement.\nIn the second mode, the objects will also move towards the target. However, you have more options to customize the movement depending on how close the objects are to the target.\n\u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30.\n\u25cf StartSpeed: The speed the objects have when they start their movement.\n\u25cf StartDir: The direction the objects face when they start their movement,\nwith 0 meaning up, 90 right. and so on.\n\u25cf Acceleration: The acceleration of the objects.\n\u25cf Friction: The friction that is applied to the objects.\n\u25cf NearDist: At what distance the objects are considered near the target. One\nblock is equal to 30.\n  80\n\n \u25cf NearFriction: The friction of the objects when they get near the target. What counts as near is configured by the \"NearDist\" value.\n\u25cf NearAccel: The acceleration of the objects when they get near the target. What counts as near is configured by the \"NearDist\" value.\nThe three boxes on the right correspond to their respective options. They apply their setting towards a set reference object. \"MaxRange\" will be drawn from the objects to the reference object. \"StartSpeed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. By inputting a 2 in the slider, you double the speed. \"StartDir\" makes the objects face towards the reference object.\nIn the third mode the objects will also move towards the target. However, you can also edit more attributes of the movement.\n  81\n\n   \u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30.\n\u25cf StartSpeed: The speed the objects have when they start their movement.\n\u25cf StartDir: The direction the objects face when they start their movement,\nwith 0 meaning up, 90 right and so on.\n\u25cf Acceleration: The acceleration of the objects.\n\u25cf SteerForce: The force that is applied when the objects steer towards the\ntarget.\n82\n\n The three boxes on the right correspond to their respective options. They apply their setting towards a reference object. \"MaxRange\" will be drawn from the objects to the reference object. Secondly, \"StartSpeed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. For example, by inputting \"2\" in the slider, you double the speed. Lastly, \"StartDir\" makes the objects face towards the reference object.\n\u25cf SteerForceLow: The lowest the steer force can get.\n\u25cf SpeedRangeLow: The speed of the objects when they are not within the\n\"MaxRange\".\n\u25cf SteerForceHigh: The highest the steer force can get.\n\u25cf SpeedRangeHigh: The speed of the objects when they are within the\n\"MaxRange\".\n\u25cf SlowAccel: The acceleration of the objects when in the \"SlowDist\" distance\nfrom the target object.\n\u25cf SlowDist: The distance from the target object that is considered slow,\nwhich applies the \"SlowAccel\" setting. One block is equal to 30.\n\u25cf BreakForce: The force at which the objects brake when the target\nsuddenly goes in a different direction.\n\u25cf BreakAngle: The angle at which the objects will brake.\n\u25cf BreakSteerForce: The force at which the objects steer while braking.\n\u25cf BreakSteer SpeedLimit: The max speed at which the objects can steer\nwhile braking.\n\u25cf Target Dir: The objects move in the direction of target.\nThe checkboxes next to \"SteerForceLow\" and \"SteerForceHigh\" enable low and high speed modes respectively. As a last note for this Trigger, it is worth noting that you can select from two premade settings by clicking the \"Pre\" button on the first page.\n83\n\n Edit Advanced Follow\nThis Trigger is used to edit the attributes of an Advanced Follow Trigger. An explanation of all options can be found below.\n\u25cf Target GID: The Group ID of the objects that should go towards the \"Follow GID\".\n\u25cf X Only/Y Only: The objects will only apply the change on the X or Y movement respectively.\n\u25cf Mod X/Mod Y: Modifies the movement on the X-axis and Y-axis respectively.\n\u25cf Speed: Modifies the speed of the objects.\n\u25cf Dir: Modifies the direction at which the movement is applied.\n\u25cf Target Control ID: Control ID allows you to only target a specific Group ID\nwhen using remapping. For example, if you remap a Spawn Trigger to use Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter a Control ID and enable the option in the Trigger. You can find the Control ID option in the \"Extra 2\" category after clicking \"Edit Group\" with the Trigger selected.\n\u25cf Redirect Dir: Redirects the direction towards a reference object, which is input in the box to the right.\nThe two boxes on the right correspond to their respective options. They apply their setting towards a reference object. \"Speed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. By inputting a 2 in the slider, you double the speed. \"Dir\" will apply the movement towards the direction of the reference object.\n 84\n\n Re-Target Advanced Follow\nThis Trigger is used to change the target of an Advanced Follow Trigger.\n\u25cf Target GID: The Group ID of the objects that should go towards the Group ID set in \"Follow GID\".\n\u25cf Follow GID: The Group ID of the object that should be the new target. You can choose from the buttons below for more options.\n\u25cf Target Control ID: Control ID allows you to only target a specific Group ID when using remapping. For example, if you remap a Spawn Trigger to use Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter a Control ID and enable the option in the Trigger. You can find the Control ID option in the \"Extra 2\" category after clicking \"Edit Group\" with the Trigger selected.\n\u25cf P1/P2/C: Corresponds to Player 1, Player 2, and the screen center respectively.\nKeyframe\nThis Trigger is used to set up keyframes. You can find an explanation of all settings below, as well as an in-depth example in the Keyframe System chapter.\nThe Keyframe Trigger is one of the most complex Triggers. We suggest following along with your own example when testing the options.\n  85\n\n   \u25cf GroupID: The objects you want to reference for your animation. Note that these are not necessarily the objects that will do the animation. Those objects are normally set in the Keyframe Animation Trigger. \"GroupID\" in this Trigger is mainly used for referencing the art when you enable \"Preview Art\". However, it is also used as the target if you do not input any override when calling the Keyframe Animation Trigger.\n\u25cf Duration: The duration until the Keyframe Trigger reaches the next one. This time is always used unless it is a \"Ref Only\" Keyframe. \"Time\", \"Even\" and \"Dist\" set how the time is used.\n\u25cf Easing: Applies easing to the start and end of the keyframe.\n\u25cf x360: If you want to do a full rotation (360 degrees) before reaching the\nnext keyframe.\n\u25cf CCW/CW: Whether you want the rotation to be done clockwise or\ncounter-clockwise. Applies to all rotations, including full ones.\n86\n\n \u25cf SpawnGID: Spawns a Group ID when the target objects reach the keyframe.\n\u25cf SpawnDelay: Delay before \"SpawnGID\" is spawned.\n\u25cf Prox: \"SpawnGID\" is spawned when the target objects are close to the\nkeyframe.\n\u25cf Curve: Keyframes use Be\u0301zier curve to get to the next keyframe.\n\u25cf Time: With this option enabled, \"Duration\" is used to reach the next\nkeyframe.\n\u25cf Even: The time between the keyframes is distributed evenly between all\nthe \"Ref Only\" keyframes in between.\n\u25cf Dist: The duration before reaching the next keyframe is distributed\nbetween all \"Ref Only\" keyframes based on their distance from each other.\nLet us look at an example to better understand how the different options work.\n  87\n\n The red Keyframe Triggers are marked as \"Ref Only\", while the green and blue ones are not. The green keyframe controls the animation until the blue one, and the blue one controls it until the end. If you set easing on the green keyframe, that easing will be used to reach the blue keyframe. All red easing values are ignored since they are reference points only.\nThe numbers in the figure are example durations set on the Triggers. If you select \"Time\" on the green Keyframe Trigger, it will take 10 seconds to reach the next red keyframe. Afterwards, the red keyframe's duration will be used to reach the next one, so 5 seconds, and then 7 seconds from the next until you reach the blue keyframe. As a result, it takes 22 seconds in total to reach the blue one.\nIf you instead select \"Even\" on the green keyframe, it will ignore all the duration values of the red (reference) keyframes, and evenly spread out the 10 seconds between each keyframes. As a result, it will take 10 seconds in total to reach the blue one.\n\u25cf Close Loop: The objects return back to the first keyframe after completing the last one.\n\u25cf Preview Art: Used to preview the art you want to animate. By default, you only see the arrow icon. For this option to work, you have to put a Group ID and also declare a Group Parent ID. With this option enabled, the objects will spawn at the arrow position, with the Group Parent ID functioning like the arrow icon.\n88\n\n   \u25cf Ref Only: Reference objects. Objects marked as reference have a lower opacity and are not considered for the \"Even\" and \"Dist\" options. Check the corresponding options to see how their movement is handled.\n\u25cf Auto Layer: Automatically layers the keyframes, so that the new one is the highest. Most useful when using \"Preview Art\".\n\u25cf Select All: Selects all keyframes.\n\u25cf Update Art: Updates the art for the \"Preview Art\" option. Changes done to\nthe reference Group ID are not updated instantly, so you need to press this\nif you change your design.\n\u25cf Dup Anim: Duplicates the keyframes. You cannot copy and paste them\nlike normal, since the copy would be considered connected in that case.\n\u25cf Reverse Order: Reverses the keyframe settings. For example, instead of\nscaling by 2 and moving 5 blocks to the right, it will scale by 0.5 and move 5 blocks to the left.\n89\n\n Area Move/Rotate/Scale/Fade/Tint\nArea Triggers are used to apply different effects to an area of objects. Due to many Area Triggers having the same settings, we will be explaining their general options first and provide specific ones below. Note that Area Triggers are on the more complicated side. Follow along with your own example.\nArea Triggers work by taking the center you provide, drawing a circle around the center (or a specific direction depending on what you pick below the \"Deadzone\" option). This is done using the length you provide and calculating the steps in between. For example, if you have \"From Opacity\" at 1.00 and \"To Opacity\" at 0.50, the center will be shown as 1.00 opacity, and the borders will be at 0.50 opacity. All other steps in between will be calculated gradually. For example, right in the middle (\"Length\"/2), the opacity will be (1.00 + 0.50)/2 = 0.75.\n\u25cf Length: Length in which objects will be affected..\n\u25cf Offset: Offsets the center position in the X direction. The \"+/-\" is how off it\ncan go. For example, \"Offset\" at 40 with \"+/-\" at 10 would offset the center\nbetween 3 and 5 blocks.\n\u25cf Offset Y: Offsets the center position in the Y direction. The \"+/-\" is how off it\ncan go. For example, \"Offset\" at 40 with \"+/-\" at 10 would offset the center\nbetween 3 and 5 blocks.\n\u25cf Deadzone: Divides the length by the value you set here and changes the\ntransition between center and edge accordingly. For example, having a length of 40 and setting a \"Deadzone\" of 0.5 would do 0 to 100% between 0 and 20, and stay 100% from 20-40.\n90\n\n   \u25cf ModFront/ModBack: Modify the front and back of your center position. The value you put here is multiplied with your center.\n\u25cf Ignore Linked: Objects linked together will be seen as one object by default. Enabling this object disables this and makes the objects behave as if they are not linked. Note that you have to set an object as Group Parent or Area Trigger for this to work.\n\u25cf Ignore GParent: If you set a Group Parent ID it will be seen as the center of your objects, and all objects will behave exactly like that one. The action also only starts when you are within this object's range. Enabling this option disables the Group Parent ID and makes all blocks behave as if they do not have a Group Parent ID.\n\u25cf DE AP: Stands for \"Don't Edit AreaParent\". The object that is set as Group Parent ID will not perform any of the area actions.\n\u25cf Easing: The easing the objects have when they start their action.\n91\n\n \u25cf Ease Out: Allows modifying the easing the objects have when they end their action.\n\u25cf Priority: If several Area Triggers of the same kind are active at once, the one with the higher priority will perform its action.\n\u25cf Effect ID: Specific ID that can be referenced later, for example in Edit Area Triggers.\n\u25cf P1: Player 1.\n\u25cf P2: Player 2.\n\u25cf C: Center of the screen.\n\u25cf BL: Bottom left of the screen.\n\u25cf CL: Left of the screen from the center.\n\u25cf TL: Top left of the screen.\n    92\n\n \u25cf BC: Bottom of the screen from the center.\n\u25cf TC: Top of the screen from the center.\n\u25cf BR: Bottom right of the screen.\n\u25cf CR: Right of the screen from the center.\n\u25cf TR: Top right of the screen.\n  The buttons below the \"Deadzone\" option indicate what direction the length will be drawn. Here\u2019s a table of all the variations and what their range looks like.\n93\n\n Table 7.1: Direction settings.\n                94\n\n                 95\n\n                 96\n\n         For Area Move, we have these unique settings:\n\u25cf MoveDist: Distance the objects move.\n\u25cf MoveAngle: Angle in which objects move. 0 is up, 90 right, 180 down, 270\nleft, and so on.\n\u25cf Relative: Moves away in angle depending on where the center is. If the\ncenter is above the object, it will move down. If it is to the right, it will move\nleft, and so on.\n\u25cf RFade: Fade when using \"Relative\". Basically distance ratio between\nobjects. 0 means a big gap, and the higher the number the smaller the\ngap ratio.\n\u25cf XY Mode: You can enter X and Y values like in the normal Move Trigger\ninstead of choosing a direction.\n 97\n\n For Area Rotate, we have these unique settings:\n\u25cf Rotation: The degrees you want the objects to rotate. Enter a positive value to rotate clockwise, and a negative value to rotate counter-clockwise.\nFor Area Scale, we have these unique settings:\n\u25cf ScaleX/ScaleY: The size the objects scale in the X-axis and Y-axis respectively.\nFor Area Fade, we have these unique settings:\n\u25cf From Opacity: The opacity the objects closest to the center have.\n\u25cf To Opacity: The opacity the objects furthest from the center have. For Area Tint, we have these unique settings:\n\u25cf Color Channel: The color you want to tint the objects in.\n\u25cf %: The percentage you want to tint the color. For example, if you want to\ntint a black object white and set \"%\" to 0.5, the object will turn gray.\n\u25cf Main Only and Secondary Only: Some objects have a Base Color and\nDetail Color, which is seen in the \"Edit Object\" menu. These options only\nchange the these colors respectively.\n\u25cf HSV: Instead of tinting the color of a different Color Channel, you can\nsimply tint the same Color Channel and change the \"HSV\" values of it.\n98\n\n Edit Area Move/Rotate/Scale/Fade/Tint\nEdit Area Triggers change the values of Area Triggers. Due to all options being the same, you can check the section above to find detailed information about all settings. Edit Area Triggers have the option to use Effect IDs to reference Area Triggers. The Effect ID can be configured within the Area Triggers.\nArea Stop\nArea Stop Triggers stops Area Triggers. Area Stop Triggers can only reference the Effect ID, which is configured in the Area Triggers.\nChange BG/G/MG\nThese Triggers change the Background, Ground or Middleground respectively. Pick a Background, Ground, or Middleground from the menu to switch to the respective one from this Trigger's activation.\nTouch\nTouch Triggers are used to enable or disable a Group ID upon player touch. Touch Triggers also function as Spawn Triggers, meaning that they can spawn other Triggers. By default, the Touch Triggers switch between disabling and enabling an object on player touch. It is worth noting, that moving left and right also count as a player touch in Platformer, despite the player not jumping.\n\u25cf Group ID: The Group ID you want to enable, disable, or spawn.\n\u25cf Hold Mode: Changes to enable the Group ID while the player holds, and disabling when the player releases. By default the Touch Triggers switch\nbetween disabling and enabling an object on player touch.\n\u25cf Dual Mode: This is an obsolete option from 2.1, which disables counting\ninputs from player 2. Avoid using this option and use \"P1/P2 Only\" instead. 99\n \n \u25cf P1/P2 Only: Only counts touches from one player instead of both.\n\u25cf Toggle On/Off: Toggles a Group ID on or off when the player touches. For\nexample, if you enable \"Hold Mode\" and \"Toggle Off\", holding will disable the object and releasing will enable it. If you want to spawn a Group ID on player touch, you should enable the \"Toggle On\" option.\nCount\nCount Triggers are used to enable, disable, or spawn a Group ID when an Item ID reaches a specific number. Count IDs can be activated at any time when that number is reached, as opposed to Instant Count Triggers which only check if the condition is met when the Trigger is hit.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target Count: The number the Item ID needs to have to activate the Group ID.\n\u25cf Target ID: The Group ID which should be enabled, disabled, or spawned when the Item ID reaches the \"Target Count\".\n\u25cf Activate Group: Enable this option to enable a Group ID, or to spawn a Group ID. By default, the Group ID will be disabled when the count is reached. Reaching the count again does not reactivate the Group ID, and Triggers are only spawned if this option is enabled.\n\u25cf Multi Activate: Allows the Group ID to be enabled, disabled, or spawned again when the \"Target Count\" is reached several times. By default, the action will only be performed once.\n 100\n\n Instant Count\nInstant Count Triggers are used to are used to enable, disable, or spawn a Group ID if an Item ID is equal, smaller, or larger than a specific number. Instant Count Triggers only check if the condition is met when they are hit and never again afterwards, as opposed to Count Triggers which check for their condition constantly.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target Count: The number the Item ID needs to have to activate the Group ID.\n\u25cf Target ID: The Group ID which should be enabled, disabled, or spawned when the Item ID reaches the \"Target Count\".\n\u25cf Activate Group: Enable this option to enable a Group ID, or to spawn a Group ID. By default, the Group ID will be disabled when the count is reached. Reaching the count again does not reactivate the Group ID, and Triggers are only spawned if this option is enabled.\n\u25cf Equals/Larger/Smaller: This option will trigger \"Target ID\" if the Item ID is equal, larger, or smaller respectively when the Trigger is reached.\nPickup\nPickup Triggers can be used to change the values of Item IDs.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Count: The number you want to increase the current Item ID value by. By default, this will use addition. Check the options below for different arithmetics.\n 101\n\n \u25cf Override: The Item ID value will override the current value with the new one instead of using addition.\n\u25cf Multiply: Multiplies the previous value with your set modifier.\n\u25cf Divide: Divides the previous value with your set modifier. Note that the\nItem ID will drop all numbers after the decimal point. For example, dividing a value of 5 by 2 will result in 2 instead of 2.5, since the 0.5 is dropped.\nTime\nTime Triggers function as an in-game Timer. In-game Timers use Item IDs to work.\n\u25cf StartTime/StopTime: The time you want the Timer to start and stop at respectively. Note that you have to enable the checkbox to the right of \"StopTime\" for the time to actually stop. If\"StopTime\" is lower than \"StartTime\", \"StopTime\" will be ignored.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n\u25cf TargetID: The Group ID you want to spawn when \"StopTime\" is hit. Note that you actually have to stop the time at the \"StopTime\" to enable the Group ID. In other words, you have to enable the checkbox to the right of the \"StopTime\" option.\n\u25cf TimeMod: Modifies the Timer. The number you input here will be multiplied with the normal Timer, resulting in the time going quicker if the value is above 1 and slower if it is below 1.\n\u25cf Ignore TimeWarp: Using a TimeWarp Trigger will also slow down or speed up the Timer. Enabling this option makes the time behave the same.\n 102\n\n \u25cf StartPaused: The Timer will display your \"StartTime\", but it will not start until activated by a different Time Trigger or a Time Control Trigger.\n\u25cf Dont Override: Time Triggers with this option enabled will only affect the Timer if it is at 0.00 or has the \"StartPaused\" option enabled. If the Timer is currently counting, the Triggers will not change the value.\nTime Event\nTime Event Triggers spawn a Group ID if a specific time is hit in the Timer. Unlike the \"TargetID\" in the Time Trigger, the Timer does not have to stop at this value to Trigger it.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n\u25cf TargetID: The Group ID you want to spawn when \"TargetTime\" is hit\n\u25cf TargetTime: The time at which you want to spawn \"TargetID\".\n\u25cf Multi Activate: The Triggers can spawn again if the \"TargetTime\" is hit\nseveral times.\nTime Control\nTime Control Triggers can start and stop a Timer.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n  103\n\n Item Edit\nThis Trigger is used to edit an Item ID using two different Item IDs. You can do many different operations with these two Item IDs. Note that Item Edit Triggers are pretty complicated, so we suggest following along with your own example.\n\u25cf ItemID1/ItemID2: The Item IDs you want to use to do operations. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"ItemID1\" and \"ItemID2\". For example, if \"ItemID1\" is a normal Item ID, and \"ItemID2\" is a Timer, you would select the \"Item\" and \"Timer\" options respectively. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target ItemID: The Item ID you want to edit. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"Target ItemID\". Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n  104\n\n \u25cf Mod: Modifies the value that \"ItemID1\" and \"ItemID2\" produce. Leaving this option at 1 will disable the third button, which is \"\u2022\" in the picture below.\nThe three buttons in figure 7.26 correspond to how the numbers interact with each other. We will explain what each one does, and then show some examples for better understanding.\n\u25cf The first button decides how the new values interact with the \"Target ItemID\". If you set it to \"=\", the \"Target ItemID\" will use the new value. If you set it to \"+\", the value will be added to the current value of the \"Target ItemID\". Likewise, if you set it to \"-\", the value will be subtracted from the current value. If you set it to \"\u2022\" instead, the current value will be multiplied with the value, while setting it to \"/\", divides the current value.\n\u25cf The second button decides how \"ItemID1\" and \"ItemID2\" interact with each other to calculate the value. If you set it to \"+\", \"ItemID1\" will be added to \"ItemID2\". If you set it to \"-\", \"ItemID2\" will be subtracted from \"ItemID1\". Similarly, if you set it to \"\u2022\", \"ItemID1\" and \"ItemID2\" are multiplied, and with \"/\", \"ItemID1\" will be divided by \"ItemID2\".\n\u25cf The third button decides how the modifier interacts with the value that \"ItemID1\" and \"ItemID2\" create. If you set it to \"\u2022\", the value will be multiplied with the modifier value. If you set it to \"/\", the value will be divided by the modifier value.\n  105\n\n To the right of these, there are two empty, optional buttons (figure 7.25), which can be set to \"N\" or \"A\" for \"neg\" and \"abs\" respectively. In order, these negate or find the absolute value of the number. Absolute value essentially drops a negative sign and only uses positive values.\nFor our example, \"ItemID1\" has the value 8, \"ItemID2\" has the value 5, and \"Target ItemID\" has the value 2. All values and operations are color coded for convenience. As you can see, we selected \"+\" in the first box. This means that the value will be added to the current value, indicated by the \"I3 +\" at the bottom. In the second box, we selected \"-\", which means \"ItemID2\" will be subtracted from \"ItemID1\", as indicated by \"(I1 - I2)\". Lastly, we set a modifier. We chose \"/\" in the third box, which means that our value will be divided by our modifier.\n  106\n\n Let us replace the Item IDs with the values we chose to see what the result should be. (Note that this is edited and cannot be achieved in normal Geometry Dash.)\nDoing the calculations, we get I3 = 2 + 3/2 = 2 + 1.5, which cannot be represented due to how Geometry Dash rounds by default. Because of this, the .5 is dropped and we are left with 2 + 1. Now our equation is I3 = 2 + 1 = 3, which means the new value of our \"Target ItemID\" is 3.\nDropping of .5 may not be ideal in all cases. Luckily, we can fix this with the \"NA\" buttons. The first \"NA\" button decides how the value you calculate is handled. To use our example, this button decides how decimals are handled for (8 - 5) / 2.000. The second \"NA\" decides how the new value is handled by the \"Target ItemID\", so I3 in our example. Here are all the options you can set and how they behave.\n\u25cf NA: The default way Geometry Dash handles the numbers. Using this mode will drop all decimal points.\n\u25cf RND: Rounds the number to the closest integer. If we take our example, 3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4 instead of 3.\n\u25cf FLR: Stands for floor function, which means it will always round down to the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.\n\u25cf CEI: Stands for ceiling function, which means it will always round up to the next higher integer. For example 1/10 = 0.1 would be rounded up to 1.\n  107\n\n Item Compare\nThis Trigger is used to compare two Item IDs and spawn Group IDs depending on whether their condition is true or not. Item Compare Triggers are pretty complicated, so we suggest following along with your own example.\n\u25cf ItemID1/ItemID2: The Item IDs you want to compare with each other. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"ItemID1\" and \"ItemID2\". For example, if \"ItemID1\" is a normal Item ID, and \"ItemID2\" is a Timer, you would select the \"Item\" and \"Timer\" options respectively. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Mod1/Mod2: Modifiers for \"ItemID1\" and \"ItemID2\" respectively. How the modifier interacts with the values can be changed with the \"\u2022\" buttons, which is explained below.\n\u25cf TrueID/FalseID: The IDs that will be spawned if your condition is true or false respectively.\n  108\n\n \u25cf Tol+-: The tolerance. For example, if you set 0.5 here and \"ItemID1\" is 1, while \"ItemID2\" is 0.5, this would count as true despite \"ItemID1\" and \"ItemID2\" not being equal.\nThe three buttons to the right decide how the values are compared, and how the modifiers interact with them. The first box decides the operation for \"ItemID1\" and \"Mod1\", the second box decides the operation for \"ItemID2\" and \"Mod2\", and the third box decides how the two values are compared to each other.\nFor the first and second box, you can select the following options:\n\u25cf \"+\" means that the corresponding modifier will be added to the Item ID value.\n\u25cf \"-\" means that the corresponding modifier will be subtracted from the Item ID value.\n\u25cf \"\u2022\" means that the corresponding modifier will be multiplied with the Item ID value.\n\u25cf \"/\" means that the Item ID value will be divided by the corresponding modifier.\n  109\n\n For the third box, you can select the following options:\n\u25cf \"==\" will return true if \"ItemID1\" is equal to \"ItemID2\".\n\u25cf \">\" will return true if \"ItemID1\" is larger than \"ItemID2\".\n\u25cf \">=\" will return true if \"ItemID1\" is larger than or equal to \"ItemID2\".\n\u25cf \"<\" will return true if \"ItemID1\" is smaller than \"ItemID2\".\n\u25cf \"<=\" will return true if \"ItemID1\" is smaller than or equal to \"ItemID2\".\nThe first \"NA\" decides how the left side of the equation is handled, so \"ItemID1\" and \"Mod1\". The second \"NA\" decides how the right side of the equation is handled, so \"ItemID2\" and \"Mod2\". Here are all the options you can set and how they behave.\n\u25cf NA: The default way Geometry Dash handles the numbers. Using this mode will drop all decimal points.\n\u25cf RND: Rounds the number to the closest integer. If we take our example, 3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4 instead of 3.\n\u25cf FLR: Stands for floor function, which means it will always round down to the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.\n\u25cf CEI: Stands for ceiling function, which means it will always round up to the next higher integer. For example 1/10 = 0.1 would be rounded up to 1.\n110\n\n Persistent Item\nThis Trigger marks Item IDs as persistent. Persistent Item IDs do not get reset when you die. However, they are reset when you exit the level.\n\u25cf Item ID: The Item ID you want to mark as persistent. Note that if your Item ID is a Timer, you have to select the \"Timer\" option to the right of \"Item ID\".\n\u25cf Persistent: Marks the ID as persistent, so the value will not be reset upon death.\n\u25cf TargetAll: Targets all persistent Item IDs at once.\n\u25cf Reset: Resets the Item ID to 0.\nRandom\nRandomly triggers one of two Group IDs.\n\u25cf Group ID 1/Group ID 2: The two Group IDs that can be triggered.\n\u25cf Chance %: The chance that \"Group ID 1\" is triggered. For example, if this is set to 80, \"Group ID 1\" has an 80% chance of being triggered, while \"Group\nID 2\" has a chance of 100% - 80% = 20%.\nAdvanced Random\nRandomly triggers one of up to 10 Group IDs.\n\u25cf Group ID: The Group ID you want to have a chance of being triggered.\n\u25cf Chance: How likely it is for this Group ID to be triggered. The way the odds\nare calculated is by multiplying the \"Chance\" value by 100, and then dividing it by the sum of all \"Chance\" values so far and the one you are about to add.\n111\n\n For example, if you add Group ID 1 with a \"Chance\" of 20, and then add Group ID 2 with a \"Chance\" of 50, the odds will be calculated as follows. \"Chance\" of Group ID 2, 50, is multiplied by 100, resulting in 5000. Afterwards, it is divided by both the \"Chance\" of Group ID 1 and 2, so 5000 / 70 \u2248 71%. This is the odds Group ID 2 will have, while Group ID 1 will have odds of (20 * 100) / 70 \u2248 29%. If you were to add Group ID 3 with \"Chance\" at 60, the odds would change to (20 * 100) / 130 \u2248 15% for Group ID 1, (50 * 100) / 130 \u2248 38% for Group ID 2, and (60 * 100) / 130 \u2248 46% for Group ID 3.\nSequence\nThe Sequence Trigger is used to spawn a sequence of Triggers. Every time the Trigger is triggered, it will advance one step further in the sequence.\n\u25cf GroupID/Count: The Group ID you want to spawn, with \"Count\" being how often you want to spawn it.\n\u25cf MinInt: Minimum interval that has to pass before you can activate the next step in the sequence.\n  112\n\n \u25cf Reset: If set to 0, this option is ignored. If the Trigger is not triggered for the duration you input here, it will stop the sequence and start from the beginning again the next time you use it.\n\u25cf Mode Stop: The sequence stops once you reach the end.\n\u25cf Mode Loop: The sequence starts from the beginning again after you reach\nthe end.\n\u25cf Mode Last: The sequence will finish like normal, and after hitting the\nTrigger again, only the last Group ID will be triggered every time.\n\u25cf Reset Full: If the Trigger has not been triggered for the \"Reset\" time, the\nTrigger will return to the first Group ID in the sequence.\n\u25cf Reset Step: If the Trigger has not been triggered for the \"Reset\" time, the\nsequence will go back to the Group ID before the current one.\nFor example, let us say you have a sequence of Group IDs 1, 2, 3, and 4, and use \"Reset Step\" with a \"Reset\" time of 1 second. You trigger the first 4 sequences. If you do not activate the Trigger for 1 second, it will trigger Group ID 3. If you do not activate the Trigger for 2 seconds, it will trigger Group ID 2.\nSpawn Particles\nSpawns particles upon activating the Trigger. Note that the particles you want to spawn cannot have an infinite duration, and that the Trigger will spawn the particles once on activation and not loop like normal.\n\u25cf Particle Group: Group ID of the particles you want to spawn at the \"Position Group\". It can consist of multiple particles.\n\u25cf Position Group: Position at which the particles will spawn. This Group ID can only consist of one object.\n113\n\n \u25cf Offset X/Y: Offsets the position the particles are spawned at relatives to \"Position Group\". A positive value adds an offset right and up respectively, and vice versa. Note that one block is equal to 30.\n\u25cf OffVar X/Y: Adds a variance for the particle target position. This basically means that the particles will spawn in a random location within these boundaries. Note that one block is equal to 30, and that the value is drawn in both directions.\n\u25cf Rotation: Changes the rotation of the particles.\n\u25cf Scale: Changes the scale of the particles.\n\u25cf Match Rot: Makes the rotation of the spawned particles match. Only\nuseful when \"Particle Group\" contains multiple particles without rotation set in their own settings.\nReset\nResets Collectables and the checkpoint object. Objects will appear again when this Trigger is activated and can be collected again.\n\u25cf Group ID: Group ID of the objects you want to reset. 114\n   \n Zoom\nZooms the camera. The center point for the zoom is the camera center.\n\u25cf Zoom: The value you want to zoom to. If you want to return to the default state, leave this value at 1.000.\n\u25cf Time: The duration in which the zoom should happen.\n\u25cf Easing: Easing options change the way the objects start and end their\nmovement.\nStatic Camera\nUses a Target Group ID as the center of the screen and locks to that object.\n\u25cf Target Group ID: The Group ID that should be seen as the camera center. Can only consist of a single object.\n\u25cf X Only/Y Only: The camera only takes the object's X or Y position as the camera X or Y center respectively.\n\u25cf Follow: Follows the movement of the object.\n\u25cf Easing: Adds an easing duration when following an object.\n\u25cf Smooth Velocity: Reacts to player velocity and tries to move the camera\nsmoothly to where you want. The path is calculated by using a Be\u0301zier\ncurve.\n\u25cf Modifier: Shifts the Be\u0301zier curve for the \"Smooth Velocity\" option.\n\u25cf Exit Static: Exits the static mode and returns to the default camera\nlocation.\n\u25cf Exit Instant: The camera instantly snaps back to the default camera\nlocation when using \"Exit Static\".\n\u25cf Duration: The duration for the camera to reach the object.\n115\n\n Camera Offset\nOffsets the camera center.\n\u25cf Offset X: Moves the camera center along the X-axis. One block is equal to 10. Input a positive number to move to the right, and input a negative one to move to the left.\n\u25cf Offset Y: Moves the camera center along the Y-axis. One block is equal to 10. Input a positive number to move up, and input a negative one to move down.\n\u25cf Move Time: The duration for the camera to finish offsetting.\nGameplay Offset\nOffsets the player by 2.5 blocks to the right, putting them in the X-axis center of the screen (assuming no other camera modifications have been made). Note that the movement is always 2.5 blocks (or 75 steps) no matter what camera offset or zoom you have.\nCamera Rotation\nRotates the camera.\n\u25cf Move Time: How long it should take to reach the rotation.\n\u25cf Degrees: Rotation you want to have. Enter a positive value to rotate\nclockwise, and enter a negative one to rotate counter-clockwise. Leave this\nat 0 to return to the default rotation.\n\u25cf Easing: Changes the way the objects start and end their movement.\n116\n\n Camera Edge\nSets edges for the camera. If the edge is within the current screen, it will either snap for the object to be at the edge or ignore it until the object is outside the screen, depending on the zoom level. The camera edge will adjust with the movement of the edge objects.\n\u25cf Target ID: The Group ID you want to set as the edge. It can only consist of a single object.\n\u25cf Left/Right/Up/Down: Defines what kind of edge it is. Enabling left would set the object as the left edge of the screen, while down would set it at the bottom edge of the screen, and so on.\n\u25cf Unlock: Press this button to return to the default state. You can also just leave \"Target ID\" at 0.\nCamera Guide\nDoes not serve any other purpose besides functioning as a guide to see the camera edges of different zooms. Can also be used as the \"Target Group\" for the Static Camera Trigger to always have a good understanding of what the screen will look like.\n\u25cf Zoom: The zoom level you want to display. If you want to return to the default state, leave this value at 1.000.\n\u25cf Offset X: Moves the outlines along the X-axis. One block is equal to 30. Input a positive number to move to the right, and input a negative one to move to the left.\n\u25cf Offset Y: Moves the outlines along the Y-axis. One block is equal to 10. Input a positive number to move up, and input a negative one to move down.\n 117\n\n Reverse\nReverses the player direction in Classic levels. Does not do anything in Platformer.\nRotate Gameplay\nRotates the gameplay (not the camera) in the direction the arrow points. The line that is below the arrow indicates the gravity.\nThe Rotate Gameplay Trigger direction determines how the Channel\u2019s Triggers are sorted. For example, if the Rotate Gameplay Trigger points up, Triggers with a smaller Y value are triggered first, and higher ones later. If the Trigger points right, Triggers with a smaller X value are triggered first and higher ones later, and so on. See Channel System for more information.\n\u25cf Keep Velocity: Keeps the velocity the player has before the gameplay rotation and smoothly transitions it to the new gravity. Results in smoother movement overall.\n\u25cf Change Channel: Changes the Channel to the number you have entered in the number box at the bottom.\n\u25cf Channel Only: Only changes the Channel and does not update the gameplay rotation.\n\u25cf Instant Offset: The camera updates instantly when switching gameplay to the opposite direction.\n 118\n\n Song\nChanges the song in the middle of a level.\n\u25cf Channel: There are 5 Channels on which a song can play. Songs on different Channels will play simultaneously, while only one song can play on the same Channel. Note that Channels used for music are not the same as Color Channels or the ones mentioned for Rotate Gameplay Triggers.\n\u25cf Start/End: The time (in milliseconds) at which you want the song to start and end.\n\u25cf Fade In/Fade Out: The time (in milliseconds) at which the song should fade in and out.\n\u25cf Prep/Load Prep: Setting a song time introduces some delay depending on the seek time. If you need the song to sync precisely, you first have to \"Prep\" the Trigger, then \"Load Prep\" later. \"Prep\" overwrites any previous \"Prep\", so if you have multiple Song Triggers, you have to alternate between loading them. For example, \"Prep\" and \"Load Prep\" for the first, \"Prep\" and \"Load Prep\" for the second, and so on.\nEdit Song\nEdits attributes of a song, such as volume, speed and also allows for proximity options.\n\u25cf Channel: The Channel you want to edit the song of.\n\u25cf Duration: How long it should take for the song to change to the new\nsettings.\n\u25cf Speed: Changes the speed of the song. Note that you have to enable the\n\"Change Speed\" button for the speed to actually change.\n\u25cf Volume: Changes the volume of the song. Note that you have to enable\nthe \"Change Volume\" button for the speed to actually change. 119\n \n \u25cf Stop/Stop Loop: \"Stop\" stops the song entirely, while \"Stop Loop\" stops the looping of the song, so it will stop the next time it reaches the end.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance should be drawn from.\n\u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n  120\n\n \u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively. Above is an example with \"MinDist\" set to 30 and both \"Dist2\" and \"Dist3\" set to 20. \"MinDist\" refers to the closest length and is drawn in red, while \"Dist2\" refers to the middle length and is drawn in green. Finally, \"Dist3\" refers to the furthest length and is drawn in blue. The distances stack with each other. For example, if your \"MinDist\" is 20 and your \"Dist2\" is 30, the \"Dist2\" circle will be drawn 5 blocks from the object in Group ID 1, and not 3 blocks.\nThe various arrow buttons indicate how proximity is handled. Here are all options and how their sound is drawn. The distance options will be drawn from the Group ID 2 object (in this case Player 1) towards the arrow direction. In these examples, black is equal to the highest volume and gray is equal to the lowest.\nTable 7.2: Proximity buttons.\n        121\n\n                 122\n\n                 123\n\n SFX\nYou can choose a sound effect (SFX) to play from the menu in the top right of the first page.\n\u25cf Reverb: Reverb is created when a sound occurs in a space, resulting in the SFX changing pitch and echo accordingly. By clicking the \"+\" button, you can select different spaces for the SFX to occur in.\n\u25cf FFT: Stands for fast Fourier transform. \"FFT\" is used to determine the fundamental frequencies and therefore pitches that are present in the raw signal.\n\u25cf Loop: Loops the SFX until stopped.\n\u25cf Pre Load: Setting a start time introduces some delay depending on the\nseek time. If you need the SFX to sync precisely, you can preload it.\n\u25cf Start/End: Start and end of the SFX in milliseconds.\n\u25cf FadeIn/FadeOut: Fades the SFX in and out respectively, with the values\nbeing in milliseconds.\n\u25cf Unique ID: Assigns a unique ID to SFX within their respective \"SFXGroup\".\nBy enabling the \"IsUnique\" option, you mark the ID as unique, resulting in\nno other SFX being able to take that ID if it is in the same \"SFXGroup\".\n\u25cf SFXGroup: You can have several SFX and put them into their own\n\"SFXGroup\". This Group ID can later be edited.\n\u25cf MinInterval: Minimum interval before the SFX can be triggered again.\n\u25cf Override: If another SFX has the same \"Unique ID\" and \"SFXGroup\", this\nnew SFX will override the old one.\n\u25cf Ignore Volume Test: SFX played at volume 0 are ignored. Enable this\noption to not ignore them. This is mainly used for the proximity options,\nwhere the sound will not play if any distance has a volume of 0.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance\nshould be drawn from.\n124\n\n \u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n\u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively.\nSee figure 7.33 and table 7.2 under Edit Song Trigger for more information on proximity.\nEdit SFX\nEdits attributes of a sound effect (SFX), such as volume, speed and also allows setting up proximity options.\n\u25cf Group ID: You can give the SFX Triggers you want to edit a Group ID and change them through this field.\n\u25cf SFXGroup/UniqueID: \"SFXGroup\" and \"UniqueID\" can be used to reference the exact SFX you want to edit. You should put the same values you put into the SFX Trigger here.\n\u25cf Duration: How long it should take for the SFX to change to the new settings.\n\u25cf Speed: Changes the speed of the SFX. Note that you have to enable the \"Change Speed\" button for the speed to actually change.\n\u25cf Volume: Changes the volume of the SFX. Note that you have to enable the \"Change Volume\" button for the speed to actually change.\n 125\n\n \u25cf Stop/Stop Loop: \"Stop\" stops the SFX entirely, while \"Stop Loop\" stops the looping of the SFX, so it will stop the next time it reaches the end.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance should be drawn from.\n\u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n\u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively.\nSee figure 7.33 and table 7.2 under Edit Song Trigger for more information on proximity.\nEvent\nSpawns a Group ID upon a player action. The action can be selected from the top right menu.\n\u25cf Group ID: The Group ID that is spawned when the player does the action.\n\u25cf Extra ID/Extra ID2: You can input a Material ID here for the action to only\napply if you are on that Material ID. For example, if you choose \"Normal Landing\" and enter a Material ID used for a specific a block, you will only activate the Group ID if you land on that block.\n 126\n\n TimeWarp\nSpeeds up or slows down time. This affects everything, including player movement, durations in Triggers, Timers, and so on..\n\u25cf TimeMod: Modifier for the time. The value you input here will be multiplied with the normal time, so less than 1 will slow the time down and above 1 will speed time up.\nCamera Mode\nAllows switching between Free Mode and Normal Mode for camera. In Free Mode, the borders for Ship, Ball, UFO, Wave, Spider, and Swing are removed.\n\u25cf Edit Camera Settings: Allows you to edit how the camera follows the player in Free Mode. \"Easing\" changes how the camera starts and ends its movement, while \"Padding\" modifies how close the player has to be to the top or bottom of the screen for the camera to start following.\n\u25cf Disable GridSnap: Normally the camera center will snap to the closest grid space. With this option enabled, the snapping will not happen.\nSetup MG\nMoves the Middleground.\n\u25cf Offset Y: Moves the Middleground up or down. Input a positive value to move it up, and enter a negative value to move it down.\n\u25cf Easing: Easing options change the way the Middleground starts and ends its movement.\n\u25cf Move Time: Duration until the Middleground finishes its movement.\n127\n\n BG/MG Speed\nModifies the speed at which the Background and Middleground follow the player.\n\u25cf Mod X/Mod Y: Modifies the X-axis speed and Y-axis speed respectively. The value you input here will be multiplied with the default speed, with 0 stopping the movement entirely.\nCounter Label\nDisplays Item IDs, Timers, or Points.\n\u25cf ItemID: The Item ID that should be displayed. The value of Item IDs can be changed with Pickup Triggers, Time Triggers or Collectables depending on what option you choose.\n\u25cf Time Counter: Functions as a Timer. You need a Time Trigger to use this Timer.\n\u25cf Seconds Only: The Timer only displays the seconds.\n\u25cf MainTime: Also functions as a Timer that displays the exact game time.\n\u25cf Points: Points can be configured in the \"Edit Special\" page of Collectables.\n\u25cf Attempts: Displays the current attempt the player is on.\n\u25cf Left Align/Right Align: Aligns the ID to the left or right border respectively.\nThe width will change depending on what value it has (for example 8 is wider than 1). By default, the width will be extended the same to the left and right. Choosing \"Left Align\", the width will expand only to the right, while choosing \"Right Align\" will expand only to the left.\n     128\n\n UI Settings\nMarks objects as user interface and puts them on a UI layer which is in front of everything else, including the Ground. The UI layer is permanent and cannot be edited.\n\u25cf Group ID: The objects that get marked as UI.\n\u25cf UI Target: This Group ID is marked as the camera center reference and can\nonly consist of one object.\n\u25cf XRef/YRef: The reference points for aligning the object.\n\u25cf Auto/Center/Left/Right/Top/Bottom: \"Auto\" aligns objects based on the\ncamera edges of the \"UI Target\" object. \"Center\" uses the center of the object as the camera center. \"Left\" uses the object as the left edge of the camera, while \"Right\" uses the object as the right edge of the camera. Similarly, \"Top\" uses the object as the top edge of the camera, while \"Bottom\" uses the object as the bottom edge of the camera.\n\u25cf Relative: The position of the UI will scale with the screen aspect ratio.\n  129\n\n Visibility Link\nThis makes every object in a Group ID visible, as long as any of its objects are on screen. It is useful for larger collection of blocks that go offscreen often. Note that it cannot be toggled throughout the level.\n\u25cf Group ID: The objects you want to be fully visible. This is processed at level load.\nCollision\nSpawns a Group ID when two Collision Blocks collide. One of the two blocks must have the \"Dynamic Block\" activated.\n\u25cf BlockA ID/BlockB ID: Groups of Block 1 and Block 2, one of which has to have the \"Dynamic Block\" option enabled.\n\u25cf Target ID: The Group ID that gets spawned when the blocks collide.\n\u25cf P1/P2/PP: Enabling \"P1\" or \"P2\" allows triggering upon Player 1 or 2\ncolliding with \"BlockB ID\" respectively. Enabling both options allows for triggering when either player collides with it. \"PP\" triggers the Group ID when both players collide with each other in Dual Mode.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n\u25cf Trigger On Exit: The Group ID will be triggered when the blocks do not collide anymore.\n 130\n\n Instant Collision\nInstant Collision Triggers function similarly to Collision Triggers, however it is only checked on Trigger activation if the condition is true or false. Normal Collision Triggers check if the condition is true all the time.\n\u25cf BlockA ID/BlockB ID: Groups of Block 1 and Block 2, one of which has to have the \"Dynamic Block\" option enabled.\n\u25cf True ID/False ID: The Group ID that gets spawned if \"BlockA ID\" and \"BlockB ID\" collide or do not collide respectively in the moment the Trigger is activated.\n\u25cf P1/P2/PP: Enabling \"P1\" or \"P2\" allows triggering upon Player 1 or 2 colliding with \"BlockB ID\" respectively. Enabling both options allows for triggering when either player collides with it. \"PP\" triggers the Group ID when both players collide with each other in Dual Mode.\nCollision State\nSpawns a Group ID when the player enters and exits the block hitbox. Functions as a quicker alternative to Collision Blocks.\n\u25cf State On/State Off: The Group ID that is spawned if the player is colliding with the Collision State hitbox or not colliding respectively.\nCollision Block\nThe blocks used for (Instant) Collision Triggers. If you want two blocks to collide, you will have to mark one of them as \"Dynamic\".\n 131\n\n Player Touch\nToggles or spawns a Group ID if the player clicks while within the block hitbox.\n\u25cf Group ID: The Group ID that gets spawned or toggled when the Trigger gets activated.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n\u25cf Claim Touch: The player will not jump and no rings will spawn. The click can not be buffered.\n\u25cf Spawn Only: Clicking only spawns the Group ID and does not toggle it on or off.\n\u25cf NO Multi Activate: By default, the Group ID will be toggled or spawned every time you click within the hitbox. With this option enabled, you can only toggle or spawn it once.\nOn Death\nToggles or spawns a Group ID when the player dies.\n\u25cf Group ID: The Group ID that gets spawned or toggled when the player dies.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n132\n\n Disable/Enable Trail\nDisables and enables the player trail respectively.\nShow/Hide\nShows and hides the player respectively. Hiding the player makes it invisible, but note that you can still see the trail if enabled.\nBG Effect On/Off\nEnables and disables the background particles in Ship, Ball, UFO, Wave.\n      133\n\n End\nMarks an object as the end of the level. The player gets pulled towards it. This Trigger can be used in both Classic and Platformer levels.\n\u25cf TargetPos: The Group ID of the object that should be considered as the position for the end. The Group ID can only consist of one object.\n\u25cf SpawnID: A Group ID that gets spawned when the player reaches the end. This is optional.\n\u25cf Instant: The player will teleport to the end as soon as the object is on screen instead of slowly jumping towards it.\n\u25cf No Effects: Disables the effects that play when you reach the end, such as the effect lines.\n\u25cf No SFX: Disables the SFX that plays when you reach the end. Player Control\nControls behavior of the player.\n\u25cf P1/P2: What player you want to control. Both options enabled or disabled results in both players being affected.\n\u25cf Stop Jump: Stops the player jumping.\n\u25cf Stop Move: Stops the player movement.\n\u25cf Stop Rot: Stops the player rotation.\n\u25cf Stop Slide: Stops the low friction state you are in after being launched by a\nforce block. It does not stop the sliding from slopes or ice blocks.\n134\n\n Options\nSeveral options to change attributes of the level.\n\u25cf Streak Additive: Changes the trail and particles to be blending.\n\u25cf Unlink Dual Gravity: Unlinks the gravity of the icons in Dual Mode. By default, if one icon switches gravity, the other icon will switch gravity as well.\n\u25cf Hide Ground/Hide MG: Makes the Ground and Middleground respectively invisible.\n\u25cf Hide P1/Hide P2: Hides Player 1 or Player 2 respectively. Functions the same like the Hide Trigger.\n\u25cf Disable P1 Controls/Disable P2 Controls: Disables all input for Player 1 or Player 2 respectively.\n\u25cf Hide Attempts: Hides the Attempts counter.\nBPM Guide\nDraws lines in the editor at beats per minute you configure. Helps to make parts sync based on the BPM the song uses.\n\u25cf BPM: Stands for beats per minute. Lines will be drawn based on this number. For example, if you have 60 BPM, a line will be drawn every second.\n    135\n\n \u25cf BPB: Stands for beats per bar. One bar is the space between two BPM lines. The number you input here will split each space into the corresponding sections. For example, if you have a BPM of 60 and a BPB of 2, a line will be drawn every 0.5 seconds.\n\u25cf Duration: How long you want the lines to be drawn.\n\u25cf Speed: Changes the distance between the lines to account for the\ndifferent speeds.\n\u25cf Disable: Hides the lines.\nGradient\nCreates a gradient between two colors. You can change the way the gradient looks by rotating the Gradient Trigger.\n\u25cf Vertex Mode: Draws the gradient between 3 or 4 points which get connected. By default, the gradient can only be a square with defined top, bottom, left, and right boundaries. Using \"Vertex Mode\" allows the gradient to have more interesting shapes.\n\u25cf U/D/L/R: Used to draw the gradient if \"Vertex Mode\" is disabled. The variables refer to the Group IDs of target objects set as up, down, left, and right respectively. These variables work as boundaries for the gradient, so you do not have to set all.\n\u25cf BL/BR/TL/TR: Used for the \"Vertex Mode\" boundaries. The variables refer to the Group IDs of target objects set as bottom left, bottom right, top left, and top right respectively. Note that putting 3 of those variables is enough to draw the gradient in \"Vertex Mode\".\n\u25cf Blending: How the gradient behaves with colors beneath it.\n\u25cf ID: Can be used to reference gradients. For example if you want to disable\na gradient later on.\n136\n\n \u25cf Disable All: Disables all gradients. You can disable only a single gradient by using its \"ID\" and choosing the \"Disable\" option.\n\u25cf Preview Opacity: The opacity the gradient has in the editor preview. Gravity\nChanges the gravity force.\n\u25cf Gravity: Modifies the gravity. A value below 1 makes the player lighter, while a value above 1 makes the player heavier.\n\u25cf P1/P2/PT: The gravity only affects Player 1 or Player 2 respectively. \"PT\" only affects the player that touches the Trigger.\nTeleport\nTeleports the player to a set location.\n\u25cf Target GroupID: The Group ID the player teleports to. The Group ID can only consist of one object.\n\u25cf Gravity: The gravity the player should have after finishing the teleportation. 137\n  \n \u25cf Normal: Normal gravity after teleporting.\n\u25cf Flipped: Flipped gravity after teleporting.\n\u25cf Toggle: The gravity flips to the opposite, depending on what gravity you\nare when teleporting. You flip from normal to flipped and from flipped to\nnormal.\n\u25cf Smooth Ease: The camera follows smoothly to the new position of the\nplayer.\n\u25cf Save Offset: The offset the player has to the Trigger center when\nactivating it is saved and applied to the target object, resulting in a slightly\noffset teleport.\n\u25cf Ignore X/Ignore Y: Does not teleport on the X-axis or Y-axis respectively.\n\u25cf Instant Camera: The camera instantly snaps to the new position.\n\u25cf Snap Ground: The Ground snaps to the new position.\n\u25cf Redirect Dash: Rotates Dash Orb effect to match teleport exit rotation.\nOnly for Platformer levels.\n\u25cf Static Force: You exit the rotation based on the rotation of the target, with\na force applied.\n\u25cf Force: The force the player should have when exiting the teleport. The\nforce is applied in the direction of the target object rotation.\n\u25cf Redirect Force: The force the player should have when exiting the\nteleport. The force is applied in the direction of the target object rotation\nand an input force.\n\u25cf Min/Max: Limits the exit force. If you leave this value at 0, no limit will be\nset.\n\u25cf Mod: Modifies the input force value. The speed you have will be this value\nmultiplied with the speed you have when teleporting.\n138\n\n Shader\nShader Triggers edit how the other Shader Triggers work. You can disable shader effects and limit the layers they affect.\n\u25cf Disable All: Disables all other shaders.\n\u25cf No Player Particles: When using a shader which only affects the player\nlayer, the particles might look weird due to different rendering. This option disables the shader from the particles.\nWith the buttons at the bottom, you can choose the layers affected by the shaders. The blue buttons are the highest and lowest layer that will be affected. The green buttons are the ones in between which will be affected, and the gray ones will not be affected.\nShockWave\nCreates a shockwave effect.\n\u25cf Speed: The speed at which the shockwave will happen. 139\n  \n \u25cf Strength: How strong the shockwave is. The lower the value, the less distorted objects get.\n\u25cf Thickness: The \"thickness\" of each wave. The higher the value, the thicker the wave will be.\n\u25cf WaveW: Wave width. The higher the value, the less distorted it is.\n\u25cf FadeIn/FadeOut: Fades the shockwave in and out. The higher the value,\nthe longer it takes to fade in or out respectively.\n\u25cf TimeOff: Time offset before the shockwave starts, with the value being in\nseconds.\n\u25cf MaxSize: Modifies the max size of the wave. Leaving it at 0 will put it at the\nmax value. The value you put here will be multiplied with the wave size.\n\u25cf Invert: Inverts the shockwave effect to go from outside to inside instead of\ninside to outside.\n\u25cf Inner: Size of the waves in the middle of the shockwave. Option only\navailable with \"Invert\" enabled.\n\u25cf Outer: Size of the waves at the outside of the shockwave. Higher values\nmeans it will take longer to reach the center. Option only available with \"Invert\" enabled.\n  140\n\n \u25cf Target: Chooses a Group ID as the center of the shockwave. The Group ID can only consist of one object.\n\u25cf P1/P2: Makes Player 1 or Player 2, respectively, the center of the shockwave. Option only available with \"Target\" enabled.\n\u25cf Follow: Follows \"Target\". By default, it will only check the position of the target when the Trigger is activated and spawn the shockwave there. With this option enabled, the center will follow the target. Option only available with \"Target\" enabled.\n\u25cf Relative: The shockwave follows the screen movement. By default, it will stay at the position it was triggered at.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the shockwave. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\nShock Line\nCreates a shock line effect.\n\u25cf Speed: The speed at which the shockline will happen.\n\u25cf Strength: How strong the shockline is. The lower the value, the less\ndistorted objects get.\n\u25cf Thickness: The thickness of each line. The higher the value, the thicker the\nwave will be.\n\u25cf WaveW: Line width. The higher the value, the less distorted it is.\n\u25cf FadeIn/FadeOut: Fades the shockline in and out. The higher the value, the\nlonger it takes to fade in or out respectively.\n\u25cf TimeOff: Time offset before the shockline starts with the value being in\nseconds.\n\u25cf MaxSize: Modifies the max size of the line. Leaving it at 0 will put it at the\nmax value. The value you put here will be multiplied with the line size. 141\n\n \u25cf Invert: Inverts the shockline. If considered in a 3D perspective, the highs of the line will become lows and the other way around.\n\u25cf Flip: Flips the line to go from right to left instead of left to right.\n\u25cf Rotate: Rotates the line to go from bottom to top instead of left to right.\n\u25cf Dual: Creates two shock lines from the middle, which go to the left and\nright respectively.\n\u25cf Target: Chooses a Group ID as the center of the shockline. The Group ID\ncan only consist of one object.\n\u25cf P1/P2: Makes Player 1 or Player 2 respectively the center of the shockline.\nOption only available with \"Target\" enabled.\n\u25cf Relative: The shockline follows the screen movement. By default, it will\nstay at the position it was triggered at.\n\u25cf ScreenOff: Offsets the center of the shockline. Negative numbers offset it\nto the left or bottom respectively, while positive numbers offset it to the right or up respectively. Note that the directions depend on what option you choose from the buttons above.\nGlitch\nCreates a glitch effect.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Strength: Strength of the effect. All other values will be multiplied with the\nstrength and adjusted accordingly.\n\u25cf Speed: Speed at which the glitch effects happen. The lower the value, the\nslower the effects.\n\u25cf SliceHeight: During the glitch effect the screen will be sliced, which refers\nto the higher blocks getting offset on the X-axis.\n\u25cf MaxSliceXOff: Max offset on the X-axis that the objects can be sliced.\n142\n\n \u25cf MaxColXOff/MaxColYOff: Max distance offset for the color on the X-axis and Y-axis respectively.\n\u25cf Relative: The shockline follows the screen movement. By default, it will stay at the position it was triggered at.\nChromatic\nChromatically splits the colors.\n\u25cf TargetX/TargetY: How far the colors will split on the X-axis and Y-axis respectively. You have to enable the \"Use X\" and/or \"Use Y\" option for the distance to apply.\n\u25cf FadeTime: Time for the effect to apply fully. Chromatic Glitch\nChromatically splits the colors while adding a wave effect and glitch lines.\n\u25cf Speed: Speed at which the wave effect happens.\n\u25cf Strength: How big the waves are.\n\u25cf LineThickness: Thickness of the glitch lines.\n\u25cf LineStrength: Opacity of the glitch lines.\n\u25cf RGBOff: How far the RGB values are offset.\n\u25cf Duration: Time for the effect to apply fully.\n\u25cf SegmentH: Height of a segment. A segment consists of one wave effect\nand a glitch line.\n\u25cf RelativePos: With this option enabled, the shape of the effect will stay in\nplace no matter the Y height. With it off, the effect will always stay in the center of the screen.\n143\n\n   Pixelate\nPixelates the screen.\n\u25cf TargetX/TargetY: How much the screen will pixelate on the X-axis and Y-axis respectively. You have to enable the \"Use X\" and/or \"Use Y\" option for the distance to apply.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Snap Grid: Snaps the pixels to the grid. Without this option, the pixels will\nsmear a little when the player moves.\n144\n\n Lens Circle\nCreates a lens circle.\n\u25cf Size: Size of the circle. The smaller the number, the more closed the circle is.\n\u25cf Fade: How much the circle fades out. The smaller the number, the less fade there is.\n\u25cf FadeTime: Time for the effect to apply fully. The circle will zoom in or out instead of fading in.\n\u25cf Strength: Opacity of the lens circle.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the lens circle. Negative\nnumbers offset it to the left or bottom respectively, while positive numbers\noffset it to the right or up respectively.\n\u25cf CenterID: Center of the lens circle. The Group ID can only consist of one\nobject.\n\u25cf Tint Channel: Color Channel to use for the lens circle. It will be black by\ndefault.\n\u25cf Easing: Easing options change the way the circle starts and ends its\nmovement.\nRadial Blur\nBlurs the screen radially, so drawing a circle around the center with a given radius.\n\u25cf Size: Size of the blur. In other words, how much it is blurred per distance from the center.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Intensity: Opacity of the blur.\n145\n\n \u25cf Ref Channel: Uses a Color Channel to reference the fade color. By default, the fade will go towards the Background Color.\nTable 7.3: \"Ref Channel\" behavior.\n\u25cf Screen OffX/Screen OffY: Offsets the blur center. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\n\u25cf Fade: The smaller the fade value, the more blocks will blur out. You can compare this setting to the \"Fade\" setting in the Lens Circle Trigger, where it is easier to visualize.\n\u25cf Easing: Easing options change the way the circle starts and ends its movement.\n    No Ref Channel\nRef Channel\n  The red object has blur applied. As you can see, the blur color fades towards the Background Color, which looks weird on a yellow Background.\nHere we set the yellow Color Channel as the \"Ref Channel\", which makes the blur fade towards yellow.\n       146\n\n \u25cf Target: Uses a Group ID as the center the blur from. The Group ID can only consist of one object.\n\u25cf EmptyOnly: The blur will only be drawn to pixels that are empty. Table 7.4: \"EmptyOnly\" behavior.\nMotion Blur\nBlurs objects based on the X-axis, Y-axis, or a Center Group ID.\n\u25cf TargetX/TargetY: Amount of blur that will be applied to the X-axis and Y-axis respectively.\n\u25cf Ref Channel: Uses a Color Channel to reference the fade color. By default the fade will go towards the Background Color. See table 7.3.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Fade: The smaller the fade value, the more blocks will blur out. You can\ncompare this setting to the \"Fade\" setting in the Lens Circle Trigger, where\nit is easier to visualize.\n\u25cf Follow Ease: Used for the \"TargetID\" option, which follows the object's or\nplayer's movement to reference the blur. \"Follow Ease\" eases the movement, resulting in less or more blur upon movement.\n    Without EmptyOnly\nWith EmptyOnly\n       147\n\n \u25cf Intensity: Opacity of the blur.\n\u25cf DualDir: Blurs in both directions instead of only one. By default, \"TargetX\"\nwill only blur left and \"TargetY\" will only blur down.\n\u25cf EmptyOnly: The blur will only be drawn to pixels that are empty. See table\n7.4.\n\u25cf TargetID: Uses a Group ID or the player's movement as the reference for\nthe blur. If the Group ID or player does not move, there will be no blur. On quick movements, there will be a lot of blur. If a Group ID is used, it can only consist of one object.\nBulge\nBulges the screen.\n\u25cf Bulge: How much the screen will bulge.\n\u25cf Radius: How large the bulge circle is.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the bulge. Negative\nnumbers offset it to the left or bottom respectively, while positive numbers\noffset it to the right or up respectively.\n\u25cf FadeTime: Time for the effect to apply fully. The bulge will zoom in and out\ninstead of fading in.\n\u25cf Target: Uses a Group ID as the center the bulge zooms from. The Group ID\ncan only consist of one object.\nPinch\nPinches the screen. Works in the opposite way of the Bulge Trigger.\n\u25cf TargetX/TargetY: How much the screen gets pinched on the X-axis and\nY-axis respectively. The smaller the number, the smaller the pinch.\n 148\n\n \u25cf Screen OffX/Screen OffY: Offsets the pinch center. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\n\u25cf Radius: The radius of the circle.\n\u25cf Modifier: Modifies all values. All values will be multiplied with the value you\nput here.\n\u25cf FadeTime: Time for the effect to apply fully. The pinch will zoom in and out\ninstead of fading in.\nGray Scale\nAdds a grayscale filter to the screen.\n\u25cf Target: Percentage of grayscale that is applied. For example, with 0.5 the screen will tint 50% gray.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Tint Channel: Tints the screen in a Color Channel instead of gray.\n\u25cf UseLum: Refers to luminosity, which is a different way to convert color to\ngrayscale. Luminosity forms a weighted average to account for human\nperception. The formula for luminosity is 0.21*R + 0.72*G + 0.07*B.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\nSepia\nAdds a sepia filter to the screen.\n\u25cf Target: Percentage of sepia that is applied. For example, with 0.5 the screen will tint 50% sepia.\n\u25cf FadeTime: Time for the effect to apply fully.\n149\n\n Invert Color\nInverts the screen colors.\n\u25cf Target: Percentage of how much color inversion will be applied. For example, with 0.5 the screen will be 50% inverted.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf R/G/B: Percentage of the red, green, and blue value respectively. For\nexample, the color white has the RGB values 255, 255, 255. If you put the R slider to 0.5, it will multiply 255 with 0.5, which is 127.5. Now, the new color would be 127.5, 255, 255, which is a brighter blue color. Note that the color values are inverted due to the Trigger.\n\u25cf EditRGB: Allows editing the RGB values with the sliders above.\n\u25cf TweenRGB: If you are in the inverted color state with EditRGB values, and\nwant to change to different RGB values the switch will be instant. With this\noption enabled, they will transition smoothly to the new RGB you set.\n\u25cf ClampRGB: Limits the values to 1 so that they cannot go past that value.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\n150\n\n Table 7.5: Example of Invert Color Trigger options.\n     \"R/G/B\" with 1, 1, 1\n\"R/G/B\" with 2, 1, 1\n\"R/G/B\" with 2, 1, 1 and \"ClampRGB\"\n   Normal transition to the inverted color. Same with \"EditRGB\" enabled or disabled.\nThe transition to red will be quicker, resulting in an overall red tint. Only with \"EditRGB\" enabled.\nThe same result as using 1, 1, 1. The transition is still quicker for the red color, however the result is not tinted. \"ClampRGB\" limits the values between 0 and 1.\n      Hue\nShifts the screen hue.\n\u25cf Degrees: How many degrees the color should shift.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\n151\n\n Edit Color\nEdits the color of the screen.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf CR/CG/CB: Stands for color red, green and blue. Tints the screen in the\ncorresponding color, with 1 being no tint. The smaller the value, the more\nof that color is used.\n\u25cf BR/BG/BB: Brightness red, green and blue. Works like the \"Brightness\"\nslider in the \"HSV\" menu when editing colors.\nSplit Screen\nSplits the screen in identical sections.\n\u25cf TargetX/TargetY: How many sections the screen gets split in the X-axis and Y-axis respectively. The number you input here gets one more added, so with \"TargetX\" at 1 you split the screen in 2 sections. You have to enable the \"Use X\" and/or \"Use Y\" option respectively to split the screen.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Easing: Easing options change the way the movements start and end\ntheir transitions.\nEnter Effects\nChanges how blocks enter and/or exit the screen.\n\u25cf Target Enter Channel: Input a Enter Channel ID and assign an Enter Channel ID to objects. The Enter Effect will only affect the objects with the same Enter Channel ID. By default, all blocks will be affected.\n\u25cf Enter Only/Exit Only: The effect will only be displayed when the objects enter or exit the screen respectively.\n152\n\n Table 7.6: Enter Effects.\n     Effect\nExplanation\nExample\n The objects do not scale in and out, but they still fade in and out.\n  Objects enter the screen by moving down from the top and fading in. Objects exit the screen by moving up and fading out.\n  Objects enter the screen by moving up from the bottom and fading in. Objects exit the screen by moving down and fading out.\n  Objects enter the screen by appearing from behind the blocks and moving to the right. Objects exit the screen by moving to the left and fading out.\n  Objects enter the screen by moving in from the right and fading in. Objects exit the screen by disappearing behind the blocks and fading out.\n             153\n\n       Objects enter the screen by scaling up and fading in. Objects exit the screen by scaling down and fading out.\n  Objects enter the screen by scaling down and fading in. Objects exit the screen by scaling up and fading out.\n  Objects enter and exit the screen in a chaotic movement, fading and out respectively.\n  Objects enter the screen by the top half moving down, and the bottom half moving up. They also appear from behind the blocks and move to the right and fade in. Objects exit the screen by splitting in half, with the top moving up and the bottom moving down while moving to the left and fading out.\n  Objects enter the screen by the top half moving down and the bottom half moving up. They move in from the right and fade in. Objects exit the screen by splitting in half, with the top moving\n           154\n\n      up and the bottom moving down while disappearing behind the blocks and fading out.\n Objects enter the screen by the top half moving down and the bottom half moving up while fading in. Objects exit the screen by splitting in half, with the top moving up and the bottom moving down while fading out.\n  Objects enter the screen by the top half moving up and the bottom half moving down while fading in. Objects exit the screen by splitting in half, with the top moving down and the bottom moving up while fading out.\n  Objects do not fade in and out and also do not have an Enter Effect.\n         155\n\n Move/Rotate/Scale/Fade/Tint Enter\nLets you create custom Enter Effects, similar to the default ones above. Due to these having many of the same settings, we will be explaining them all first and only mention specific ones below. Note that one block is equal to 30 for all of these.\n\u25cf Length: Distance from the screen borders where the effect is applied.\n\u25cf Offset: Offsets the screen borders. Enter a positive value to offset it to the\nright, and a negative value to offset it to the left.\n\u25cf Enter Channel: Used similarly to Group IDs. The objects you want to have\nthe Enter Effect can be set with \"Enter Channel\" under \"Extra2\" in \"Edit\nGroup\".\n\u25cf Effect ID: Specific ID that can be referenced later, for example in Stop\nEnter Effect Triggers.\n\u25cf Enter Only/Exit Only: The effect is only applied on screen entrance or exit respectively.\n\u25cf Easing: Modifies how the objects start and end their transitions.\n    156\n\n For Move Enter, we have these unique settings:\n\u25cf MoveDist: Distance the objects move.\n\u25cf MoveAngle: Angle at which the objects will move. 0 is up, 90 right, 180\ndown, 270 left, and so on.\n\u25cf XY Mode: You can enter X and Y values like in the normal Move Trigger\ninstead of choosing a direction.\nFor Rotate Enter, we have these unique settings:\n\u25cf Rotation: The degrees you want the objects to rotate. Enter a positive value to rotate clockwise, and enter a negative value to rotate counter-clockwise.\nFor Scale Enter, we have these unique settings:\n\u25cf ScaleX/ScaleY: The size the objects scale in the X-axis and Y-axis respectively.\nFor Fade Enter, we have these unique settings:\n\u25cf Opacity: The opacity the objects will fade to when they are near the screen edge.\n 157\n\n For Tint Enter, we have these unique settings:\n\u25cf Color Channel: The color you want to tint the objects in.\n\u25cf %: The percentage you want to tint the color. For example, if you want to\ntint a black object white and set \"%\" to 0.5, the object will turn gray.\n\u25cf Main Only and Secondary Only: Some objects have a Base Color and\nDetail Color, which is seen in the \"Edit Object\" menu. These options only\nchange the these colors respectively.\n\u25cf HSV: Instead of tinting the color of a different Color Channel, you can\nsimply tint the same Color Channel and change the \"HSV\" values of it.\nStop Enter\nStops an Enter Effect. You can stop it by referencing its Enter Channel or its Effect ID.\n158\n\n 8. Custom Objects\nAs mentioned earlier, you can create your own sets of Custom Objects, which can be used across different levels. Custom Objects are in the last tab in the \"Build\" category.\nFrom left to right, the buttons indicate moving a Custom Object design up and down a position, adding a new Custom Object, and deleting an existing one. To add a Custom Object, first create the design. For example:\n    159\n\n Now select all of the objects in your design, and click the \"+\" button to add them as a Custom Object. Your design should appear as a new button in the Custom Objects tab, as seen in figure 8.3.\nYou can now select the Custom Object and place it in the editor whenever you wish. Custom Objects can consist of up to 1000 objects, and you can add up to 200 unique Custom Objects. Select a Custom Object and click the \"\u2013\" button to delete it, as shown in figure 8.4. Note that this action cannot be undone.\n    160\n\n 9. Channel System\nWorking with Rotate Gameplay Triggers can be tricky, especially when you change directions often and want to use many Triggers. See the example in figure 9.1. Normally Triggers are read from left to right, but this can lead to issues in the example. How should the editor know when these Triggers should be activated? This is handled by using the Channel System. Here, we cover a short example on how to use Channels well.\nIn this example, we want the player to go in a circle across all sides and pulse the background in a different color when jumping over a Spike. When playtesting in the editor, you will find that the player does not change rotation when reaching the top left Rotate Gameplay Trigger. This is because the Trigger gets activated first and is immediately overridden by the Trigger in the bottom left. To fix this, we have to change the order in which the Triggers are read.\n    161\n\n Rotate Gameplay Triggers have a \"Change Channel\" option, which puts the player on a different Channel when that Trigger is activated. By default, the player, all Triggers, and all Gameplay Objects are on Channel 0, resulting in everything getting activated from left to right.\nIn our example, we want to activate the Rotate Gameplay Triggers in the following order: bottom right, top right, top left, and bottom left. To achieve this, we change the Channel of the player after reaching the bottom right Trigger, as seen in figure 9.2.\nAfter reaching the Trigger, the player is on Channel 1 instead of 0. While on the right side of the square, we want to activate the right Pulse Trigger and the top right Rotate Gameplay Trigger. To achieve this, we have to put them on the same Channel as the player.\nTo put objects on a different Channel, first select them and click \"Edit Group\". In the bottom right of the menu, you will find a textbox titled \"CH\". This refers to the Channel of the objects. As seen in figure 9.3, you can input \"1\" in \"CH\" to put them on the same Channel as the player.\n    162\n\n   We will now activate the first and second Pulse and Rotate Gameplay Triggers in the correct order. When reaching the second Rotate Gameplay Trigger, we want to put the player on a different Channel again. If we do not do this, the top left Rotate Gameplay Trigger is activated at the same time as the second one, resulting in unwanted behavior. Similar to figure 9.2, we now change the Channel of the player to 2 by using the \"Change Channel\" option in the Rotate Gameplay Trigger.\n  163\n\n We repeat this for all Triggers. We change the Triggers that we want to activate to the Channel the player is currently on, and we change the Channel of the player whenever we reach a new Rotate Gameplay Trigger. See figure 9.5 for the final settings for our example.\nChannels should be used for Speed Changers as well, to ensure that the sync does not behave weirdly when having rotated or reversed gameplay. When playtesting the music in the editor, you will see that the line now changes directions accordingly and at the right position. If you have several Triggers on one Channel, they will be read in the direction of the arrow. You can playtest the music and see the direction in which the line goes to see the order in which the Triggers or Gameplay Objects will be activated.\n   164\n\n 10. Keyframe System\nThe Keyframe System allows you to create precise animations using movement, rotation, and scaling with a single Trigger. This is done with several keyframes, which can be freely modified in turn.\nWe will be going through all the options by creating an example. Assume we want to animate a cube moving in and jumping over Spikes. We will first create the cube we plan to animate and assign a Group ID to it, as well as the Spikes the cube will interact with, as seen in figure 10.2.\n    165\n\n The cube has Group ID 1 assigned to it. We will now place a Keyframe Trigger to understand how basic movement using keyframes works. Place one of these Triggers, click \"Copy+Paste\" to duplicate it, and move the copied Trigger some blocks to the right. The Triggers will draw a green line between them, as seen in figure 10.3. The line indicates that they are connected and are part of the same animation.\nThe Keyframe Triggers by themselves are not enough to create the animation. You need to configure a Keyframe Animation Trigger as well. Assign a Group ID to your first Keyframe Trigger, and input your Group IDs in the Keyframe Animation Trigger, as seen in figure 10.4. The Animation Group ID refers to the Group ID your first Keyframe Trigger has. The Target ID refers to the objects that get animated. The Parent ID is optional and is used to reference the center of the target objects for rotation and scaling. By default, all objects will use their own center. The second page of the Keyframe Animation Trigger modifies several animation options. We will be using some of them later. For more information regarding the settings, check its subchapter in the Triggers chapter.\n    166\n\n   When playtesting, the cube should now move the same distance to the right as the distance between the two Keyframe Triggers. We can now add more Keyframe Triggers and change their positions, rotations, and sizes, and the cube will follow all of them. However, creating precise animations with only the Keyframe Triggers is difficult, as we do not have any reference points. To change this, we will use the \"Preview Art\" option in the Keyframe Triggers.\nFor the Keyframe Triggers to preview our cube, we have to assign a Parent Group ID to the cube. This Parent Group ID works as a reference point for the Keyframe Triggers. All movement, rotation, and scaling will use the Parent Group ID as the center. Our cube should scale and rotate around its own center, so we will add a new object to our cube, as seen in figure 10.5. This object also follows the animation. To mark this object as the Group Parent ID, we will click the \"P\" button in the Edit Group menu. Doing so turns the Group ID pink, as seen in figure 10.6.\n 167\n\n     In the first Keyframe Trigger, we can input the Group ID of our cube now. By clicking the Preview Art option, the keyframe will be replaced with our cube objects, as seen in figure 10.7. Note that the Preview Art option does not work without the objects having a Group Parent ID, as the Keyframe Triggers have no center to draw from without it. You can enable the Preview Art option in the other Keyframe Triggers and hide the Group Parent ID object now.\n168\n\n With our keyframes looking like our art now, we have a lot more control over the movements. However, with all the frames showing at full opacity and layering between them inconsistently, doing exact animations is difficult. You can enable the \"Ref Only\" option in Keyframe Triggers for lower opacity, as seen in figure 10.7. The \"Auto Layer\" option fixes our layering issues. This option draws the most recent keyframe at the highest layer, so you always have it completely visible.\nYou can now create your animation by setting more keyframes at important locations. In our example, this is the beginning of the animation, the position where the cube begins to jump, the movement and rotation during the jump, and the position the cube lands at. You can modify each keyframe position, rotation, and size, as seen in figure 10.8.\n  169\n\n   If you look closely, the jump is not smooth at all. It consists of only straight lines between frames with no curvature. To fix this, enable the \"Curve\" option for the relevant Keyframe Triggers, which results in a much smoother animation, as seen in figure 10.9.\n  170\n\n When playtesting, you will notice that the animation still looks weird. The movement speed between the frames is inconsistent, resulting in the jump being slower than the sliding. The is is because of the \"Time\" option, which checks for the \"Duration\" value. Right now, the \"Duration\" value is 0.5, which means the animation from one keyframe to the next one takes 0.5 seconds. However, we want the duration to change based on the distance of the Triggers. Triggers that are further apart take longer than ones closer to each other.\nWe can achieve this by enabling the \"Dist\" option. The \"Even\" option makes the time between keyframes even, disregarding the distance. Note that the first Keyframe Trigger should always use the \"Time\" option, as the other keyframes marked as \"Ref Only\" will not be considered for the other options otherwise, resulting in rash movements. The Keyframe Triggers should look like this now.\n  171\n\n Depending on how many keyframes you placed, the movement may still look too slow. You can change this by modifying the time variable in the Keyframe Animation Trigger. On the second page, you will find the \"Time Mod\" option, which speeds up or slows down your animation depending on what value you put. A value smaller than 1 will speed the animation up, while a value greater than 1 will slow the animation down. Play around with the \"Time\", \"Even\", \"Dist\", \"Duration\", and modifier settings to find a good balance to create smooth movements.\nWith this, our first animation is complete. Assume that we want to create a second cube jumping over the Spikes from the other side using the same keyframe animation. We first create our second cube and give it a new Group ID. We now want to make a copy of our keyframes. However, using \"Copy+Paste\" does not work, as the keyframes will be connected. We can instead use the \"Dup Anim\" button within the keyframes. By inputting our new Group ID, we are now referencing the new cube. Assign a new Group ID to the first Keyframe Trigger and place a new Keyframe Animation Trigger with all new Group IDs. The result is figure 10.11.\n  172\n\n When playtesting, you will see that the second cube will not jump over the Spikes. Instead, it will follow the exact movement of the first cube. By clicking the \"Reverse Order\" button, the animation is done in reverse like we want. Movement to the right will go to the left instead.\nIf we want to change anything about our cube art, for example adding more details or changing the color, we will see that the Keyframe Trigger art is not updated accordingly. To fix this, click the \"Update Art\" button in any Keyframe Trigger.\nDue to how we set up the keyframes, our rotations will always be in the correct direction. However, you might want to rotate some frames clockwise and others counter-clockwise. You can achieve this by clicking \"CW\" for clockwise or \"CCW\" for counter-clockwise. By default, rotations happen in the closer direction. The \"x360\" option adds an entire rotation before reaching the keyframe.\nWe want to finalize our animation by adding a screen pulse when the cubes land. To do this, we can use the \"Spawn ID\" feature in the Keyframe Triggers. Configure a Pulse Trigger like normal and assign it a Group ID. Input this Group ID into a Keyframe Trigger. The pulse will spawn when the animation reaches that keyframe. Using the \"SpawnDelay\" option can delay the Trigger by a set duration. Alternatively, you can use the \"Prox\" option to spawn the pulse when the cube is close to the keyframe.\n 173\n\n And with that, our animation is finished. Figure 10.12 shows the final setup. You can move the Keyframe Triggers out of the screen now without the animation changing. For an easy way to select all keyframes in an animation, click one of them and click the \"Select All\" button.\n  174\n\n 11. Auto-Build System\nThe Auto-Build System allows you to create designs from a premade template. This makes it particularly useful to speed up block design creation. However, the system can also be used across levels, making it work well for 3D lines, layouts, and more too. To get started, place one of the last 3 objects in the Blocks tab (first tab under \"Build\") in the editor. These are called Smart-Blocks. Afterwards, click \"Edit Special\" to open the following menu:\nWe will be going through all the settings by creating several examples. First, we will use premade templates to achieve some basic designs. Then, we will set up our own templates for more complex designs and use the system to generate random Spike designs.\nWe start by creating a new template. To do this, go to the \"Browser\" tab. It should look like figure 11.2 when you first open it. Click the \"New\" button and enter a name to create a new template.\n  175\n\n     You will see information about our template below the name. \"Defined\" refers to how many different templates we have created. \"Variations\" refers to how many variations our designs have. The \"46\" refers to the default template blocks, which we will use in our first example to create a block design.\n176\n\n Click the \"Browse\" button to see all premade Smart-Block templates, as seen in figure 11.4. By clicking on a template, you can add it to the editor. The amount of templates you add does not matter, but by creating all 46 premade ones, you ensure your template is functional for simple structures. For our example, we will design all templates.\n    177\n\n We can now start creating our design on the template. Blocks with dashed outlines function as references. You fill out the solid outline blocks as if the reference blocks were in your design. See the figure below.\nYou can build your design across different layers. Additionally, you can add details up to 1 block space outside of the Smart-Block. After finishing every design, we have the result in figure 11.7.\n    178\n\n Now that we have finished our design, we want to update our template to include our decoration. Select everything you have created, as well as the Smart-Blocks. Go into the \"Browser\" tab again and ensure you use your template. After doing so, click the blue \"Template\" button on the initial page.\nIf you return to the screen from which we copied the premade templates, our new designs can now be seen, as shown below.\n    179\n\n With that, we have created our first template. We now want to test it by generating the design for custom structures. To do so, build structures using the Smart-Blocks, as seen in figure 11.10. After doing so, select all the Smart-Blocks, open the system's menu from \"Edit Special\", and click the \"Create\" button. This gives the result in figure 11.11.\nWe can automatically fill any Smart-Block structures with our template design. It can also be used across levels if we wish to reuse it at any point.\n    180\n\n Even though the premade templates worked well for our structures, we are still limited in what we can create. Because of this, we now want to add to our template and expand it with new structures and slopes. Click the \"Create All\" button to paste all of your templates so far. Click \"Paste Template\" to see the first structure we want to expand. As you can see, the template does not create the designs correctly, as seen in figure 11.12. We now recreate our design in the new structures to be correct, as seen in figure 11.13.\n    181\n\n We created these structures like new templates. We now also want to add slopes to our templates. To do this, we can make our own templates to decorate. To create your own templates, use the Smart-Blocks to create the structures you need. With more variations, your result gets more precise.\nYou would usually have to create versions for all rotations of the slopes. However, by enabling \"Allow Rotation\", \"Allow Flip X\", and \"Allow Flip Y\" in the main menu, seen below, one version is enough.\n    182\n\n We can now fill the slopes with our design. Like with the premade templates, we can place details up to 1 block space outside the Smart-Blocks.\nLet us create a new template now with all the new templates added. Like before, go to the \"Browser\" tab and create a new template. Use it, select all designs along with their Smart-Blocks, and click \"Template\". The Auto-Build System will deconstruct our slopes into singular blocks, as shown in figure 10.17. With that, we have finished our second template.\n    183\n\n Templates can have several variations, indicated by a small number on the templates, as seen in figure 11.18. Variations can have different odds of being used, which can create more details. In our third and final example, we want to create a template that generates unique configurations of Spikes on the ground.\nWe first decide what Spike variations we want to use. The best way to achieve this is to create all the variations we want in the editor as follows:\n    184\n\n As you can see, the Spikes always start and end with the same Spikes. We also want our Spikes to be variable in length and only have the corner Spikes at the start and end. To achieve this, we will be using reference blocks. Reference blocks indicate that a variation gets used if another Smart-Block is at the location of the reference block. We can use this to set up our templates, as shown in figure 11.21. The left corner Spike requires another Spike to the right of it, while the right corner Spike requires another Spike to the left of it. (You mark a Smart-Block as a reference by clicking the \"Reference Only\" option, as shown in figure 11.20.)\n    185\n\n For our other Spikes, we require another Spike to the left and the right of each. We can use the reference blocks to indicate this by placing one to the left and one to the right of our Smart-Block. Using the same templates six times for all our Spike variations leaves us with the result shown in figure 11.22.\nWe now create a new template, and update it with the templates we created. The template browser should show our corner Spikes and one of the other six Spikes with a small \"6\" on it.\n    186\n\n You can click on the Spike template to view all variations, as seen in figure 11.24. Right now, none of the variations have the odds to appear. To change this, click all variations and hit the \"Add\" button.\n    187\n\n Doing so has made the odds of each appear below the respective variation. Currently, every variation has a one in six chance. For our example, we want the fifth variation to be rarer than the others and the third to be more likely. To do this, we first deselect variation five and click \"Add\" to increase their odds. After that, we deselect all besides variation three and click \"Add\". This process changes the odds of the selected variations appropriately.\nNow, all the odds should have changed accordingly. We can now place Smart-Blocks and click \"Create\" to generate unique variations of ground Spikes, with each Spike having different odds, the length being variable, and the corner Spikes always at the correct position. Figure 11.26 shows some examples.\n  188\n\n 12. Pause Menu\nThere are various options and buttons that can customize your experience in the editor. These are mostly found in the Pause Menu of the editor, which is found by clicking the button in the top right. It looks like this:\nHere, there are a lot of options (seen as checkboxes) and buttons that may or may not be self-explanatory. In this chapter, a small description of each is provided in case you need help. For clarity, the options are shown inside a blue box, while the buttons are shown inside the red boxes.\nOptions\nThese options, shown in blue in figure 11.1, customize the editor view in specific ways. In other words, they have no actual effect on the level itself, but rather the experience of making it. Here is a short description of each one.\n  189\n\n \u25cf DebugDraw: Draws hitboxes for objects that interact with the player. The hitboxes of blocks are drawn in white, while the hitboxes of obstacles, such as saws and Spikes, are drawn in red. In other words, collision with a red line leads to death.\n\u25cf Hide Invisible: Hides objects that are set to be invisible in the editor. (This only affects objects that are set to \"Hide\" inside Extras of Edit Group.)\n\u25cf Preview Mode: Shows the level close to how it looks in-game when played. This means that you can see how the colors of objects, the Background, Ground, and so on look together while in the editor.\n\u25cf Preview Animations: Shows Animated Objects how they look in-game.\n\u25cf Preview Particles: Shows particles how they look in-game.\n\u25cf Preview Shaders: Shows shader effects how they look in-game.\n\u25cf Show Ground: Shows the Ground. Disabling this is useful if you want to\nplace objects underneath it.\n\u25cf Show Object Info: Shows some information about selected objects. This is\nseen as text in the top left of the editor. The different abbreviations are as follows: \"C\" is Color Channel, \"C1\" is Base Color, \"C2\" is Detail Color, \"G\" is grid position, and \"EL\" is editor layer.\n\u25cf Show Grid: Shows the editor grid.\n\u25cf Select Filter: Lets you use the Group ID and Color Channel filters in the\n\"Delete\" tab to select objects (while in the \"Edit\" tab).\n\u25cf Ignore Damage: Lets you playtest without dying, regardless of the\nobstacles you touch.\n   190\n\n Buttons\nThe buttons seen in red in figure 12.1 perform various actions that are helpful when creating. First are the two buttons in the center at the bottom, which toggle music guidelines and open this guide, respectively.\n\u25cf ReGroup: If you have selected objects with various Group IDs, you can use this to change all the corresponding Group IDs to use the lowest ones not yet used.\n\u25cf Create Loop: After selecting a Trigger setup, you can click this to create a Spawn Loop for you.\n\u25cf Keys: Shows various key bindings that are useful while in the editor.\n\u25cf AlignX/AlignY: If you have various objects selected, they are all aligned\nevenly on the X-axis or Y-axis respectively.\n\u25cf Build Helper: If you select various objects in your level, including Triggers,\nand click this, any already used Group IDs and their references inside Triggers will be distributed to new unused Group IDs. Useful for collaborations where some people may have used overlapping Group IDs.\n\u25cf Copy+Color: Copies the selected objects including all of their Color Channels' starting settings. Useful for copying and pasting across levels. By default, copying and pasting across levels does not include the Color Channel information.\n\u25cf Select All: Selects every object in the level.\n\u25cf Paste+Color: Pastes the objects and Color Channel information after using\n\"Copy+Color\".\n\u25cf Select All Left/Right: Selects all objects to the left or right, respectively, of\nwhere you are in the editor.\n\u25cf Create Extras: This adds outline objects for certain types of blocks, such as\nthe ones that look like rocks.\n\u25cf Unlock Layers: Unlocks all layers that are locked at once.\n 191\n\n \u25cf New GroupX/Y: Assigns new Group IDs to the selected objects, going from left to right or bottom to top respectively.\n\u25cf Reset Unused: Resets all Color Channels that are not used by any objects.\n\u25cf Uncheck Portals: Unchecks all checked Portals. Checked Portals show the\nroof and ground boundaries.\nNot mentioned in this list is the gear in the top right. This is used to customize the editor in various ways. You can, for example, increase the amount of rows or buttons per row for \"Build\" and \"Edit\". This is helpful when working with tabs that have many buttons. Additionally, there are many other options that toggle different things in the editor. If you are unsure what an option does, click the information box (seen as an \"i\" button).\n192\n\n 13. Sharing Your Level\nVerifying\nOnce you are finished with your level, you have to verify it before you can publish it. This means that you have to beat your level by clicking \"Save and Play\" in the Pause Menu. You can also click the play button from the Level Menu (figure 13.1). It must be an attempt from the start of the level, so a Start Position cannot be used. If your level has any User Coins, these must also be collected. Note that you can collect the User Coins on different attempts, as long as all lead to you beating the level. For example, if your level has 2 User Coins, you can collect the first in one attempt, and then the second in another attempt.\nLevel Menu\nAfter successfully verifying your level (and its potential User Coins), head out of the level and go to the Level Menu, seen in figure 13.1. As you can see, it says that the status is \"Verified\" on the bottom right. This means that you are ready to upload your level.\n      193\n\n The other text gives various other details about the level. To the left is the level's length if the Game Type is Classic: 0-10 seconds is \"Tiny\", 10-30 seconds is \"Short\", 30-60 seconds is \"Medium\", 60-120 seconds is \"Long\", and 120+ seconds is \"XL\" (for Extra Long). If the level is Platformer, this will simply say \"Plat.\" since these levels' length cannot be determined easily. In the middle is the starting song, and below that is the version and ID (once shared).\nOn the right are buttons for various actions. First is deleting the local editor level. This action cannot be undone, so only use this if you are certain. Below that is a button that opens this guide. Third is a button to make another editor copy of the level, and finally is a button to move the level to the top of your editor levels (indicated by the arrow). Clicking this will put the level at the top in the list seen by clicking the back arrow in the top left. To organize this list better, you can put your level into a specific folder, indicated by the folder with a \"0\" on the left side of the menu. The information button in the bottom left shows various statistics about your level.\nBefore sharing your level, putting in a title and description at the top is most important. The title of a level cannot be updated once it is shared. You would have to reupload a new copy with a new name. However, the description can easily be changed. Note that writing one is optional.\nUploading\nOnce you have set a title you are satisfied with, click the third big button. This opens the level sharing interface, which is shown below. Here, the name and description is shown at the top. Below that, you can select how many Stars or Moons you want to request. To decide this accurately, we recommend playing levels on the Featured tab and getting an idea of the difficulty of rated levels. Note that you can skip choosing one without any problems later.\n194\n\n   In the top right, indicated by the gear, are some extra settings. Clicking this opens the menu seen in figure 13.3. Here, you can choose whether you want to allow users to copy your level into their editor or not. You can also check \"Requires Password\" to require users to input a password from 4 to 6 numbers long to copy it.\nThere is also an option for \"Unlisted\", which means that your level does not show on any level lists or general search results. This means that it will not show on your profile either. For users to find it, they must search the exact ID. On top of being unlisted, you can also enable \"Friends Only\", which means a user must be your friend and search the exact ID to find it. You can, for example, enable these options alongside \"Allow Copy\" to share a level to a friend you want to collaborate with.\n195\n\n   Once you are happy with all these settings, go ahead and click \"Share Level\". This will upload your level to the servers if there are no issues. On the Level Menu, the ID field will now be updated with your level's ID. This can be shared with others to help them find your level. To see how your level looks on the servers, head back to your list of editor levels seen below.\n  196\n\n Here, click the button in the bottom left (marked in red) to see your published levels. Your recently published level shows at the top. Clicking it takes you to its level page seen below. Here you can play it, see comments and the Level Leaderboards, and more.\nThe two buttons on the left, marked in pink, may be useful in some cases. First is a button that removes your level from the server entirely. The button in the top right of this page only deletes it from your saved levels, but it can still be found by others. Secondly is another copy button, which is always enabled for the creator of a level (regardless of the copying options set earlier). This is useful if you no longer have a local editor copy of your level.\n  197\n\n Updating Levels\nThe easiest way to update an uploaded level is to make edits on the local editor copy. This will change its status from \"Uploaded\" to \"Unverified\", and the version number also says 2 instead of 1. Once done with your edits, go through the process of verifying again, and then share it as you did before. This will automatically update the online level.\nIf you no longer have a local editor copy of the level, copy the online level from the button seen in figure 13.5. This makes a copy with an additional number at the end of the name. If you want to use this copy to update the level, you have to edit the title of this copy to be the exact same as the online level. After that, do your edits and share it as before. This also links the update to the shared level.\nUpdating Descriptions\nAs for updating only the description and not the level content, it is also best to have the exact copy that was uploaded. Once uploaded, the copy will show a new refresh button on the left, marked in red below. This is solely used to update the description. Simply type in your new description and click it.\n  198\n\n If you do not have the exact copy, you have to do the same as when you want to update a level by copying the published level. Unfortunately, the refresh description button will not show up in this case. You will have to verify the level again, type in your new description, and go through the sharing process. Make sure the level name is the exact same as the online level.\nRating\nAfter you have published a level publicly, the displayed Difficulty of the level may update. This is based on community ratings through the bottom right button in figure 13.5. Using this, players can get an idea of the Difficulty of your level. However, this does not mean the level gives any rewards when it is beaten.\nYour level gives rewards if RobTop, the developer of the game, plays it and gives it a certain amount of Stars or Moons. The amount ranges from 1 to 10. Stars are rewarded for Classic levels, while Moons are rewarded for Platformer levels. These show below the Difficulty face on the level page or level lists. Once rated, the Difficulty is locked and community votes are no longer available. These are the Star and Moon values for each Difficulty:\n\u25cf Auto: 1 Star or Moon\n\u25cf Easy: 2 Stars or Moons\n\u25cf Normal: 3 Stars or Moons\n\u25cf Hard: 4 to 5 Stars or Moons\n\u25cf Harder: 6 to 7 Stars or Moons\n\u25cf Insane: 8 to 9 Stars or Moons\n\u25cf Demon: 10 Stars or Moons\n199\n\n Within Demon levels, there is an additional separation into Easy, Medium, Hard, Insane, and Extreme Demons in order of increasing difficulty. This is solely based on community votes on levels already rated Demon by RobTop. Getting a higher Demon rating does not change the reward, only the Difficulty Face shown on the level.\nIf a player beats a Rated level, the amount of Stars or Moons are added to their profile statistics. If the level has User Coins, a rating may also involve verifying these so that they show on a user's profile when collected. This is the case if they are done properly as explained here.\nThere are no specific guidelines to ensure your level gets a rating. It is simply about whether RobTop likes it or not. However, some general tips are:\n\u25cf At least 30 seconds in length\n\u25cf Overall clear gameplay\n\u25cf Decent visuals\n\u25cf Optimized performance\nAdditionally, how much RobTop likes it results in various types of ratings. This is indicated by an additional effect around the Difficulty Face, which is seen below. From left to right, we have Rated, Featured, Epic, Legendary, and Mythic. Each gives 1 more Creator Point than the last, which is a statistic shown on profiles and the Creators Leaderboard to highlight creators.\n   200\n\n One way to increase the chances of your level being rated is by requesting it to a Moderator. Moderators are players that can suggest high-quality levels to RobTop for a rating. They are indicated by a special \"M\" badge on their in-game profile.\nFor more information about the Rating System:\nhttps://www.boomlings.com/GDRating\nFor more information about the Leaderboards:\nhttps://www.boomlings.com/GDLeaderboards\n14. Afterword\nSuggestions\nThis document took a long time to write for us (Viprin and AutoNick). We hope that there is a lot of useful information here to help you create, whether you are new or experienced. However, it is by no means perfect. If you have suggestions for additions or changes, feel free to contact us through social media:\n\u25cf Viprin: Discord, Twitter, and YouTube.\n\u25cf AutoNick: Discord, Twitter, and YouTube.\nSpecial Thanks\nFirst, special thanks to Erdyuri and Spu7Nix for creating the cover. Of course, we also have to give a special thanks to RobTop for creating this amazing editor in the first place. There are extremely few games that can compete in terms of complexity and possibilities. He also provided explanations and support for many parts of this document. Finally, special thanks to you for reading this document. Good luck creating in Geometry Dash!\n           201\n"},{"assistant_initiates":false,"asst_text":"As an AI developed by OpenAI, I don't have the ability to remember or store past interactions or the ability to access or retain documents unless they're provided again during the current interaction. Each user interaction is independent for privacy and confidentiality reasons. If you have specific text or topics you'd like me to assist with, please provide the details again, and I'll be happy to help!","behavior":"degenerate_repetition","conversation_hash":"8c05d237425abbae09b8f3869ae2257c","conversation_redacted":false,"conversation_toxic":false,"country":"Australia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":435,"n_turns_in_conversation":3,"n_words":72,"source_row_offset":56570,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:20:17 GMT","turn_id":"e617dd5be0a18835c29be625","turn_index":1,"user_text":"Just remember the text please"},{"assistant_initiates":false,"asst_text":"Based on the detailed guide you provided for Geometry Dash's editor, using an \"Area Move\" trigger involves several steps and configurations within the level editor. To use an \"Area Move\" trigger effectively, you would follow a general procedure:\n\n1. **Accessing the Editor**: Start by accessing the editor through the main menu by selecting \"Create\" and opening or starting a new level.\n\n2. **Placing the Trigger**: Scroll through the tab where Triggers are located, find the \"Area Move\" trigger, and place it in your level.\n\n3. **Configuring the Trigger**: Once placed, clicking on the trigger allows you to access its specific settings. This might involve setting parameters like the target Group ID (the objects you want the trigger to move), movement directions (X and Y axes), move distance, duration, easing (how the movement begins and ends), and more options such as Dynamic Mode, Silent Mode, etc.\n\n4. **Target and Center Group IDs**: Assign Group IDs to the objects you want to move and also, if desired, a center Group ID for these objects to move around.\n\n5. **Adjusting Movement and Options**: Fine-tune the movement's speed, direction, and behavior by adjusting the values within the trigger settings. This includes determining how quickly or smoothly objects move and whether this movement follows the player or certain gameplay mechanics.\n\n6. **Testing and Tweaking**: After setting up the \"Area Move\" trigger, test your level to see how the objects move in response to the trigger's activation. It's likely you'll need to tweak the settings and test multiple times to achieve the desired movement and effect within your level.\n\nGiven the complexity of Geometry Dash's editor, as outlined in the provided text, it's essential to experiment with different settings within the \"Area Move\" trigger to fully understand its capabilities and how it can enhance your level design. Remember to also consider the interplay between different triggers and objects within your levels for a coherent and engaging gameplay experience.","behavior":"degenerate_repetition","conversation_hash":"8c05d237425abbae09b8f3869ae2257c","conversation_redacted":false,"conversation_toxic":false,"country":"Australia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-0125-preview","n_chars":196718,"n_turns_in_conversation":3,"n_words":35101,"source_row_offset":56571,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:20:17 GMT","turn_id":"0ae9ad3d7be5b785d8127079","turn_index":2,"user_text":"How do I use an area move trigger? Here is the context:  0\n\n Geometry Dash Editor Guide\nThe Geometry Dash editor allows you to create custom levels any way you want. A level can be simple or detailed, short or long, easy or difficult, and so on. The opportunities are endless. However, to be able to make exactly what you want, there are a wide variety of features that are helpful or even necessary. Learning everything yourself is a near impossible task given the size of the editor as of update 2.2. That is exactly what this guide's purpose is: To help you out, whether you are new to the editor or already a veteran. There should be something helpful here either way. Use the list below if there is anything specific you are looking for.\nTable of Contents\n1. Basics\nGetting Started Level Settings Placing Objects Editing Objects Scaling & Warping Select Color Deleting Objects Other Buttons\n2. Picking Song\nStarting Song Music Library Newgrounds\nSong Settings Guideline Creator Later Customization\n3. Gameplay Objects\nDescription Pads\n6\n6 7 11 14 16 17 20 22 26 26 27 28 30 30 31 32 32 32\n1\n\n Orbs\nPortals\nSpeed Changers Letter Objects Force Objects\n4. Animated Objects\nDescription Monsters\nEdit Special Particle Editor\n5. Items\nDescription\nUser Coins\nCustom Collectables\n6. Edit Group\nFunctionality Using Groups Extra Options Special IDs\n7. Triggers\nDescription Start Pos Color\nMove\nStop\nPulse\nAlpha\nToggle\nSpawn\nRotate\nScale\nFollow\nShake\nAnimate\nKeyframe Animation Follow Player Y\n33 34 36 36 39 40 40 40\n41 43 51 51 51 52 54 54 56 57 60 61 61 62 62 63 66 67 68 68 68 71 73 74 75 75 76 76\n2\n\n Advanced Follow 77 Edit Advanced Follow 84 Re-Target Advanced Follow 85 Keyframe 85 Area Move/Rotate/Scale/Fade/Tint 90 Edit Area Move/Rotate/Scale/Fade/Tint 99\nArea Stop\nChange BG/G/MG Touch\nCount\nInstant Count Pickup\nTime\nTime Event\nTime Control\nItem Edit\nItem Compare Persistent Item Random Advanced Random Sequence\nSpawn Particles Reset\nZoom\nStatic Camera Camera Offset Gameplay Offset Camera Rotation Camera Edge Camera Guide Reverse\nRotate Gameplay Song\nEdit Song\nSFX\nEdit SFX\n99 99 99\n100 101 101\n102 103 103 104 108\n111 111 111\n112 113 114 115 115 116 116 116 117 117 118 118 119 119 124 125\n3\n\n Event\nTimeWarp\nCamera Mode Setup MG\nBG/MG Speed Counter Label\nUI Settings Visibility Link Collision\nInstant Collision Collision State Collision Block Player Touch\nOn Death Disable/Enable Trail Show/Hide\nBG Effect On/Off End\nPlayer Control Options\nBPM Guide Gradient\nGravity\nTeleport\nShader\nShockWave\nShock Line\nGlitch\nChromatic Chromatic Glitch Pixelate\nLens Circle\nRadial Blur\nMotion Blur\nBulge\nPinch\n126 127 127 127 128 128 129 130 130\n131 131 131\n132 132 133 133 133 134 134 135 135 136 137 137 139 139 141 142 143 143\n144 145 145 147 148 148\n4\n\n Gray Scale 149 Sepia 149 Invert Color 150 Hue 151 Edit Color 152 Split Screen 152 Enter Effects 152 Move/Rotate/Scale/Fade/Tint Enter 156\nStop Enter\n8. Custom Objects\n9. Channel System 10. Keyframe System 11. Auto-Build System 12. Pause Menu\nOptions\nButtons\n13. Sharing Your Level\nVerifying\nLevel Menu\nUploading\nUpdating Levels Updating Descriptions Rating\n14. Afterword\nSuggestions Special Thanks\n158\n159 161 165 175 189 189 191 193 193 193 194 198 198 199 201 201 201\n5\n\n 1. Basics\nGetting Started\nFirst, you have to find your way to the editor. On the main menu, click the right button, and then click \"Create\" in the top left. This brings you to the screen in figure 1.1, which is your list of custom levels. Note that levels here are not public, but rather custom levels saved locally on your account. Public levels are accessed through the bottom left button. More on that later. To start a new level, do as the text says and click \"New\" in the bottom right.\n    6\n\n At the top, you can set a level name and an optional description. The button in the middle lets you play the level, while the right button is where you share the level with others through the servers. To start editing, click the left button. This brings you into the editor itself.\nLevel Settings\nA good place to start is the main level settings, which are accessed by clicking the gear button in the top right corner of the editor. This opens the window seen below.\n    7\n\n These settings decide the level's starting state. This means that they define what a player sees at the start of their attempt. Many of these settings, such as Speed, Game Mode, and colors, can be changed inside the level itself too. This allows you to change them further into the level. Going through each option in figure 1.4 in turn, we have:\n\u25cf Game Type: This is perhaps the most important option to decide on, as it changes how your level plays completely. It cannot be changed throughout the level.\n\u25cb Classic is the original way to play Geometry Dash levels, in which the\ncamera automatically scrolls to the side. To beat the level, the player has to avoid obstacles to make it all the way to the end of the level. This is done by clicking to change their vertical position in different ways depending on the Game Mode. For example, in the most simple mode, Cube, you jump by clicking, while something like Wave moves your icon diagonally from holding.\n\u25cb Platformer is the newest Game Type, and as the name implies, it lets the player move around freely. You can click to move left or right as you please, and another input allows jumping. How exactly the inputs work depend on the device you are playing on.\n  8\n\n \u25cf Speed: This sets the starting speed of your level. It can be changed at any point in the level. The blue option is the default speed, and the others are modifiers of this. Each one is fittingly indicated by a reversed arrow or more arrows depending on how much they modify the speed. The reversed orange option is the slowest option, which is roughly 25% slower than the normal speed. For double, triple, and quadruple arrows, the modifier is roughly 25%, 50%, and 75% faster than the normal option.\n\u25cf Mode: This alters the way the icon moves when the player clicks. It is often referred to as Game Mode, and should not be confused with Game Type. This can also be changed at any point in the level. The different ones are shown in figure 1.6 below. From left to right, we have:\n\u25cb Cube is the default Game Mode, which has the player click to jump as previously mentioned. Interaction with objects such as Pads and Orbs make it a bit more complex, but those are handled later.\n\u25cb Ship lets the player fly, and the exact trajectory is dependent on clicks. Holding down takes you up very fast, while letting go makes you fly downwards. Clicking fast in a consistent pattern makes it possible to fly in a straight horizontal line.\n\u25cb Ball makes the player's icon circular, and movement makes it roll. Clicking switches the gameplay gravity, which means that the icon goes from rolling on the ground to rolling on the roof (or vice versa).\n  9\n\n \u25cb UFO also makes the player fly, but instead of precise control like Ship, clicking makes you boost a certain distance upwards. Holding down is not possible.\n\u25cb Wave has the player move diagonally by holding or letting go. If you hold down, you move diagonally upwards, while letting go makes you move diagonally downwards. This is disabled in Platformer.\n\u25cb Robot is similar to Cube, but instead of a set jump height, the amount you hold down decides the vertical movement. Clicking very fast leads to a small jump, while holding down (to a certain limit) takes you higher.\n\u25cb Spider is similar to Ball, but clicking makes gravity switch instantly rather than a slower rolling motion.\n\u25cb Swing is also based on flying, but each click changes the player's gravity. This is disabled in Platformer.\n\u25cf Options: This lets you set various other options. Most of them, like Flip Gravity and Reverse Gameplay, speak for themselves. Mini makes the player's icon smaller, altering the effects of clicks to some degree. Dual duplicates the icon into two, making it so that the player has to control two icons. Every click affects both icons. Enabling 2-Player changes this to require clicking on each side of the screen for each icon. Spawn Group lets you set a specific target object, given by its Group ID, as the spawn position. Applying Group IDs are covered more later, but essentially an object may have a Group ID for Triggers to interact with it. Clicking the top right gear button opens Legacy Options, which fix various older bugs. These should not be changed in new levels.\n\u25cf BG, G, and MG: This sets the type of Background, Ground, and Middleground art to use from the start. The Ground is on the front layer, making it the only one the player interacts with directly at the bottom of the level. BG and MG are seen behind the player. The difference between\n10\n\n these two is their layering, with Background being furthest back. All of\nthese three can be changed at any point in the level.\n\u25cf Font: There is normally an attempt counter found at the start of levels, and\nthis option changes the font used for this. It also changes any other text\nobjects found in the level. You cannot change this further into the level.\n\u25cf Select Color: At the top of the window, you can set colors for various parts\nof the level. BG, G, and MG set the colors for the art described earlier. (G2 and MG2 are secondary colors used for details.) Line is an outline for the Ground. Clicking \"More\" lets you change the starting settings for the custom Color Channels. These are used for other objects. Note that any colors can be changed at any time in a level.\n\u25cf Select Song: This is where you set what song to use. The various options and menus are handled in the next chapter.\nPlacing Objects\nBack to the main editor screen, the main part you will interact with is the bottom section, seen in figure 1.7. To begin creating, have the \"Build\" button on the left selected (indicated by blue color). This is where all the different objects in the game are located. We will write \"objects\" in lower case to refer to objects in general, so any goes. Clicking on an object selects it for use, which lets you place it in your level. This is done by clicking at the desired position on the grid. While an object is selected, you can enable \"Swipe\" on the right side to place objects over the area you swipe (hold down and drag).\n   11\n\n There are various types of objects, which are grouped into specific tabs based on their properties. Each object is only found within one tab. Inside a tab, you can also click through several pages using the arrow buttons. Going through each tab in order, we have:\n\u25cf Blocks: This tab ranges from simple squares to more detailed blocks. Some have outlines, while others do not. This is visible by the white lines, indicating that they are solid, which means they interact with the player upon collision. Putting these in front of the player's movement means that they have to jump to pass them. Colliding with a line horizontally leads to death. However, landing on top of them is fine.\n\u25cf Outlines: Various basic outlines are found here. As mentioned for the previous tab, these interact with the player when touched.\n\u25cf Slopes: These are similar to blocks, but instead of being square they are sloped. There are two types of slopes in the game. One is basically a block cut in half diagonally, making a 45 degree angle, while the other makes a slope over 2 blocks. Interaction with a sloped outline is safe in most cases.\n\u25cf Spikes: Spikes lead to death on any collision no matter what.\n\u25cf 3D: These can be combined with blocks to make them look 3D.\n  12\n\n \u25cf Gameplay Objects: Various objects that affect gameplay are found here. For example, this is where you find objects that change the Speed and Game Mode as mentioned earlier. These are covered more in-depth in their own chapter later. Click the title for a direct link to the chapter.\n\u25cf Animated Objects: While most objects are still by default, the ones found in this tab have certain animations built in. These are also covered more in-depth in their own chapter later.\n\u25cf Pixel Art: Lots of different art made up of small pixels are found here. None of them interact with the player by default, but you can combine them with lines or Spikes for the effect you want.\n\u25cf Items: These objects are used as Collectables that can be picked up during gameplay.\n\u25cf Symbols: Various Symbols, even some art from the game's menus, are found here. None of these are solid.\n\u25cf Decorations: Different types of objects that do not interact with the player. As the name implies, they are meant to be used as decorations to fill space.\n\u25cf Pulsing Objects: These are called Pulsing Objects because they automatically pulse to the beat of the song. Pulsing in this case means scaling to a bigger size for more intense audio.\n\u25cf Rotating Objects: Many circular objects that automatically rotate, such as saws but also decorations. Saws are spiky and lead to death upon collision. The speed and direction of all these objects can be customized.\n     13\n\n \u25cf Triggers: Triggers are more complex objects that let you do endless customization, whether it is something as simple as moving an object to something complex like making a bossfight. None of these objects show in the level itself when played, but start their set operation when passed on the X axis during gameplay. You can also make them Trigger when touched by the player. Every Trigger is covered in-depth in its own chapter.\n\u25cf Custom Objects: This tab is empty when you are new to the editor. It lets you save combinations of objects to be reused at any time, even in another level. Each one can have maximum 1000 objects, and you can make 250 custom objects in total. See the dedicated chapter for more details.\nEditing Objects\nAfter successfully placing objects in the editor, you may want to edit them in some way. Figure 1.10 shows an example. Assume you want to move these three Spikes (often referred to as a \"triple Spike\") one block to the right. To do this, you have to click the \"Edit\" button in the bottom left. Afterwards, you can click an object to select it for editing. Normally, you can only select one object at a time. To select all three at once, enable \"Swipe\" in the bottom right as seen in the example. This lets you swipe over the objects you want to select.\n    14\n\n Now that the objects are selected, indicated by the green outline, we can move onto actually editing them. The buttons in the lower section, seen in figure 1.11, are all used for this. Most of these are self-explanatory, so testing them out yourself is recommended. The various arrows move the selected object(s) in their given direction. How much they move is indicated by the number of arrows. Other buttons, like the circular arrows, let you rotate the object(s) a given amount. The one with \"Free\" inside it lets you rotate as much as you would like.\nHaving found the correct button, double arrow to the right, we get the result in figure 1.12. Another way to do this is by selecting \"Free Move\" and \"Snap\" in the bottom right. The former lets you move the selected objects wherever you want, even outside of exact grid positions, while \"Snap\" puts the objects in exact grid positions. Together, this combination gives us the result we wanted, but you can also use \"Free Move\" on its own to move off-grid.\n    15\n\n If you are satisfied with your edits, click the \"Deselect\" button on the far right. You can also deselect the objects by placing new objects. After this, you can go ahead and place or edit other objects. Additionally, you may see another \"Rotate\" button in the bottom right that has not been covered yet. This has the same functionality as the previously mentioned \"Free\" rotation button but is easier to access.\nScaling & Warping\nThe last three buttons in the \"Edit\" tab, as the names imply, let you scale or warp the object. This means to change its form and/or size in some way. In essence, each of these buttons can do the same thing, but with even more control sequentially. The first \"Scale\" only lets you scale the objects in place, which means they keep their original aspect ratio. With the second one, you can scale for the X and Y axis as you wish, allowing for even more control.\nWith \"Warp\", you get the most control. Selecting it opens the interface seen in figure 1.13, which features various buttons. Each of the square buttons let you scale as with the previous two buttons. You use them by holding one down and dragging to your desired scale. If you want the scaling to be in place, you can toggle the lock in the top right. As for the circular buttons, the middle one\n  16\n\n is used as an anchor point for rotation, while the outer one performs the actual rotation. Finally, we have the two rectangular buttons outside the square ones. These let you skew the objects in a given direction. As an example, dragging the top one to the left results in the example below. The anchor point also affects how much you can skew.\nSelect Color\nAfter having warped the Spikes successfully, you may want to change their color a bit. Assume you want to make the outline of the left Spike red. This is done by selecting the object and clicking \"Edit Object\" on the far right, which opens the menu seen below.\n    17\n\n In here, you have various options for coloring the object. Selecting \"P-Col 1\" or \"P-Col 2\" makes the color based on the player's colors. \"Light BG\" makes it a lighter shade of the Background Color, while \"Default\" simply sets it to its default. For Spikes, this is white, but it varies from object to object. Below this, you can select custom Color Channels that can be specified freely. These are numbered from 1 to 999. \"Next Free\" finds the next unused Color Channel, which is 1 in our case. To begin customizing it, click on top of the colored square in the bottom right. This opens the following menu:\nHere, you have various options to set the color of the object. Selecting the color by using the outer wheel and then its shade by using the inner circle is the easiest way. You can also specify a color exactly by its \"RGB\" or \"HEX\" values in the bottom right, while \"Opacity\" changes how transparent the color is. \"Copy\" and \"Paste\" in the top right are used if you want to copy and paste colors across channels, while \"Default\" sets it back to the standard white.\n  18\n\n On the left, \"Copy Color\" lets you input another Color Channel to copy from but with potential changes to HSV. HSV is also seen in figure 1.15 as a \"HSV\" button. This allows you to change hue, saturation, and brightness of the color for the selected object (and not the channel as a whole). By default, the color is solid, but enabling Blending makes it blend with the visuals behind it. \"Player Color 1\" and \"Player Color \" are, as explained earlier, based on the player's choice of colors.\nWith the object's color set to red, it is successfully colored as seen above. The defined Color Channel can also be given to other objects you wish to have the same color. It is worth noting that the Color Channel's settings can be changed throughout the level using a Color Trigger. Changing it inside the menu in figure 1.15 only sets the starting values for the channel. Additionally, note that some objects have two different parts that can be colored. This is indicated by a \"Detail\" button next to \"Base\" in the top left of the color menu, allowing you to switch between the settings of each. In our example, the Spike only has one customizable color, which is the outline, so only \"Base\" is shown. This is called the Base Color, while some objects also have Detail Color.\n   19\n\n Deleting Objects\nIf you place the wrong object, you may want to delete it from the level entirely. This is done in the bottom tab called \"Delete\", which is shown in figure 1.18. Just having this tab opened allows you to click any object to delete it. As with building and editing, you can select \"Swipe\" on the right to drag over multiple objects you want to delete. However, there are numerous other options inside the tab as seen below.\nThe four buttons on the right are filters for deleting. These are useful if you have many different types of objects overlapping, and you only wish to delete certain types of them. If you have \"None\" selected, which is the default, any objects can be deleted. Switching to \"Static\" means that only solid blocks can be deleted. As for \"Details\", this covers a lot of different types of objects, such as Portals, decorations, Triggers, and more.\n    20\n\n If you enter this tab while having an object selected (from the \"Edit\" tab), you get some more options. Switching to \"Custom\" on the right makes it so that only the selected object can be deleted. After enabling this, you can head back to \"Edit\" and swipe to select an area of objects you want to delete from. Afterwards, head back to \"Delete\" and click the top left deletion button (indicated by a trash can), either within the tab or in the top left of the editor. Both of these do the same action, but the latter is easier to access at any time. There is also the \"All\" button on the left which deletes every instance of this object in your level. Next to this is a button to delete all Start Pos Triggers.\nFinally, we have the four middle buttons marked in the figure above. Opening each one gives a good idea of what they do, but they are covered shortly here. The top left one lets you find a specific Group ID. Looking up Group ID 23, for example, will take you to an object using this if it still exists and is not deleted. If there are multiple objects using this Group ID, you are taken to the object that received it first. The two buttons to the right are Group ID and Color Channel filters respectively. As an example, writing \"1\" in either means that you can only delete objects with Group ID or Color Channel 1 while in the \"Delete\" tab. This is useful if you wish to delete only objects using that specific color among many others. The bottom left trash can button is a quick way of resetting all of these filters without having to go into their window. You can also use these filters to select objects by enabling \"Select Filter\" in Options.\n    21\n\n Other Buttons\nThere are still many buttons in the user interface that we have not touched on yet, which are summarized here. Some of them are covered more in-depth later on when appropriate. We will be using figure 1.21 to cover specific buttons, referencing them by colored boxes that have been drawn on top (not from the game).\nIn the top left, marked in purple, are buttons to undo and redo the recent action. As an example, you can use this to recovered a wrongly deleted object. However, note that not all actions can be undone or redone, such as applying Color Channels or Group IDs. Below these two buttons, we have playtesting buttons marked in yellow. The top one playtests the music of the level, showing a line moving to help sync visuals to the song. The lower one lets you playtest your level inside the editor, starting from the start or a set start position.\n   22\n\n In the white box are buttons for zooming in and out inside the editor, letting you see details more clearly or whole areas at once. Right next to these are some optional buttons that are enabled from Options referred to as Link Controls. Clicking the top one links several selected objects together, making them act as a single object (for editing or deleting). The bottom one, on the other hand, unlinks linked objects.\nAt the top, marked in black, is a slider that simply lets you slide through your level horizontally inside the editor. You can also move around by simply swiping in a given direction. To the right of this slider, in the top right, we have the start level settings covered earlier, as well as the Pause Menu shown below. This opens up many other options covered later. However, for now, we note the middle buttons since these are most important as a beginner. \"Resume\" goes back into the editor, while \"Save and Play\" saves the level and starts an attempt on it. This lets you see exactly how the level will play for other users once uploaded, unlike playtesting in the editor. \"Save and Exit\", \"Save\", and \"Exit\" are self-explanatory.\n    23\n\n Back to figure 1.21, we have the numerous buttons inside the red and blue boxes on the right. These are shown together in an edited image below for easier access. Many of these are self-explanatory, while others are not.\n\"Copy\", \"Paste\" and \"Copy+Paste\" all do similar actions, which is making a new copy of the selected object(s). The button that has both in one will copy the selected object(s) and place the copy on top of the old one. If you wish to copy something from one spot in the editor to somewhere far away, the separate buttons are useful. Simply use \"Copy\" on what you want to copy, move to where you want to paste, and click \"Paste\". This also works across levels if you want to copy something into another level you are working on.\n\"Copy Values\" copies Group IDs and Color Channels, allowing you to paste them onto other objects. \"Paste State\" does both, while \"Paste Color\" only pastes the color information. \"Edit Special\", \"Edit Group\" and \"Edit Object\" are all for editing objects, but they work in different ways. Edit Special and Edit Group have a lot of functionality, and are covered in later chapters found by the links, while Edit Object was covered earlier for a Spike. For many objects, this simply lets you change the object's color as shown there. However, for some objects, such as Triggers, it lets you change their settings.\n       24\n\n The button with three colored circles give you quick access to editing a Color Channel, opening a menu that can be used while editing objects. Clicking it another time switches to a HSV menu. As mentioned earlier, \"Deselect\" is simply used to deselect selected objects.\nFinally, we have \"Go To Layer\", which is closely tied to the arrows and number below it. The pink arrows allow you to switch between different layers to build on, making it easier to organize more complex constructions. You can only access objects on a specific layer for editing or deletion if you are on it. However, you can also toggle editing or deleting a layer by clicking on top of the number, which locks the layer's objects from being changed. Click it again to unlock it. As for the blue arrow on the left, this simply returns you to the \"All\" layer, which shows every layer together. While in here, you can select an object and click \"Go To Layer\" to go its specific layer quickly.\n25\n\n 2. Picking Song\nStarting Song\nThe majority of the community's favorite Geometry Dash levels are largely due to their great music synchronization, so picking a song is obviously important when creating. To pick one, we head back to the level settings:\nThe bottom of this image is where the starting song of a level is set. By default, it shows \"Normal\" songs, which are the official main level songs (\"Stereo Madness\", \"Back On Track\", and so on). If you want to make a level with one of these songs, use the arrows to go through and stop on the one you want.\nSelecting \"Custom\" instead, we have hundreds of thousands of songs to pick from. Click \"Select Custom Song\" to open the menu seen in figure 2.2 below. This has various buttons that serve different purposes. For now, we focus on the two circular buttons in the middle, one called \"Music Library\" and the other being the logo of Newgrounds. This is a website for various user-created content, such as music.\n   26\n\n   Music Library\nThe Music Library is a new addition in update 2.2, which has many songs handpicked by RobTop for use by the community in levels. Once clicked, the interface below is seen. By default, every song is shown in alphabetical order by their title, which is a lot to scroll through given the song count. (As of writing, it is 6391, seen at the bottom of the menu.) To sort through the library, use the buttons on the sides. On the right side, the first button lets you filter by specific genres, while the second lets you filter by specific artists. As for the left side, there is a search button that lets you search for title keywords.\n  27\n\n The figure shows both downloaded and non-downloaded songs. You have to download them to be able to listen to or use them. Once a song is downloaded, click the playtest button to listen to it. Once you have found a song you wish to use from the start of your level, simply download it and click the pink \"Use\" button. Exiting the Music Library, the selection is now filled in:\nNewgrounds\nBefore 2.2, the main way to select a custom song was through Newgrounds. Clicking its button gives more details on how it works, but you basically have to search a song by its specific ID. The ID is found at the end of its link on the website. For example, imagine that I am a fan of Creo and want to use his song \"Dimension\". Click the link to open the following page:\n     28\n\n Here, you can listen to the song and easily skip around to hear different parts of the song. Browse the \"Audio\" tab to find other songs to use. Once you have found a song you want to use, you have to write its ID into Geometry Dash. As seen in the top left of the previous example, the link for \"Dimension\" by Creo ends with \"709578\". Typing this and clicking \"Search\" finds the song as seen below. Note that not all songs are available in Geometry Dash. This is something the artist can toggle themselves. The best way to find out is by testing its ID, which will give an error if it is not available for use in the game.\nMake sure you click the download button and then \"Use\" on this screen too. After downloading any songs, whether it is through the Music Library or Newgrounds, you can find them all through the \"Saved\" button in the bottom right. This is also the case for any songs you download while playing custom levels on the servers. In here, you can easily select a previously downloaded song for use too.\n  29\n\n Song Settings\nWhen picking a song, you may not want to use it from the start but rather from a set point further into the song. Clicking the gear in the top right of the custom song selection menu lets you do this. \"Start Offset\" is given in seconds, allowing up to 3 decimals, with a playtest button to help you make it as exact as possible. The fade options makes the song fade in at the start or out at the end. Note that these can be used even with a main level song.\nGuideline Creator\nTo help you sync the gameplay and visuals of your level to your song of choice, you can click \"Create Lines\" in the bottom left. This opens the menu seen below. The text itself gives good steps for how to do it, which is essentially clicking \"Record\" and then clicking to the song. You can, for example, time each click to the main beat. After you are done, click \"Stop\" and vertical lines will be shown in the editor to indicate when you clicked. As a result, you can time specific gameplay or visuals to these lines, for example to Pulse Triggers (where a specific color, such as the Background, turns brighter for a split second). Note that you can toggle the guidelines in the Pause Menu.\n    30\n\n   Later Customization\nThe settings covered thus far are all for the starting song. However, the editor lets you change the song further into the level, as well as customizing the current song in many ways. You can, for example, change the speed or edit the volume based on proximity (to the player). Additionally, up to 5 songs can be overlapped at once, giving a lot of possibilities. These customizations are done using the Song and Edit Song Triggers at the point you want them to take effect. Further audio customization is possible using SFX Triggers handled in the same chapter.\nWith the possible complexity of your level's audio using these Triggers, the Guideline Creator shown above is not as helpful anymore. To handle such cases, you can use BPM Finder within each song's details. Click \"More\" next to a song and then \"BPM\" to open its menu. The way it works is similar to the Guideline Creator, but it only finds the BPM for you and does not draw guidelines automatically. Afterwards, you can use a BPM Guide Trigger together with the song's placement in the editor to create guidelines.\n    31\n\n 3. Gameplay Objects\nDescription\nThis chapter handles the sixth tab in the editor, referred to as Gameplay Objects because they affect gameplay or interact with the player in a different way than other objects. These range from giving small boosts through Pads or Orbs to customizing the starting settings further into the level, such as Game Mode and Speed. The first page is seen below. Many of these only work the first time they are interacted with, but you can enable \"Multi Activate\" in Edit Special or Edit Object to allow multiple interactions. This is useful if your gameplay switches direction, making the player pass by a Gameplay Object several times.\nPads\nThe first 5 objects in the tab are often referred to as Pads. When a player touches one of these, they are affected in some way depending on the type of Pad. The first three give various vertical boosts, while the last two switch gravity in different ways. For the blue one, the gravity switch is natural, keeping horizontal velocity, while the purple one teleports you vertically until an object is hit. This is similar to how Spider works. An illustration of the various Pads, with the player path in green, is shown below. To refer to a specific one, you simply use the color, so the leftmost one is called Yellow Pad.\n      32\n\n   Orbs\nOrbs work similarly to Pads, but instead of being activated upon being touched, they have to be clicked by the player. The ones with the same color as in figure 3.2 have a similar effect, as seen in figure 3.3. There is also a Green Orb, which works like a Yellow Orb but also switches your gravity. However, there are five extra Orbs that do not have an equivalent in Pads. These are seen in figure 3.4 with their common names in the figure text. The Black Orb simply pushes you downwards, while the Dash Orbs take you in a straight line in the arrow's direction as long as the player holds down. Once released, the Green Dash Orb keeps the original gravity, while the Pink Dash Orb switches it. The Teleport Orb lets you set a specific object to teleport to when clicked. Finally, the Trigger Orb lets you toggle a specific Group ID.\n  33\n\n   Portals\nPortals change the gameplay in various ways. Their effect is only activated if the player passes through them. First, we have the Game Mode Portals. These are seen in figure 3.5 below, ordered in the same way as in the start settings: Green is Cube, pink is Ship, red is Ball, orange is UFO, blue is Wave, gray is Robot, purple is Spider, and yellow is Swing. Use these at any point in your level to switch the player's Game Mode. Some Game Modes, such as Ship, have a floor and roof by default. Click \"Edit Object\" and enable \"Free Mode\" to remove these.\n  34\n\n In figure 3.6, various other types of Portals are shown. First, on the left, are Gravity Portals. The blue one changes gravity to be normal (down), while the yellow changes it to be upside-down. As for the green one, it switches to the opposite gravity depending on your current gravity. If you are upside-down and go through it, gravity turns normal, and vice versa. This is useful if a part's gravity is dependent on the player's actions and you want to force a gravity switch. After all, if you are in normal gravity and pass through a Blue Gravity Portal, it has no effect since that is already the player's gravity.\nSecondly, we have Mirror Portals, which essentially mirror the entire level. Once activated, this means that instead of going towards the right, the level goes towards the left. The Orange Mirror Portal switches to the left, while the Blue Mirror Portal switches to the right (which is default).\nThird are Size Portals. The pink one makes the player's icon smaller in the current Game Mode, often referred to as Mini Mode. This changes the gameplay in some ways depending on the Game Mode, such as jumps being lower and shorter in Cube and Robot. If the Game Mode changes, Mini Mode is still kept until the size is changed back to normal. That is done with the Green Size Portal.\n  35\n\n Finally, on the far right, we have Dual Portals. The orange one enables Dual Mode, which duplicates the player's icon into two. Both of these are controlled upon clicking. By default, every click affects both. However, you can enable 2-Player Mode in the level settings, making it so that clicks on each side of the screen control each icon. To switch back to one icon, use the Blue Dual Portal.\nSpeed Changers\nSpeed Changers are pretty self-explanatory, but if you want more details, check Level Settings. As with Portals, they are enabled when a player interacts with them. The blue lines around them (not seen in-game, only in the editor) indicate their hitbox. This is where you have to touch them to change the speed. Naturally, if the Speed is already normal, for example, going through a Blue Speed Changer (one arrow to the right) does nothing.\nLetter Objects\nAt the end of the tab, there are various letters inside white squares. These are only visible in the editor itself (and not in-game). They are used in very specific use cases to alter player interactions in some way. In order from first to last, we have Letter Objects with \"D\", \"J\", \"S\", \"H\", and \"F\" written on them, which are covered in order here.\n   36\n\n   First is \"D\", which is used when the Game Mode is Wave. As seen in figure 3.8 on the left, the player will normally die when the icon hits a block below it (and similar above it). However, adding D Letter Objects allows the icon to hit the blocks. The placement of these objects decide which blocks are safe.\nThe J Letter Object is used to stop jumps when the player holds down in Cube. Many players hold down a little after using an Orb, such as a Blue Orb, and after hitting objects this may lead to an unwanted jump. This is seen on the left in figure 3.9. Adding the J Letter Objects here, holding down from the Blue Orb does not result in a jump. Note that clicking again while on top of these Letter Objects does lead to a jump. This only affects holding.\n  37\n\n   By default, using a Dash Orb lets you hold it down as long as you want. The player decides when its action ends by releasing. However, at times it may be wanted to control when a Dash Orb's effect stops. This is done by placing S Letter Objects as seen in figure 3.10. The player can still release before this if they wish, but they cannot use the Dash Orb for longer than the S Letter Object's placement.\nIn Cube, jumping into a block above you and \"hitting your head\" normally leads to death. Using H Letter Objects stops this. This works the same way if the gravity is switched, and it also applies for Robot. Last are F Letter Objects, which switch gravity when you hit your head on them. An example of this is seen here:\n  38\n\n   Force Objects\nLast in the tab are Force Objects, seen as an arrow inside a circle or square. These apply a set force in the direction of the arrow when touched. This means that you can rotate them in the direction you want them to work. The difference between the two lies in the hitbox, which is indicated by the circle and square. Similar to letter objects, these do not show in the level itself, so it is probably smart to find some way to indicate them with decorations. This makes it less annoying for the player. Use \"Edit Object\" to change various settings, such as the force applied.\n  39\n\n 4. Animated Objects\nDescription\nAnimated Objects are in the seventh tab. Each object here consists of several frames, which the game cycles through and loops forever to create animations. The most complex Animated Objects are particles, which can be customized in the Particle Editor. Many Collectable Objects are animated as well and have similar settings. The first page of the tab is seen here:\nMonsters\nAs seen above, the first 5 objects in the tab are various Monsters. Once placed, these do different default animations. However, they can be customized using the Animate Trigger covered later. To use the Animate Trigger on a Monster, you have to assign it a Group ID. Select the Monster you want to change the animation of and click the \"Edit Group\" button found on the right. In this menu, enter a value in the \"Add Group ID\" field. \"Next Free\" is helpful to find an unused Group ID. To assign that value, click the \"Add\" button, as seen in figure 4.2. You can use the same Group ID for different kinds of Monsters. However, their animation cycles may not align with each other, resulting in unwanted results. Because of this it is recommended to use a different Group ID for every kind of monster. You can find more information about Groups and Triggers in the later chapters.\n        40\n\n  .\n Edit Special\nThe objects beyond the Monsters do not let you change to another animation specifically, but you can use \"Edit Special\" to customize its default animation in some ways. To do so, select the objects you want to edit and click the \"Edit Special\" button found to the right. The menu will look like this:\n  41\n\n All options change different attributes of the animation cycle. Here is a list of all options and what they do:\n\u25cf Randomized Start: By default all Animated Objects start on their first frame. With this option enabled, the first frame is random, and the animation will continue normally from that point.\n\u25cf Use Speed: Uses a custom speed for the animation, which gets configured with the slider below. A speed below 1.00 is slower than default, while a speed above 1.00 is faster. You can input negative values to reverse the animation.\n\u25cf Animate on Trigger: The objects freeze on the first frame. They begin their animation when an Animate or Spawn Trigger Triggers them.\n\u25cf Disable Delayed Loop: Some objects get delayed before looping. This option instantly starts the next loop.\n\u25cf Disable AnimShine: Some Animated Objects have a white flash at the start of their animation, which gets deactivated with this option.\n\u25cf Only if active: Addition to the \"Animate on Trigger\" option. With this option, the \"Animate on Trigger\" option will only play if the object is active. If the animation is not active while an Animate or Spawn Trigger Triggers it, the animation will instead begin once the object is active again.\n\u25cf Single Frame: The animation will not play and instead only display a single frame of the animation, which gets chosen with the number field below.\n    42\n\n Particle Editor\nThe Particle Editor allows you to create your own set of particles. To get started, you first have to place its object. It is the first object in the tab, seen as a white \"P\" and shown in figure 4.4.\n  While having this object placed and select, you can access the Particle Editor by clicking the \"Edit Special\" button on the right. This opens the menu in figure 4.5. In here, you can configure different attributes of your particles, such as their movement, color, texture, and more.\n  In the following sections we will go through all the tabs and explain what every option does. You can copy and paste configurations from different particles by using the \"C\" and \"P\" buttons at the top.\n43\n\n First, we have the \"Motion\" tab, which configures the particles' movement. You can edit the motion of your particles in \"Gravity\" or \"Radius\" mode. Depending on what mode you choose, you will have different options available.\n\u25cf Max Particles: The amount of particles that can be visible at once.\n\u25cf Duration: How long particles will be generated. \"-1.00\" means they will\nspawn forever, which you can input by clicking the \"Inf.\" button to the\nright.\n\u25cf Lifetime: How long particles are visible before they disappear.\n\u25cf Emission: At what rate particles spawn. You can click the \"Max\" button for\nthe highest possible rate or click the \"Calc\" button to use the \"Max\nParticles\" and \"Lifetime\" values to generate them at an even rate.\n\u25cf Angle: The angle at which the particles will go. A value of \"0\" means right,\n\"90\" down, \"180\" left, and so on.\n\u25cf Speed: The speed at which the particles go from the center.\n  44\n\n \u25cf PosVar: Position variables indicate the space in which the particles can spawn.\n\u25cf Gravity: This applies a gravity force to the particles. The higher the value, the stronger the force. Positive values make the gravity go right and up, while negative values make the gravity go left and down, depending on what slider you choose.\n\u25cf AccelRad: Refers to the radial acceleration of the particles.\n\u25cf AccelTan: Refers to the tangential acceleration of the particles.\n\u25cf StartRad: This option is only available in \"Radius\" mode. It sets the start\nradius of the particles.\n\u25cf EndRad: This option is only available in the \"Radius\" mode. It sets the end\nradius of the particles.\n\u25cf RotSec: This option is only available in the \"Radius\" mode. It refers to\nrotations per second.\nNext is the \"Visual\" tab, which lets you change how the particles look. The start and end colors are customized in the top left.\n  45\n\n \u25cf StartSize: The size the particles have when they spawn.\n\u25cf EndSize: The size the particles have when they despawn.\n\u25cf StartSpin: The rotation of the particles when they spawn.\n\u25cf EndSpin: The rotation of the particles when they despawn.\n\u25cf Start R/G/B: Percentage of red, green, and blue values when the particles\nspawn.\n\u25cf Start A: Opacity when the particles spawn.\n\u25cf End R/G/B: Percentage of red, green, and blue values when the particles\ndespawn.\n\u25cf End A: Opacity when the particles despawn.\nIn the \"Extra\" tab, seen below, various other configuration can be done.\n  46\n\n \u25cf Free: With this option enabled, you do not move the particles but pan the camera around.\n\u25cf Relative: With this option, particles do not move when you move the object but spawn at the new position.\n\u25cf Grouped: With this option, all particles move when you move the object.\n\u25cf Fade in/out: Fade time for the particles to appear and disappear.\n\u25cf FrictionP: Adds friction to the particles.\n\u25cf FrictionS: Adds friction to the particle speed.\n\u25cf FrictionR: Adds friction to the particle rotation.\n\u25cf Respawn: Modifies the rate at which particles respawn.\n\u25cf Additive: This is comparable to the blending option for Color Channels.\n\u25cf Start Size = End: The particles have the same size at the end as the start.\n\u25cf Start Spin = End: The particles have the same rotation at the end as the\nstart.\n\u25cf Start Rad = End: Changes the \"StartRad\" value to be the end instead of\nthe start. This option only works in \"Radius\" mode.\n\u25cf Start rot is dir: The rotation of the particles when they spawn is the\ndirection they will go towards.\n\u25cf Use obj color: Particles use Color Channels instead of the color specified in\nthe visual tab.\n\u25cf Uniform obj color: Makes the beginning and ending colors the same.\n\u25cf Dynamic rotation: The particles rotate to face towards the direction they\nare going.\n\u25cf Animate on Trigger: The objects freeze on the first frame. They begin their\nanimation when an Animate Trigger Triggers them.\n\u25cf Animate Active Only: Addition to the \"Animate on Trigger\" option. With\nthis option, the \"Animate on Trigger\" option will only play if the object is active. If the animation is not active while the Animate Trigger is activated, the animation will instead begin once the object is active again.\n  47\n\n \u25cf Order Sensitive: Orders particles with newest ones on top.\n\u25cf StartRGB Var Sync: Syncs the \"Start R/G/B\" values from the \"Visual\" tab.\n\u25cf EndRGB Var Sync: Syncs the \"End R/G/B\" values from the \"Visual\" tab.\n\u25cf Quick Start: By default, the particles will start slowly before reaching their\nnormal movement. With this option, normal movement is achieved instantly.\nIn the \"Texture\" tab, the actual texture of your particle is chosen. Note that for textures with a Base Color other than white, such as the Difficulty Faces, the particle color has to be white. Choosing a color other than white will tint the colors, which may lead to unwanted results. Based on prior settings, the particles may even disappear if you choose black for the particle color.\n  48\n\n The Particle Editor preview is on the left half of the settings menu. In this editor, you can configure motion options by dragging lines around and positioning the particles at different locations. The default version of the editor looks like figure 4.10, but it will automatically update the motion, color, and texture depending on prior configurations.\nAll buttons allow you to modify different parts of the motion. Choose the mode by clicking on the corresponding button. If no button is enabled, you can move the particles inside the editor. Their movement depends on the \"Free\", \"Relative\", and \"Grouped\" options from the \"Extra\" tab.\nThe first button, \"1\", edits the \"PosVar\" values in \"Gravity\" mode, and the \"StartRad\" value in \"Radius\" mode. You can change them by clicking on the green line and moving it around to scale it, as seen in figure 4.11. If you click on an edge, you can change the size on the corresponding axis. If you click on a corner, the size will change relative to the corner position in the square.\n  49\n\n The second button, \"2\", edits the \"Gravity\" values in \"Gravity\" mode, and the \"EndRad\" value in \"Radius\" mode. You can change them by clicking somewhere in the editor and moving around. The blue line will draw from the center to the position you are at, with a longer line indicating a stronger gravity in the corresponding direction, as seen in figure 4.11.\nThe third button, \"3\", edits the \"Angle\" value in both modes, as well as the \"Speed\" value in \"Gravity\" mode. You can change them by clicking somewhere in the editor and moving around. The angle will change to the angle between the center and your click, and the speed will adjust depending on how far the mouse is from the center. The angle is indicated by the rounder yellow line, while the speed is indicated by the straight yellow line, as seen in figure 4.11.\nThe \"C\" button recenters the particles if you moved them around, and the last, colored button changes the background color of the editor.\n  50\n\n 5. Items\nDescription\nItems are found in the tenth tab of the editor, and consist of various objects that are suitable as Collectables. This means that they can be picked up throughout the level, whether they are optional extra challenges or necessary to advance. You can also use many of these as decorations if you wish. The first page of the tab is seen here:\nUser Coins\nThe first object in the tab are User Coins. These are the most used Collectables in the game because they are official. This means that they show on a level's menu screen and may count towards player statistics. You can place up to three of these in your level, but note that you do not need to put any. They are supposed to offer an extra, optional challenge for the player, meaning that they should not be a part of the level's normal route and free to get when beating the level. Once you upload your level, they will initially show as bronze both inside the level and on its menu screen. However, if your level gets rated, RobTop can \"verify\" the coins, making them silver and count for statistics. This means that players get more User Coins on their Profile if they collect yours and beat the level. Note that he may not verify them if your User Coins are free. Similar to Animated Objects, you can use Edit Special to edit their default rotating animation.\n   51\n\n Custom Collectables\nAll other objects in the tab function as custom Collectables. You can assign specific actions to them that will be activated once they get collected. This can be editing a specific Item ID, activating or deactivating a specific Group ID, or assigning Points that add up for the player. To access these options, first place the Collectable you want to use and click \"Edit Special\". This opens the following menu:\nYou can use \"Pickup Item\" to change the value of an Item ID. Item IDs are variables that can be edited and referenced throughout the level. Enter the Item ID you want to change in the \"ItemID\" field. By default, the Item ID will be increased by one. By enabling the \"Sub Count\" option, it will be decreased by one instead. You can read the Pickup Trigger section, as well as the various Item Triggers, for more information on Item IDs.\n    52\n\n Use \"Toggle Trigger\" if you want the Collectable to behave like a Toggle or Spawn Trigger. By default, the Group ID will be toggled off. If you click the \"Enable Group\" option, the Group ID you input in the \"Group ID\" field will toggle on instead. If the Group ID is assigned to a Trigger, the Trigger will be activated like a Spawn Trigger instead. You can read the Using Groups section for an explanation of what Group IDs are and how to use them.\nThe \"Particle\" option allows you to spawn particles when the custom Collectables are collected. Assign a Group ID to your set of particles and enter that Group ID in the \"Particle\" field. Note that your particles cannot have an infinite duration for this to work. You can check the Particle Editor subchapter for more information about particles and how to use them.\nLastly, you can assign Points to the Collectables. Points function similarly to Item IDs. However, they count as a single variable and are used for the Level Leaderboards in Platformer levels. The number you input in the \"Points\" field is how many Points the custom Collectables will award when collected.\n     53\n\n 6. Edit Group\n\"Edit Group\" is one of the most important buttons in the game. It is found on the right side of the editor when the object(s) you want to edit are selected. This menu is what enables you to change attributes of your objects through various options, as well as adding Group IDs to link to Triggers.\nFunctionality\nThe options are used to set editor layer, assign Group IDs, change the Z position, set the Order, and set up Channels. Here is a list of all the settings seen in figure 6.1 and a short explanation of what they do.\n\u25cf Editor L and Editor L2: These options place objects at different editor layers. Objects will appear on both editor layers once set. If \"Editor L2\" is 0, however, the objects will only appear on the layer set in \"Editor L\". You can use the \"+\" buttons to get the lowest layer that has no objects placed on it.\n\u25cf Z Layer: Seen at the bottom, this is used as the drawing order of objects. In order of increasing priority, it goes from \"B5\" to \"T4\" selected by the\n   54\n\n buttons. Objects in layers starting with a \"B\" are below the player, while objects in layers starting with a \"T\" are above the player. When multiple selected objects are in different \"Z Layers\", you can use the \"+\" and \"-\" buttons to move everything up or down one step in layer respectively. To change the drawing order of objects even further, see below.\n\u25cf Tileset: This term is not directly seen in figure 6.1, but its value marked to the right of \"Z Layer\" in parentheses. It specifies the tileset number of the selected object(s). For similar types of objects, this will typically be the same value. For different types of objects in the same \"Z Layer\", the tileset value specifies its priority. Within the same \"Z Layer\", an object with a lower tileset number is always drawn above one with a higher value. To bypass this, you can move the object with a higher value to a higher \"Z layer\". See figure 6.2 for an example.\n\u25cf Z Order: Seen in the top right of figure 6.1, this sets the drawing order of objects that are in the same \"Z Layer\" and also have the same tileset number. If this is the case, putting a higher \"Z Order\" makes it drawn on top. You can input positive and negative values in this field.\n\u25cf Add Group ID: Assign up to ten Group IDs, which you can later use in other Triggers. How to use Group IDs is covered later in this chapter.\n\u25cf ORD: This option only appears for Gameplay Objects and Triggers. It sets an Order in which the objects get activated.\n\u25cf CH: This option only appears for Gameplay Objects and Triggers. It assigns a Channel to the objects, which are used for Rotate Gameplay Triggers to work with different gameplay directions. See Channel System for more information.\nCopy and paste settings from different objects using the \"Copy\" and \"Paste\" buttons in the top right. The \"Extra\" and \"Extra2\" categories have special options, and are covered below.\n       55\n\n   Using Groups\nGroup IDs are essential for Trigger usage. You can add up to ten Group IDs to a specific object. To assign a Group ID to objects, enter the Group ID you want to add into the number field and click the \"Add\" button. The number will be added to the window below in gray, as seen in figure 6.3. Clicking the \"Next Free\" button inputs the lowest Group ID value that has not been used in the level yet.\n  56\n\n To remove a Group ID, simply click the one you want to remove. If you have a single object selected, a new \"P\" button appears next to \"Add\". This is used to mark the object as Group Parent ID. After clicking the \"P\" button, the corresponding Group ID will show in pink instead of the normal gray, as seen in figure 6.4. You can use Group Parent IDs for different Triggers.\nExtra Options\nExtra options are in the \"Extra\" and \"Extra2\" buttons on the right side of the menu. These tabs have many options that change the attributes of objects, some of which are only accessible if the selected object is a Gameplay Object or Trigger, and others are only useful for Platformer. Here is a list and a short explanation of the options in \"Extra\" do:\n\u25cf Dont Fade: Disables fading in and out when entering and exiting the screen. This is default behavior for all visible objects.\n\u25cf Dont Enter: Disables any applied Enter Effects.\n\u25cf No Effects: This option deactivates the effects of Portals. Some examples\ninclude the Background lightning for Size Portals and gravity lines for Gravity Portals.\n      57\n\n \u25cf Group Parent: Sets an object as a Group ID Parent, which is used for scaling and rotating objects.\n\u25cf Area Parent: Marks an object as the Area Parent, which can be used for Area Triggers.\n\u25cf Dont Boost Y/Dont Boost X: Disables the player being boosted by a moving object for the given axis.\n\u25cf High Detail: Marks an object as High Detail. Objects marked as High Detail get disabled when the player enables the Low Detail Mode on the level page. This is useful if your level has a lot of extra, unnecessary details that can lead to poor performance for some users.\n\u25cf NoTouch: Disables interactions between the player and the objects\n\u25cf Passable: You can jump through solid objects but land on them from the\ntop.\n\u25cf Hide: Makes objects invisible.\n\u25cf NonStickX/NonStickY: Only usable for Platformer. The player will stick to\nmoving objects by default. This option removes the friction so the player\ndoes not stick to the objects.\n\u25cf ExtraSticky: When the player stands on an object that moves down too\nfast, the player will not stick to the block anymore. This option increases\nhow sticky it is.\n\u25cf Extended Collision: Objects with a scale larger than a value of 6 have\ninaccurate hitboxes. This option fixes the hitbox to be accurate again. Note\nthat this does not apply to the visuals of objects.\n\u25cf IceBlock: Only usable for Platformer. This option makes blocks slippery, so\nthe player slides further. Controls are also harder.\n\u25cf GripSlope: By default, the player can not slide up steep slopes and will\nslide down instead. With this option enabled, the player has more grip on slopes so that they can slide up.\n 58\n\n \u25cf NoGlow: Disables the glow emitted from solid objects and Spikes, as seen in figure 6.5.\n\u25cf ScaleStick: By default, the player's X position will not change when standing on a scaling object. With this option enabled, the player's position moves the corresponding distance from the scale center.\n\u25cf NoParticle: Disables the particles on Orbs and Portals.\n\u25cf Center Effect: When previewing Triggers with \"Touch Trigger\" enabled in\nthe editor, the effect spawns when the player touches the Trigger at all.\nWith this option enabled, it will only spawn when at the Trigger center.\n\u25cf Single PTouch: This option is used for Rotate Gameplay Triggers and Dual\nMode. If one of the players touches the Trigger, only that one is affected.\n\u25cf No Audio Scale: Disables pulsing for both Orbs and Pulsing Objects. See\nthe figure below.\n  59\n\n   Special IDs\nSpecial IDs are in the \"Extra2\" tab and are used for some Triggers. They have no effect on their own. Here is a list of all the Special IDs and a short explanation of their usage.\n\u25cf Enter Channel: Enter Channel IDs are used for Enter Effects and Custom Enter Effects, which are covered in greater detail later. You can click the \"+\" button to get the lowest Enter Channel ID that is unused.\n\u25cf Material: You can assign Material IDs to objects for set events upon interaction. For example, you can add a Material ID to all ground blocks and use it in Event Triggers to Trigger a stone sound whenever the player lands on them.\n\u25cf ControlID: This option is only available for Gameplay Objects and Triggers. Control IDs are used to reference specific objects when using the remapping setting in Spawn Triggers.\nWhen using \"Edit Group\" with a Trigger, additional options \"EDP\" and \"EDO\" show below the \"Extra\" buttons. \"EDP\" stands for editor preview, and it enables \"Touch Trigger\" Triggers while playtesting. \"EDO\" stands for editor playback object, which makes music playtesting start from this Trigger.\n        60\n\n 7. Triggers\nDescription\nThere are over a hundred Triggers in the game. These are found in the second to last tab, seen below. As explained earlier, Triggers are used to perform various complex actions. They may alter visible objects, such as blocks, in some way, or just change the gameplay or visuals. Since they work in this way, they are never visible objects that can be seen when playing a level. You place them in the editor, and they do their action when the player passes the Trigger's position or other linked events. For example, Triggers that have the \"Touch Trigger\" option enabled will be triggered when the player touches them. There is also a \"Spawn Trigger\" option, which means it is spawned by a Spawn Trigger or different conditional Triggers, like Touch Triggers, Count Triggers, Time Triggers, and more.\nBelow this, every Trigger is covered in-depth in order. If you are unsure about the name of a Trigger found in-game, you can find it by looking at the title inside Edit Object. This is also where you will edit a Trigger's settings. Note that you can also find some simple quick help there by clicking the information button (shown as an \"i\" in one of the corners). This guide works best as an additional resource if any of that text is unclear. Previous knowledge in this document, such as Edit Group, is expected to be able to work with Triggers well.\n         61\n\n Start Pos\nThis Trigger is used to set a custom starting location of the player for playtesting. Levels cannot be verified if they include a Start Pos Trigger.\nThe \"Speed\" and \"Mode\" options are used to set the Speed and Game Mode to use from the Trigger. The \"Options\" menu features more settings, such as starting in Mini Mode, Dual Mode, or Rotated Gameplay.\nThe \"Reset Camera\" option resets all prior camera settings.\n\"Target Order\" and \"Target Channel\" refer to the \"Order\" and \"Channel\" options found in the Edit Group menu. They are used to activate Gameplay Objects and Triggers in a specific order.\nYou can temporarily disable a Start Pos by enabling the \"Disable\" option.\nColor\nColor Triggers are used to change the settings of a Color Channel. It works the same way as the normal color selection, which was covered in the Select Color section.\nThe \"Color ID\" field refers to what Color Channel you want to edit. You can click the \"+\" button for more options, such as the Background Color.\nIf you wish to change a Color Channel to the player's colors, you can use \"Player Color 1\" or \"Player Color 2\".\nThe \"Blending\" option applies blending to the color, which makes it multiply with the colors below it.\n      62\n\n By enabling the \"Copy Color\" option, you can copy the color of a different Color Channel. The Color Channel you wish to copy is input in the \"Channel ID\" field. You can change attributes of the color you copy by using the \"Hue\", \"Saturation\", and \"Brightness\" sliders.\nYou can use the \"Copy\" and \"Paste\" buttons to copy the color from one Color Trigger to another. By clicking the \"Default\" button, it will automatically show the color the corresponding Color Channel has in the Select Color screen.\nMove\nThis Trigger is used to move a specific Group ID. Its interface is seen below. After that, each option is described.\n   63\n\n \u25cf Target Group ID: The Group ID you want to move.\n\u25cf Move X: Moves blocks along the X-axis. One block is equal to a value of 10.\nInput a positive number to move to the right, and a negative one to move\nto the left.\n\u25cf Move Y: Moves blocks along the Y-axis. One block is equal to a value of 10.\nInput a positive number to move up, and a negative one to move down.\n\u25cf Move Time: The duration you want the movement to last.\n\u25cf Easing: Easing options change the way the objects start and end their\nmovement.\n\u25cf Player: You can select a \"Player\" option for both the X-axis and Y-axis.\nWhen this option is selected, the objects will follow the player's movement\nin the given direction.\n\u25cf Camera: The \"Camera\" option can also be selected for both the X-axis and\nY-axis. It functions similarly to the \"Player\" option, but follows the screen movement instead of the player movement.\n\u25cf Target Mode: Moves the objects to a \"Target Group ID\". This must be a single object. \"Center Group ID\" declares the center of the objects you want to move. This must also consist of a single object only. Selecting \"P1\" or \"P2\" declares Player 1 or 2, in Dual Mode, respectively as \"Target Group\" and moves the objects to that player's location instead.\n  64\n\n \u25cf Direction Mode: Moves the objects in the direction of a \"Target Group ID\". This must be a single object. \"Center Group ID\" declares the center of the objects you want to move. This must also be a single object. Selecting \"P1\" or \"P2\" declares Player 1 or 2, in Dual Mode, respectively as \"Target Group\" and moves the objects to that player's location instead. \"Distance\" indicates how far in the direction the objects move. As before, one block is equal to a value of 10.\n\u25cf Small Step: Enabling this option changes the value for one block from 10 to 30. This improves accuracy and allows for more precise movements.\n\u25cf Dynamic Mode: This option checks if the \"Target Group ID\" moves when in \"Target Mode\" or \"Direction Mode\". Normally the Trigger will only check upon activation where the target is and move towards that direction. With \"Dynamic Mode\" enabled, it will update its direction based on the target moving.\n\u25cf Silent: In Platformer mode, the player sticks to solid blocks that move instantly. With this option enabled, blocks move instantly without the player following their movement.\n   65\n\n Stop\nThis Trigger shows as a Stop, Pause or Resume Trigger depending on what option you choose inside \"Edit Object\".\n\"Stop\" is used to stop the action of other Triggers permanently. Give the Triggers you want to stop a Group ID and enter that Group ID in the Stop Trigger.\n\"Pause\" pauses the action of other Triggers temporarily. Give the Triggers you want to pause a Group ID and enter that Group ID in the Stop Trigger. The difference to a Stop Trigger is that you can resume the Trigger later by using a Resume Trigger.\n\"Resume\" resumes the action of other Triggers. Give the Triggers you want to resume a Group ID and enter that Group ID in the Stop Trigger. Only Triggers that were paused with a Pause Trigger can be resumed.\n\"Use Control ID\" allows you to only stop a specific Group ID when using remapping. For example, if you remap a Spawn Trigger to use Group IDs 1, 2, and 3, and you only want to stop Group ID 3, you can enter a \"Control ID\" and enable the option in the Stop Trigger. You can find the \"Control ID\" option in the \"Extra 2\" category after clicking \"Edit Group\".\n 66\n\n Pulse\nThis Trigger is normally used to change the color of a Color Channel or Group ID temporarily. The interface and various options are as follows:\n\u25cf Channel: With \"Channel\", you pulse an entire Color Channel. Clicking the \"+\" button allows you to select a special color. This includes for example the Background, Ground, Middleground, and Player Colors.\n\u25cf Group: With \"Group\", you pulse objects with that Group ID.\n\u25cf Main Only and Secondary Only: These options are only available when\nclicking \"Group\". Some objects have a Base Color and Detail Color, which\ncan be seen in the \"Edit Object\" menu.\n\u25cf Color: With \"Color\", the objects pulse the color you select.\n\u25cf HSV: With \"HSV\", you can pulse the objects using another \"Color ID\" and\nchange the \"Hue\", \"Saturation\" and \"Brightness\" of that \"Color ID\". If you leave this value at 0, you pulse the color you put into the \"Channel ID\" field\n  67\n\n \u25cf Fade In: The duration for the objects to reach the pulse color.\n\u25cf Hold: How long the objects hold the pulse color.\n\u25cf Fade Out: The duration for the objects to return to their original color.\n\u25cf Exclusive: This option disables all other pulses with the same ID, and only\nplays the current pulse.\nAlpha\nThis Trigger is used to change the opacity of an object over a given time frame. The options are as follows:\n\u25cf Group ID: The objects you want to change the opacity of.\n\u25cf Fade Time: The duration until the objects reach the set opacity.\n\u25cf Opacity: The opacity you want the objects to have.\nToggle\nThe Toggle Trigger enables or disables objects. Objects that are disabled are invisible, and the player cannot interact with them anymore.\n\u25cf Group ID: The objects you want to disable or enable.\n\u25cf Activate Group: With this option enabled the objects will be enabled. With\nthe option disabled, objects will be disabled.\nSpawn\nSpawn Triggers can activate other Triggers.\n\u25cf Group ID: The Triggers you want to spawn.\n\u25cf Delay: The delay before you spawn the Trigger.\n\u25cf Preview Disabled: Disables the Spawn Trigger when in \"Preview Mode\".\nThe Trigger will still activate when you playtest in the editor. 68\n\n \u25cf Spawn Ordered: All Triggers within this Group ID will be activated from left to right, with the distance between the Triggers indicating the delay between them.\n\u25cf Reset Remap: Resets the remapping of Group IDs.\nYou can use the second page of the Trigger's interface to remap Spawn Trigger setups. This is useful to save Group IDs.\n    69\n\n Due to this being complex, we will use an example. In figure 7.8, we are moving a block left and right by using a Spawn Loop. Now we want to add another block that also moves left and right. Normally we would need to copy all the Triggers and change their values. With remapping, we can copy the Spawn Trigger on the left, and remap the Group ID of the old setup to the new block. This is seen in figure 7.9.\nNow Group ID 4 will behave the same as Group ID 1. You can spawn Group ID 4 at a later time to offset the two block movements. This particular remapping saves 3 Group IDs.\n    70\n\n Rotate\nThis Trigger is used to rotate a specific Group ID. Its interface is seen below. After that, each option is described.\n\u25cf Target Group ID: The objects you want to rotate.\n\u25cf Center Group ID: The center the objects should rotate around. This Group\nID can only consist of a single object. Leaving this as 0 will result in all\nobjects rotating around their own center.\n\u25cf Move Time: The duration you want the rotation to last.\n\u25cf Degrees: How many degrees you want the objects to rotate. Enter a\nnegative value to rotate counter-clockwise and enter a positive value to\nrotate clockwise.\n\u25cf x360: How many full rotations (360 degrees) you want to do. Enter a\nnegative value to rotate counter-clockwise and enter a positive value to rotate clockwise.\n  71\n\n   \u25cf Aim Mode: The objects will face towards the \"Rot Target ID\". This must be a Group ID with a single object. You can offset the rotation with \"Rot Offset\". Choosing \"P1\" or \"P2\" will make the objects face towards Player 1 and Player 2 respectively. If this is enabled, you can limit the rotation to be between objects set on the second page of the Trigger.\n\u25cf Follow Mode: The objects will follow the rotation of \"Rot Target ID\". This must be a Group ID with a single object. You can offset the rotation with \"Rot Offset\". Choosing \"P1\" or \"P2\" will make the objects face towards Player 1 and Player 2 respectively. The second page of the overall Trigger lets you set Group IDs of single objects as boundaries for following. This means that the rotation will not continue to follow the target if it reaches these positions.\n    72\n\n \u25cf Dynamic Mode: This option checks if the target moves when in \"Aim Mode\" or \"Follow Mode\". Normally the Trigger will only check upon activation where the target is and face towards that direction. Moving the Target Group ID does not update the direction. With \"Dynamic Mode\" enabled, it will update its direction based on the target moving.\n\u25cf Lock Obj Rotation: The objects themselves will not rotate but instead only update their position.\nScale\nThis Trigger is used to scale a specific Group ID. Its interface is seen below. After that, each option is described.\n\u25cf Target Group ID: The objects you want to scale.\n\u25cf Center Group ID: The center the objects should scale from. This Group ID\ncan only consist of a single object. Leaving this as 0 will result in all objects\nscaling from their own center.\n\u25cf Duration: The duration you want the scaling to last.\n\u25cf ScaleX/ScaleY: How much you want to scale the objects in the X and Y\ndirection respectively.\n\u25cf Div by Value X/Y: Divides the current scale by this number and uses this\nas the target value.\nIf you want to scale an object and have it return to its original size, you can use \"ScaleX/ScaleY\" like normal on the first Scale Trigger, and simply tick the \"Div by Value\" boxes when scaling back on another Scale Trigger. For example, if you want to scale a block to 3.00, put \"ScaleX\" and \"ScaleY\" to 3.00. If you want it to return to 1.00 now, you would need to put 1/3 into the fields. This is not possible and leads to inaccuracies. By ticking the \"Divide by Value\" box, you divide the scale by 3.00, which brings you back to 1.00.\n73\n\n \u25cf Only Move: The objects will only move to the place they would be when you scale them. They will not change their size.\n\u25cf Relative Rotation: When blocks are rotated, they will rotate their X-axis and Y-axis as well. Turning this option on draws a new X-axis and Y-axis and puts it at the correct place. In the example below, the blocks are rotated 45 degrees.\n\u25cf Relative Scale: This option makes the scale value adjust based on a reference object. Normally, if you scale an object down by 0.95 for example, each scale will be smaller and smaller. With this option enabled, the scale will instead refer to the object in the Center Group ID to decide what the next scale factor should be.\nFollow\nThis Trigger is used to make objects mimic the movement of other objects. All options are explained below.\n\u25cf Target Group ID: The objects you want to follow another Group ID. 74\n  \n \u25cf Follow Group ID: The Group ID that should be followed. This Group ID can only consist of a single object.\n\u25cf Move Time: How long you want the objects to follow the Group ID.\n\u25cf X/Y Mod: The values you put here will be multiplied with the movement of\nthe \"Follow Group ID\". For example, if the \"Follow Group ID\" moves 50 blocks to the right, and you put 0.5 in \"X Mod\", the objects move 25 blocks to the right instead of 50.\nShake\nThe Shake Trigger applies a temporary shake effect to the screen. Be careful to not overuse this Trigger or input large numbers into the options, as it may result in a bad experience for players. The options are explained below.\n\u25cf Strength: How intense the shake effect is.\n\u25cf Interval: The interval between every shake effect. Leaving this value at 0\nresults in the screen shaking every frame.\n\u25cf Duration: How long the shake effect is applied to the screen.\nAnimate\nThe Animate Trigger is used to give custom animations to Monsters, and it can also be used to activate the animation of Animated Objects.\n\u25cf Group ID: The Group ID of the objects you want to animate or change the animation of.\n\u25cf Animation ID: Only used for Monsters. Check the information box in-game to get information about what \"Animation ID\" refers to what monster.\n 75\n\n Keyframe Animation\nThis Trigger is used to activate a keyframe animation. You can find all settings below, as well as a detailed example of its usage in the Keyframe System chapter.\n\u25cf Animation Group ID: Group ID of your Keyframe Triggers. It is enough for the first Keyframe Trigger in your animation to have this Group ID.\n\u25cf Target ID: The objects you want to follow the animation.\n\u25cf Parent ID: The Group ID that should be used as the center for scaling and\nrotating. By default objects will choose their own center. You can also set\nthe center of the objects using the \"Group Parent ID\".\n\u25cf Time/Position/Rotation/Scale Mod: The values you put here will be multiplied with the movement of the keyframes. For example, if the\nkeyframes move 50 blocks to the right, rotate 90 degrees, and scale to 4.00, and you put 0.5 for all modifiers, the target objects will only move 25 blocks, rotate 45 degrees, and scale to 2.00.\nFollow Player Y\nFollow Player Y Triggers are used to make objects follow the Y movement of the player. The movement can be modified by using the different options explained below.\n\u25cf Target Group ID: The objects you want to follow the player's Y movement.\n\u25cf Move Time: How long you want the objects to follow the player's Y\nmovement.\n\u25cf Speed: Modifies the speed the object has when following the movement\nof the player. The value you put here will be multiplied with the player movement. For example, if the player moves 5 blocks per second and you put 0.5, the objects will move 2.5 blocks per second.\n  76\n\n \u25cf Delay: Delay before the objects follow the movement.\n\u25cf Offset: Offsets the objects. Normally the objects will snap to the exact Y\nposition. A value of 10 is equal to one block offset above the player. Enter a\nnegative value to offset below the player.\n\u25cf Max Speed: The maximum speed the objects can reach when following\nthe movement. The formula used to calculate the speed is (Max Speed/(Max Speed + 1)). Thus, if you put 5.0 for \"Max Speed\", for example, the objects will do 5/6 of the movement the player did in the same time.\nAdvanced Follow\nAdvanced Follow Triggers are used to make objects move towards a target and make them follow its movement. They are by far one of the most complex Triggers in the game. We highly suggest you follow along on your own example when testing out the options.\n  77\n\n \u25cf Target GID: The Group ID of the objects that should go towards the Group ID set in \"Follow GID\".\n\u25cf Follow GID: The Group ID of the object that should be the new target. You can choose from the buttons below for more options.\n\u25cf Priority: The priority at which the movements will be applied if an object is affected by more than one Advanced Follow Trigger.\n\u25cf X/Y Only: The objects will only follow the X or Y movement of the Group ID in \"Follow GID\" respectively.\n\u25cf P1/P2/C: Corresponds to Player 1, Player 2, and the screen center respectively.\n\u25cf Rotation Offset: Offsets the rotation of the objects. Enter a negative value to offset the rotation to the left or a positive value to offset the rotation to the right.\n\u25cf Ignore Disabled: The movement is not applied if the objects are not active. Activating them again starts the movement.\n\u25cf Rotate Dir: Makes the objects rotate towards the target.\n\u25cf Rotate Easing: Adds easing to the rotation of the objects.\n\u25cf Rotate DeadZ: A deadzone for the rotation of the objects.\n\u25cf Init: This option is used for the second and third mode, and controls how\nthe values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, the values are used only when the object has no speed values.\n\u25cf Set: This option is used for the second and third mode, and controls how the values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, any current velocity gets overridden.\n\u25cf Add: This option is used for the second and third mode, and controls how\nthe values you define in \"Startspeed\" and \"StartDir\" are applied. With this\noption, the velocity gets added to the current one.\n\u25cf Exclusive: Advanced Follow Triggers have a \"Priority\" value. When multiple\nAdvanced Follow Triggers for the same object are active, it will process 78\n\n them in order based on \"Priority\". If an action is exclusive, it will not process any other actions after it.\nOn the second page you can choose between 3 different modes by using the three buttons labeled 1, 2, and 3 in the top right. We will be going through all options and what their differences are.\nThe \"+-\" sliders on all options indicate variance. For example, if you input a \"Delay\" of 3 and enter 2 into the \"+-\" field, the \"Delay\" will randomly be chosen in a range of 2 below and above. As a result, you get 1 to 5 \"Delay\".\nIn the first mode, the objects will simply move towards the target.\n\u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30. 79\n  \n \u25cf Easing: Adds an easing to the start and end of the movement.\nIn the second mode, the objects will also move towards the target. However, you have more options to customize the movement depending on how close the objects are to the target.\n\u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30.\n\u25cf StartSpeed: The speed the objects have when they start their movement.\n\u25cf StartDir: The direction the objects face when they start their movement,\nwith 0 meaning up, 90 right. and so on.\n\u25cf Acceleration: The acceleration of the objects.\n\u25cf Friction: The friction that is applied to the objects.\n\u25cf NearDist: At what distance the objects are considered near the target. One\nblock is equal to 30.\n  80\n\n \u25cf NearFriction: The friction of the objects when they get near the target. What counts as near is configured by the \"NearDist\" value.\n\u25cf NearAccel: The acceleration of the objects when they get near the target. What counts as near is configured by the \"NearDist\" value.\nThe three boxes on the right correspond to their respective options. They apply their setting towards a set reference object. \"MaxRange\" will be drawn from the objects to the reference object. \"StartSpeed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. By inputting a 2 in the slider, you double the speed. \"StartDir\" makes the objects face towards the reference object.\nIn the third mode the objects will also move towards the target. However, you can also edit more attributes of the movement.\n  81\n\n   \u25cf Delay: Delay before the movement starts.\n\u25cf MaxSpeed: Max speed the objects can reach. Leaving this at 0 results in no\nmovement at all.\n\u25cf MaxRange: Range in which the \"Follow GID\" has to be to the \"Target GID\"\nto start the movement. One block is equal to 30.\n\u25cf StartSpeed: The speed the objects have when they start their movement.\n\u25cf StartDir: The direction the objects face when they start their movement,\nwith 0 meaning up, 90 right and so on.\n\u25cf Acceleration: The acceleration of the objects.\n\u25cf SteerForce: The force that is applied when the objects steer towards the\ntarget.\n82\n\n The three boxes on the right correspond to their respective options. They apply their setting towards a reference object. \"MaxRange\" will be drawn from the objects to the reference object. Secondly, \"StartSpeed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. For example, by inputting \"2\" in the slider, you double the speed. Lastly, \"StartDir\" makes the objects face towards the reference object.\n\u25cf SteerForceLow: The lowest the steer force can get.\n\u25cf SpeedRangeLow: The speed of the objects when they are not within the\n\"MaxRange\".\n\u25cf SteerForceHigh: The highest the steer force can get.\n\u25cf SpeedRangeHigh: The speed of the objects when they are within the\n\"MaxRange\".\n\u25cf SlowAccel: The acceleration of the objects when in the \"SlowDist\" distance\nfrom the target object.\n\u25cf SlowDist: The distance from the target object that is considered slow,\nwhich applies the \"SlowAccel\" setting. One block is equal to 30.\n\u25cf BreakForce: The force at which the objects brake when the target\nsuddenly goes in a different direction.\n\u25cf BreakAngle: The angle at which the objects will brake.\n\u25cf BreakSteerForce: The force at which the objects steer while braking.\n\u25cf BreakSteer SpeedLimit: The max speed at which the objects can steer\nwhile braking.\n\u25cf Target Dir: The objects move in the direction of target.\nThe checkboxes next to \"SteerForceLow\" and \"SteerForceHigh\" enable low and high speed modes respectively. As a last note for this Trigger, it is worth noting that you can select from two premade settings by clicking the \"Pre\" button on the first page.\n83\n\n Edit Advanced Follow\nThis Trigger is used to edit the attributes of an Advanced Follow Trigger. An explanation of all options can be found below.\n\u25cf Target GID: The Group ID of the objects that should go towards the \"Follow GID\".\n\u25cf X Only/Y Only: The objects will only apply the change on the X or Y movement respectively.\n\u25cf Mod X/Mod Y: Modifies the movement on the X-axis and Y-axis respectively.\n\u25cf Speed: Modifies the speed of the objects.\n\u25cf Dir: Modifies the direction at which the movement is applied.\n\u25cf Target Control ID: Control ID allows you to only target a specific Group ID\nwhen using remapping. For example, if you remap a Spawn Trigger to use Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter a Control ID and enable the option in the Trigger. You can find the Control ID option in the \"Extra 2\" category after clicking \"Edit Group\" with the Trigger selected.\n\u25cf Redirect Dir: Redirects the direction towards a reference object, which is input in the box to the right.\nThe two boxes on the right correspond to their respective options. They apply their setting towards a reference object. \"Speed\" functions like a multiplier in this setting. It will copy the movement speed of the reference object. By inputting a 2 in the slider, you double the speed. \"Dir\" will apply the movement towards the direction of the reference object.\n 84\n\n Re-Target Advanced Follow\nThis Trigger is used to change the target of an Advanced Follow Trigger.\n\u25cf Target GID: The Group ID of the objects that should go towards the Group ID set in \"Follow GID\".\n\u25cf Follow GID: The Group ID of the object that should be the new target. You can choose from the buttons below for more options.\n\u25cf Target Control ID: Control ID allows you to only target a specific Group ID when using remapping. For example, if you remap a Spawn Trigger to use Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter a Control ID and enable the option in the Trigger. You can find the Control ID option in the \"Extra 2\" category after clicking \"Edit Group\" with the Trigger selected.\n\u25cf P1/P2/C: Corresponds to Player 1, Player 2, and the screen center respectively.\nKeyframe\nThis Trigger is used to set up keyframes. You can find an explanation of all settings below, as well as an in-depth example in the Keyframe System chapter.\nThe Keyframe Trigger is one of the most complex Triggers. We suggest following along with your own example when testing the options.\n  85\n\n   \u25cf GroupID: The objects you want to reference for your animation. Note that these are not necessarily the objects that will do the animation. Those objects are normally set in the Keyframe Animation Trigger. \"GroupID\" in this Trigger is mainly used for referencing the art when you enable \"Preview Art\". However, it is also used as the target if you do not input any override when calling the Keyframe Animation Trigger.\n\u25cf Duration: The duration until the Keyframe Trigger reaches the next one. This time is always used unless it is a \"Ref Only\" Keyframe. \"Time\", \"Even\" and \"Dist\" set how the time is used.\n\u25cf Easing: Applies easing to the start and end of the keyframe.\n\u25cf x360: If you want to do a full rotation (360 degrees) before reaching the\nnext keyframe.\n\u25cf CCW/CW: Whether you want the rotation to be done clockwise or\ncounter-clockwise. Applies to all rotations, including full ones.\n86\n\n \u25cf SpawnGID: Spawns a Group ID when the target objects reach the keyframe.\n\u25cf SpawnDelay: Delay before \"SpawnGID\" is spawned.\n\u25cf Prox: \"SpawnGID\" is spawned when the target objects are close to the\nkeyframe.\n\u25cf Curve: Keyframes use Be\u0301zier curve to get to the next keyframe.\n\u25cf Time: With this option enabled, \"Duration\" is used to reach the next\nkeyframe.\n\u25cf Even: The time between the keyframes is distributed evenly between all\nthe \"Ref Only\" keyframes in between.\n\u25cf Dist: The duration before reaching the next keyframe is distributed\nbetween all \"Ref Only\" keyframes based on their distance from each other.\nLet us look at an example to better understand how the different options work.\n  87\n\n The red Keyframe Triggers are marked as \"Ref Only\", while the green and blue ones are not. The green keyframe controls the animation until the blue one, and the blue one controls it until the end. If you set easing on the green keyframe, that easing will be used to reach the blue keyframe. All red easing values are ignored since they are reference points only.\nThe numbers in the figure are example durations set on the Triggers. If you select \"Time\" on the green Keyframe Trigger, it will take 10 seconds to reach the next red keyframe. Afterwards, the red keyframe's duration will be used to reach the next one, so 5 seconds, and then 7 seconds from the next until you reach the blue keyframe. As a result, it takes 22 seconds in total to reach the blue one.\nIf you instead select \"Even\" on the green keyframe, it will ignore all the duration values of the red (reference) keyframes, and evenly spread out the 10 seconds between each keyframes. As a result, it will take 10 seconds in total to reach the blue one.\n\u25cf Close Loop: The objects return back to the first keyframe after completing the last one.\n\u25cf Preview Art: Used to preview the art you want to animate. By default, you only see the arrow icon. For this option to work, you have to put a Group ID and also declare a Group Parent ID. With this option enabled, the objects will spawn at the arrow position, with the Group Parent ID functioning like the arrow icon.\n88\n\n   \u25cf Ref Only: Reference objects. Objects marked as reference have a lower opacity and are not considered for the \"Even\" and \"Dist\" options. Check the corresponding options to see how their movement is handled.\n\u25cf Auto Layer: Automatically layers the keyframes, so that the new one is the highest. Most useful when using \"Preview Art\".\n\u25cf Select All: Selects all keyframes.\n\u25cf Update Art: Updates the art for the \"Preview Art\" option. Changes done to\nthe reference Group ID are not updated instantly, so you need to press this\nif you change your design.\n\u25cf Dup Anim: Duplicates the keyframes. You cannot copy and paste them\nlike normal, since the copy would be considered connected in that case.\n\u25cf Reverse Order: Reverses the keyframe settings. For example, instead of\nscaling by 2 and moving 5 blocks to the right, it will scale by 0.5 and move 5 blocks to the left.\n89\n\n Area Move/Rotate/Scale/Fade/Tint\nArea Triggers are used to apply different effects to an area of objects. Due to many Area Triggers having the same settings, we will be explaining their general options first and provide specific ones below. Note that Area Triggers are on the more complicated side. Follow along with your own example.\nArea Triggers work by taking the center you provide, drawing a circle around the center (or a specific direction depending on what you pick below the \"Deadzone\" option). This is done using the length you provide and calculating the steps in between. For example, if you have \"From Opacity\" at 1.00 and \"To Opacity\" at 0.50, the center will be shown as 1.00 opacity, and the borders will be at 0.50 opacity. All other steps in between will be calculated gradually. For example, right in the middle (\"Length\"/2), the opacity will be (1.00 + 0.50)/2 = 0.75.\n\u25cf Length: Length in which objects will be affected..\n\u25cf Offset: Offsets the center position in the X direction. The \"+/-\" is how off it\ncan go. For example, \"Offset\" at 40 with \"+/-\" at 10 would offset the center\nbetween 3 and 5 blocks.\n\u25cf Offset Y: Offsets the center position in the Y direction. The \"+/-\" is how off it\ncan go. For example, \"Offset\" at 40 with \"+/-\" at 10 would offset the center\nbetween 3 and 5 blocks.\n\u25cf Deadzone: Divides the length by the value you set here and changes the\ntransition between center and edge accordingly. For example, having a length of 40 and setting a \"Deadzone\" of 0.5 would do 0 to 100% between 0 and 20, and stay 100% from 20-40.\n90\n\n   \u25cf ModFront/ModBack: Modify the front and back of your center position. The value you put here is multiplied with your center.\n\u25cf Ignore Linked: Objects linked together will be seen as one object by default. Enabling this object disables this and makes the objects behave as if they are not linked. Note that you have to set an object as Group Parent or Area Trigger for this to work.\n\u25cf Ignore GParent: If you set a Group Parent ID it will be seen as the center of your objects, and all objects will behave exactly like that one. The action also only starts when you are within this object's range. Enabling this option disables the Group Parent ID and makes all blocks behave as if they do not have a Group Parent ID.\n\u25cf DE AP: Stands for \"Don't Edit AreaParent\". The object that is set as Group Parent ID will not perform any of the area actions.\n\u25cf Easing: The easing the objects have when they start their action.\n91\n\n \u25cf Ease Out: Allows modifying the easing the objects have when they end their action.\n\u25cf Priority: If several Area Triggers of the same kind are active at once, the one with the higher priority will perform its action.\n\u25cf Effect ID: Specific ID that can be referenced later, for example in Edit Area Triggers.\n\u25cf P1: Player 1.\n\u25cf P2: Player 2.\n\u25cf C: Center of the screen.\n\u25cf BL: Bottom left of the screen.\n\u25cf CL: Left of the screen from the center.\n\u25cf TL: Top left of the screen.\n    92\n\n \u25cf BC: Bottom of the screen from the center.\n\u25cf TC: Top of the screen from the center.\n\u25cf BR: Bottom right of the screen.\n\u25cf CR: Right of the screen from the center.\n\u25cf TR: Top right of the screen.\n  The buttons below the \"Deadzone\" option indicate what direction the length will be drawn. Here\u2019s a table of all the variations and what their range looks like.\n93\n\n Table 7.1: Direction settings.\n                94\n\n                 95\n\n                 96\n\n         For Area Move, we have these unique settings:\n\u25cf MoveDist: Distance the objects move.\n\u25cf MoveAngle: Angle in which objects move. 0 is up, 90 right, 180 down, 270\nleft, and so on.\n\u25cf Relative: Moves away in angle depending on where the center is. If the\ncenter is above the object, it will move down. If it is to the right, it will move\nleft, and so on.\n\u25cf RFade: Fade when using \"Relative\". Basically distance ratio between\nobjects. 0 means a big gap, and the higher the number the smaller the\ngap ratio.\n\u25cf XY Mode: You can enter X and Y values like in the normal Move Trigger\ninstead of choosing a direction.\n 97\n\n For Area Rotate, we have these unique settings:\n\u25cf Rotation: The degrees you want the objects to rotate. Enter a positive value to rotate clockwise, and a negative value to rotate counter-clockwise.\nFor Area Scale, we have these unique settings:\n\u25cf ScaleX/ScaleY: The size the objects scale in the X-axis and Y-axis respectively.\nFor Area Fade, we have these unique settings:\n\u25cf From Opacity: The opacity the objects closest to the center have.\n\u25cf To Opacity: The opacity the objects furthest from the center have. For Area Tint, we have these unique settings:\n\u25cf Color Channel: The color you want to tint the objects in.\n\u25cf %: The percentage you want to tint the color. For example, if you want to\ntint a black object white and set \"%\" to 0.5, the object will turn gray.\n\u25cf Main Only and Secondary Only: Some objects have a Base Color and\nDetail Color, which is seen in the \"Edit Object\" menu. These options only\nchange the these colors respectively.\n\u25cf HSV: Instead of tinting the color of a different Color Channel, you can\nsimply tint the same Color Channel and change the \"HSV\" values of it.\n98\n\n Edit Area Move/Rotate/Scale/Fade/Tint\nEdit Area Triggers change the values of Area Triggers. Due to all options being the same, you can check the section above to find detailed information about all settings. Edit Area Triggers have the option to use Effect IDs to reference Area Triggers. The Effect ID can be configured within the Area Triggers.\nArea Stop\nArea Stop Triggers stops Area Triggers. Area Stop Triggers can only reference the Effect ID, which is configured in the Area Triggers.\nChange BG/G/MG\nThese Triggers change the Background, Ground or Middleground respectively. Pick a Background, Ground, or Middleground from the menu to switch to the respective one from this Trigger's activation.\nTouch\nTouch Triggers are used to enable or disable a Group ID upon player touch. Touch Triggers also function as Spawn Triggers, meaning that they can spawn other Triggers. By default, the Touch Triggers switch between disabling and enabling an object on player touch. It is worth noting, that moving left and right also count as a player touch in Platformer, despite the player not jumping.\n\u25cf Group ID: The Group ID you want to enable, disable, or spawn.\n\u25cf Hold Mode: Changes to enable the Group ID while the player holds, and disabling when the player releases. By default the Touch Triggers switch\nbetween disabling and enabling an object on player touch.\n\u25cf Dual Mode: This is an obsolete option from 2.1, which disables counting\ninputs from player 2. Avoid using this option and use \"P1/P2 Only\" instead. 99\n \n \u25cf P1/P2 Only: Only counts touches from one player instead of both.\n\u25cf Toggle On/Off: Toggles a Group ID on or off when the player touches. For\nexample, if you enable \"Hold Mode\" and \"Toggle Off\", holding will disable the object and releasing will enable it. If you want to spawn a Group ID on player touch, you should enable the \"Toggle On\" option.\nCount\nCount Triggers are used to enable, disable, or spawn a Group ID when an Item ID reaches a specific number. Count IDs can be activated at any time when that number is reached, as opposed to Instant Count Triggers which only check if the condition is met when the Trigger is hit.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target Count: The number the Item ID needs to have to activate the Group ID.\n\u25cf Target ID: The Group ID which should be enabled, disabled, or spawned when the Item ID reaches the \"Target Count\".\n\u25cf Activate Group: Enable this option to enable a Group ID, or to spawn a Group ID. By default, the Group ID will be disabled when the count is reached. Reaching the count again does not reactivate the Group ID, and Triggers are only spawned if this option is enabled.\n\u25cf Multi Activate: Allows the Group ID to be enabled, disabled, or spawned again when the \"Target Count\" is reached several times. By default, the action will only be performed once.\n 100\n\n Instant Count\nInstant Count Triggers are used to are used to enable, disable, or spawn a Group ID if an Item ID is equal, smaller, or larger than a specific number. Instant Count Triggers only check if the condition is met when they are hit and never again afterwards, as opposed to Count Triggers which check for their condition constantly.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target Count: The number the Item ID needs to have to activate the Group ID.\n\u25cf Target ID: The Group ID which should be enabled, disabled, or spawned when the Item ID reaches the \"Target Count\".\n\u25cf Activate Group: Enable this option to enable a Group ID, or to spawn a Group ID. By default, the Group ID will be disabled when the count is reached. Reaching the count again does not reactivate the Group ID, and Triggers are only spawned if this option is enabled.\n\u25cf Equals/Larger/Smaller: This option will trigger \"Target ID\" if the Item ID is equal, larger, or smaller respectively when the Trigger is reached.\nPickup\nPickup Triggers can be used to change the values of Item IDs.\n\u25cf Item ID: The Item ID you want to check the value for. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Count: The number you want to increase the current Item ID value by. By default, this will use addition. Check the options below for different arithmetics.\n 101\n\n \u25cf Override: The Item ID value will override the current value with the new one instead of using addition.\n\u25cf Multiply: Multiplies the previous value with your set modifier.\n\u25cf Divide: Divides the previous value with your set modifier. Note that the\nItem ID will drop all numbers after the decimal point. For example, dividing a value of 5 by 2 will result in 2 instead of 2.5, since the 0.5 is dropped.\nTime\nTime Triggers function as an in-game Timer. In-game Timers use Item IDs to work.\n\u25cf StartTime/StopTime: The time you want the Timer to start and stop at respectively. Note that you have to enable the checkbox to the right of \"StopTime\" for the time to actually stop. If\"StopTime\" is lower than \"StartTime\", \"StopTime\" will be ignored.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n\u25cf TargetID: The Group ID you want to spawn when \"StopTime\" is hit. Note that you actually have to stop the time at the \"StopTime\" to enable the Group ID. In other words, you have to enable the checkbox to the right of the \"StopTime\" option.\n\u25cf TimeMod: Modifies the Timer. The number you input here will be multiplied with the normal Timer, resulting in the time going quicker if the value is above 1 and slower if it is below 1.\n\u25cf Ignore TimeWarp: Using a TimeWarp Trigger will also slow down or speed up the Timer. Enabling this option makes the time behave the same.\n 102\n\n \u25cf StartPaused: The Timer will display your \"StartTime\", but it will not start until activated by a different Time Trigger or a Time Control Trigger.\n\u25cf Dont Override: Time Triggers with this option enabled will only affect the Timer if it is at 0.00 or has the \"StartPaused\" option enabled. If the Timer is currently counting, the Triggers will not change the value.\nTime Event\nTime Event Triggers spawn a Group ID if a specific time is hit in the Timer. Unlike the \"TargetID\" in the Time Trigger, the Timer does not have to stop at this value to Trigger it.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n\u25cf TargetID: The Group ID you want to spawn when \"TargetTime\" is hit\n\u25cf TargetTime: The time at which you want to spawn \"TargetID\".\n\u25cf Multi Activate: The Triggers can spawn again if the \"TargetTime\" is hit\nseveral times.\nTime Control\nTime Control Triggers can start and stop a Timer.\n\u25cf ItemID: The Item ID you want to use as a Timer. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID. Note that you have to set the Item ID to \"Time Counter\" in the \"Edit Special\" page of the Item ID for this Trigger to work.\n  103\n\n Item Edit\nThis Trigger is used to edit an Item ID using two different Item IDs. You can do many different operations with these two Item IDs. Note that Item Edit Triggers are pretty complicated, so we suggest following along with your own example.\n\u25cf ItemID1/ItemID2: The Item IDs you want to use to do operations. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"ItemID1\" and \"ItemID2\". For example, if \"ItemID1\" is a normal Item ID, and \"ItemID2\" is a Timer, you would select the \"Item\" and \"Timer\" options respectively. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Target ItemID: The Item ID you want to edit. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"Target ItemID\". Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n  104\n\n \u25cf Mod: Modifies the value that \"ItemID1\" and \"ItemID2\" produce. Leaving this option at 1 will disable the third button, which is \"\u2022\" in the picture below.\nThe three buttons in figure 7.26 correspond to how the numbers interact with each other. We will explain what each one does, and then show some examples for better understanding.\n\u25cf The first button decides how the new values interact with the \"Target ItemID\". If you set it to \"=\", the \"Target ItemID\" will use the new value. If you set it to \"+\", the value will be added to the current value of the \"Target ItemID\". Likewise, if you set it to \"-\", the value will be subtracted from the current value. If you set it to \"\u2022\" instead, the current value will be multiplied with the value, while setting it to \"/\", divides the current value.\n\u25cf The second button decides how \"ItemID1\" and \"ItemID2\" interact with each other to calculate the value. If you set it to \"+\", \"ItemID1\" will be added to \"ItemID2\". If you set it to \"-\", \"ItemID2\" will be subtracted from \"ItemID1\". Similarly, if you set it to \"\u2022\", \"ItemID1\" and \"ItemID2\" are multiplied, and with \"/\", \"ItemID1\" will be divided by \"ItemID2\".\n\u25cf The third button decides how the modifier interacts with the value that \"ItemID1\" and \"ItemID2\" create. If you set it to \"\u2022\", the value will be multiplied with the modifier value. If you set it to \"/\", the value will be divided by the modifier value.\n  105\n\n To the right of these, there are two empty, optional buttons (figure 7.25), which can be set to \"N\" or \"A\" for \"neg\" and \"abs\" respectively. In order, these negate or find the absolute value of the number. Absolute value essentially drops a negative sign and only uses positive values.\nFor our example, \"ItemID1\" has the value 8, \"ItemID2\" has the value 5, and \"Target ItemID\" has the value 2. All values and operations are color coded for convenience. As you can see, we selected \"+\" in the first box. This means that the value will be added to the current value, indicated by the \"I3 +\" at the bottom. In the second box, we selected \"-\", which means \"ItemID2\" will be subtracted from \"ItemID1\", as indicated by \"(I1 - I2)\". Lastly, we set a modifier. We chose \"/\" in the third box, which means that our value will be divided by our modifier.\n  106\n\n Let us replace the Item IDs with the values we chose to see what the result should be. (Note that this is edited and cannot be achieved in normal Geometry Dash.)\nDoing the calculations, we get I3 = 2 + 3/2 = 2 + 1.5, which cannot be represented due to how Geometry Dash rounds by default. Because of this, the .5 is dropped and we are left with 2 + 1. Now our equation is I3 = 2 + 1 = 3, which means the new value of our \"Target ItemID\" is 3.\nDropping of .5 may not be ideal in all cases. Luckily, we can fix this with the \"NA\" buttons. The first \"NA\" button decides how the value you calculate is handled. To use our example, this button decides how decimals are handled for (8 - 5) / 2.000. The second \"NA\" decides how the new value is handled by the \"Target ItemID\", so I3 in our example. Here are all the options you can set and how they behave.\n\u25cf NA: The default way Geometry Dash handles the numbers. Using this mode will drop all decimal points.\n\u25cf RND: Rounds the number to the closest integer. If we take our example, 3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4 instead of 3.\n\u25cf FLR: Stands for floor function, which means it will always round down to the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.\n\u25cf CEI: Stands for ceiling function, which means it will always round up to the next higher integer. For example 1/10 = 0.1 would be rounded up to 1.\n  107\n\n Item Compare\nThis Trigger is used to compare two Item IDs and spawn Group IDs depending on whether their condition is true or not. Item Compare Triggers are pretty complicated, so we suggest following along with your own example.\n\u25cf ItemID1/ItemID2: The Item IDs you want to compare with each other. Note that depending on what option you have selected in the \"Edit Special\" menu in the Item Trigger, you have to select the respective option from the menu to the right of \"ItemID1\" and \"ItemID2\". For example, if \"ItemID1\" is a normal Item ID, and \"ItemID2\" is a Timer, you would select the \"Item\" and \"Timer\" options respectively. Place the \"0\" object and click \"Edit Special\" to configure a unique Item ID.\n\u25cf Mod1/Mod2: Modifiers for \"ItemID1\" and \"ItemID2\" respectively. How the modifier interacts with the values can be changed with the \"\u2022\" buttons, which is explained below.\n\u25cf TrueID/FalseID: The IDs that will be spawned if your condition is true or false respectively.\n  108\n\n \u25cf Tol+-: The tolerance. For example, if you set 0.5 here and \"ItemID1\" is 1, while \"ItemID2\" is 0.5, this would count as true despite \"ItemID1\" and \"ItemID2\" not being equal.\nThe three buttons to the right decide how the values are compared, and how the modifiers interact with them. The first box decides the operation for \"ItemID1\" and \"Mod1\", the second box decides the operation for \"ItemID2\" and \"Mod2\", and the third box decides how the two values are compared to each other.\nFor the first and second box, you can select the following options:\n\u25cf \"+\" means that the corresponding modifier will be added to the Item ID value.\n\u25cf \"-\" means that the corresponding modifier will be subtracted from the Item ID value.\n\u25cf \"\u2022\" means that the corresponding modifier will be multiplied with the Item ID value.\n\u25cf \"/\" means that the Item ID value will be divided by the corresponding modifier.\n  109\n\n For the third box, you can select the following options:\n\u25cf \"==\" will return true if \"ItemID1\" is equal to \"ItemID2\".\n\u25cf \">\" will return true if \"ItemID1\" is larger than \"ItemID2\".\n\u25cf \">=\" will return true if \"ItemID1\" is larger than or equal to \"ItemID2\".\n\u25cf \"<\" will return true if \"ItemID1\" is smaller than \"ItemID2\".\n\u25cf \"<=\" will return true if \"ItemID1\" is smaller than or equal to \"ItemID2\".\nThe first \"NA\" decides how the left side of the equation is handled, so \"ItemID1\" and \"Mod1\". The second \"NA\" decides how the right side of the equation is handled, so \"ItemID2\" and \"Mod2\". Here are all the options you can set and how they behave.\n\u25cf NA: The default way Geometry Dash handles the numbers. Using this mode will drop all decimal points.\n\u25cf RND: Rounds the number to the closest integer. If we take our example, 3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4 instead of 3.\n\u25cf FLR: Stands for floor function, which means it will always round down to the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.\n\u25cf CEI: Stands for ceiling function, which means it will always round up to the next higher integer. For example 1/10 = 0.1 would be rounded up to 1.\n110\n\n Persistent Item\nThis Trigger marks Item IDs as persistent. Persistent Item IDs do not get reset when you die. However, they are reset when you exit the level.\n\u25cf Item ID: The Item ID you want to mark as persistent. Note that if your Item ID is a Timer, you have to select the \"Timer\" option to the right of \"Item ID\".\n\u25cf Persistent: Marks the ID as persistent, so the value will not be reset upon death.\n\u25cf TargetAll: Targets all persistent Item IDs at once.\n\u25cf Reset: Resets the Item ID to 0.\nRandom\nRandomly triggers one of two Group IDs.\n\u25cf Group ID 1/Group ID 2: The two Group IDs that can be triggered.\n\u25cf Chance %: The chance that \"Group ID 1\" is triggered. For example, if this is set to 80, \"Group ID 1\" has an 80% chance of being triggered, while \"Group\nID 2\" has a chance of 100% - 80% = 20%.\nAdvanced Random\nRandomly triggers one of up to 10 Group IDs.\n\u25cf Group ID: The Group ID you want to have a chance of being triggered.\n\u25cf Chance: How likely it is for this Group ID to be triggered. The way the odds\nare calculated is by multiplying the \"Chance\" value by 100, and then dividing it by the sum of all \"Chance\" values so far and the one you are about to add.\n111\n\n For example, if you add Group ID 1 with a \"Chance\" of 20, and then add Group ID 2 with a \"Chance\" of 50, the odds will be calculated as follows. \"Chance\" of Group ID 2, 50, is multiplied by 100, resulting in 5000. Afterwards, it is divided by both the \"Chance\" of Group ID 1 and 2, so 5000 / 70 \u2248 71%. This is the odds Group ID 2 will have, while Group ID 1 will have odds of (20 * 100) / 70 \u2248 29%. If you were to add Group ID 3 with \"Chance\" at 60, the odds would change to (20 * 100) / 130 \u2248 15% for Group ID 1, (50 * 100) / 130 \u2248 38% for Group ID 2, and (60 * 100) / 130 \u2248 46% for Group ID 3.\nSequence\nThe Sequence Trigger is used to spawn a sequence of Triggers. Every time the Trigger is triggered, it will advance one step further in the sequence.\n\u25cf GroupID/Count: The Group ID you want to spawn, with \"Count\" being how often you want to spawn it.\n\u25cf MinInt: Minimum interval that has to pass before you can activate the next step in the sequence.\n  112\n\n \u25cf Reset: If set to 0, this option is ignored. If the Trigger is not triggered for the duration you input here, it will stop the sequence and start from the beginning again the next time you use it.\n\u25cf Mode Stop: The sequence stops once you reach the end.\n\u25cf Mode Loop: The sequence starts from the beginning again after you reach\nthe end.\n\u25cf Mode Last: The sequence will finish like normal, and after hitting the\nTrigger again, only the last Group ID will be triggered every time.\n\u25cf Reset Full: If the Trigger has not been triggered for the \"Reset\" time, the\nTrigger will return to the first Group ID in the sequence.\n\u25cf Reset Step: If the Trigger has not been triggered for the \"Reset\" time, the\nsequence will go back to the Group ID before the current one.\nFor example, let us say you have a sequence of Group IDs 1, 2, 3, and 4, and use \"Reset Step\" with a \"Reset\" time of 1 second. You trigger the first 4 sequences. If you do not activate the Trigger for 1 second, it will trigger Group ID 3. If you do not activate the Trigger for 2 seconds, it will trigger Group ID 2.\nSpawn Particles\nSpawns particles upon activating the Trigger. Note that the particles you want to spawn cannot have an infinite duration, and that the Trigger will spawn the particles once on activation and not loop like normal.\n\u25cf Particle Group: Group ID of the particles you want to spawn at the \"Position Group\". It can consist of multiple particles.\n\u25cf Position Group: Position at which the particles will spawn. This Group ID can only consist of one object.\n113\n\n \u25cf Offset X/Y: Offsets the position the particles are spawned at relatives to \"Position Group\". A positive value adds an offset right and up respectively, and vice versa. Note that one block is equal to 30.\n\u25cf OffVar X/Y: Adds a variance for the particle target position. This basically means that the particles will spawn in a random location within these boundaries. Note that one block is equal to 30, and that the value is drawn in both directions.\n\u25cf Rotation: Changes the rotation of the particles.\n\u25cf Scale: Changes the scale of the particles.\n\u25cf Match Rot: Makes the rotation of the spawned particles match. Only\nuseful when \"Particle Group\" contains multiple particles without rotation set in their own settings.\nReset\nResets Collectables and the checkpoint object. Objects will appear again when this Trigger is activated and can be collected again.\n\u25cf Group ID: Group ID of the objects you want to reset. 114\n   \n Zoom\nZooms the camera. The center point for the zoom is the camera center.\n\u25cf Zoom: The value you want to zoom to. If you want to return to the default state, leave this value at 1.000.\n\u25cf Time: The duration in which the zoom should happen.\n\u25cf Easing: Easing options change the way the objects start and end their\nmovement.\nStatic Camera\nUses a Target Group ID as the center of the screen and locks to that object.\n\u25cf Target Group ID: The Group ID that should be seen as the camera center. Can only consist of a single object.\n\u25cf X Only/Y Only: The camera only takes the object's X or Y position as the camera X or Y center respectively.\n\u25cf Follow: Follows the movement of the object.\n\u25cf Easing: Adds an easing duration when following an object.\n\u25cf Smooth Velocity: Reacts to player velocity and tries to move the camera\nsmoothly to where you want. The path is calculated by using a Be\u0301zier\ncurve.\n\u25cf Modifier: Shifts the Be\u0301zier curve for the \"Smooth Velocity\" option.\n\u25cf Exit Static: Exits the static mode and returns to the default camera\nlocation.\n\u25cf Exit Instant: The camera instantly snaps back to the default camera\nlocation when using \"Exit Static\".\n\u25cf Duration: The duration for the camera to reach the object.\n115\n\n Camera Offset\nOffsets the camera center.\n\u25cf Offset X: Moves the camera center along the X-axis. One block is equal to 10. Input a positive number to move to the right, and input a negative one to move to the left.\n\u25cf Offset Y: Moves the camera center along the Y-axis. One block is equal to 10. Input a positive number to move up, and input a negative one to move down.\n\u25cf Move Time: The duration for the camera to finish offsetting.\nGameplay Offset\nOffsets the player by 2.5 blocks to the right, putting them in the X-axis center of the screen (assuming no other camera modifications have been made). Note that the movement is always 2.5 blocks (or 75 steps) no matter what camera offset or zoom you have.\nCamera Rotation\nRotates the camera.\n\u25cf Move Time: How long it should take to reach the rotation.\n\u25cf Degrees: Rotation you want to have. Enter a positive value to rotate\nclockwise, and enter a negative one to rotate counter-clockwise. Leave this\nat 0 to return to the default rotation.\n\u25cf Easing: Changes the way the objects start and end their movement.\n116\n\n Camera Edge\nSets edges for the camera. If the edge is within the current screen, it will either snap for the object to be at the edge or ignore it until the object is outside the screen, depending on the zoom level. The camera edge will adjust with the movement of the edge objects.\n\u25cf Target ID: The Group ID you want to set as the edge. It can only consist of a single object.\n\u25cf Left/Right/Up/Down: Defines what kind of edge it is. Enabling left would set the object as the left edge of the screen, while down would set it at the bottom edge of the screen, and so on.\n\u25cf Unlock: Press this button to return to the default state. You can also just leave \"Target ID\" at 0.\nCamera Guide\nDoes not serve any other purpose besides functioning as a guide to see the camera edges of different zooms. Can also be used as the \"Target Group\" for the Static Camera Trigger to always have a good understanding of what the screen will look like.\n\u25cf Zoom: The zoom level you want to display. If you want to return to the default state, leave this value at 1.000.\n\u25cf Offset X: Moves the outlines along the X-axis. One block is equal to 30. Input a positive number to move to the right, and input a negative one to move to the left.\n\u25cf Offset Y: Moves the outlines along the Y-axis. One block is equal to 10. Input a positive number to move up, and input a negative one to move down.\n 117\n\n Reverse\nReverses the player direction in Classic levels. Does not do anything in Platformer.\nRotate Gameplay\nRotates the gameplay (not the camera) in the direction the arrow points. The line that is below the arrow indicates the gravity.\nThe Rotate Gameplay Trigger direction determines how the Channel\u2019s Triggers are sorted. For example, if the Rotate Gameplay Trigger points up, Triggers with a smaller Y value are triggered first, and higher ones later. If the Trigger points right, Triggers with a smaller X value are triggered first and higher ones later, and so on. See Channel System for more information.\n\u25cf Keep Velocity: Keeps the velocity the player has before the gameplay rotation and smoothly transitions it to the new gravity. Results in smoother movement overall.\n\u25cf Change Channel: Changes the Channel to the number you have entered in the number box at the bottom.\n\u25cf Channel Only: Only changes the Channel and does not update the gameplay rotation.\n\u25cf Instant Offset: The camera updates instantly when switching gameplay to the opposite direction.\n 118\n\n Song\nChanges the song in the middle of a level.\n\u25cf Channel: There are 5 Channels on which a song can play. Songs on different Channels will play simultaneously, while only one song can play on the same Channel. Note that Channels used for music are not the same as Color Channels or the ones mentioned for Rotate Gameplay Triggers.\n\u25cf Start/End: The time (in milliseconds) at which you want the song to start and end.\n\u25cf Fade In/Fade Out: The time (in milliseconds) at which the song should fade in and out.\n\u25cf Prep/Load Prep: Setting a song time introduces some delay depending on the seek time. If you need the song to sync precisely, you first have to \"Prep\" the Trigger, then \"Load Prep\" later. \"Prep\" overwrites any previous \"Prep\", so if you have multiple Song Triggers, you have to alternate between loading them. For example, \"Prep\" and \"Load Prep\" for the first, \"Prep\" and \"Load Prep\" for the second, and so on.\nEdit Song\nEdits attributes of a song, such as volume, speed and also allows for proximity options.\n\u25cf Channel: The Channel you want to edit the song of.\n\u25cf Duration: How long it should take for the song to change to the new\nsettings.\n\u25cf Speed: Changes the speed of the song. Note that you have to enable the\n\"Change Speed\" button for the speed to actually change.\n\u25cf Volume: Changes the volume of the song. Note that you have to enable\nthe \"Change Volume\" button for the speed to actually change. 119\n \n \u25cf Stop/Stop Loop: \"Stop\" stops the song entirely, while \"Stop Loop\" stops the looping of the song, so it will stop the next time it reaches the end.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance should be drawn from.\n\u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n  120\n\n \u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively. Above is an example with \"MinDist\" set to 30 and both \"Dist2\" and \"Dist3\" set to 20. \"MinDist\" refers to the closest length and is drawn in red, while \"Dist2\" refers to the middle length and is drawn in green. Finally, \"Dist3\" refers to the furthest length and is drawn in blue. The distances stack with each other. For example, if your \"MinDist\" is 20 and your \"Dist2\" is 30, the \"Dist2\" circle will be drawn 5 blocks from the object in Group ID 1, and not 3 blocks.\nThe various arrow buttons indicate how proximity is handled. Here are all options and how their sound is drawn. The distance options will be drawn from the Group ID 2 object (in this case Player 1) towards the arrow direction. In these examples, black is equal to the highest volume and gray is equal to the lowest.\nTable 7.2: Proximity buttons.\n        121\n\n                 122\n\n                 123\n\n SFX\nYou can choose a sound effect (SFX) to play from the menu in the top right of the first page.\n\u25cf Reverb: Reverb is created when a sound occurs in a space, resulting in the SFX changing pitch and echo accordingly. By clicking the \"+\" button, you can select different spaces for the SFX to occur in.\n\u25cf FFT: Stands for fast Fourier transform. \"FFT\" is used to determine the fundamental frequencies and therefore pitches that are present in the raw signal.\n\u25cf Loop: Loops the SFX until stopped.\n\u25cf Pre Load: Setting a start time introduces some delay depending on the\nseek time. If you need the SFX to sync precisely, you can preload it.\n\u25cf Start/End: Start and end of the SFX in milliseconds.\n\u25cf FadeIn/FadeOut: Fades the SFX in and out respectively, with the values\nbeing in milliseconds.\n\u25cf Unique ID: Assigns a unique ID to SFX within their respective \"SFXGroup\".\nBy enabling the \"IsUnique\" option, you mark the ID as unique, resulting in\nno other SFX being able to take that ID if it is in the same \"SFXGroup\".\n\u25cf SFXGroup: You can have several SFX and put them into their own\n\"SFXGroup\". This Group ID can later be edited.\n\u25cf MinInterval: Minimum interval before the SFX can be triggered again.\n\u25cf Override: If another SFX has the same \"Unique ID\" and \"SFXGroup\", this\nnew SFX will override the old one.\n\u25cf Ignore Volume Test: SFX played at volume 0 are ignored. Enable this\noption to not ignore them. This is mainly used for the proximity options,\nwhere the sound will not play if any distance has a volume of 0.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance\nshould be drawn from.\n124\n\n \u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n\u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively.\nSee figure 7.33 and table 7.2 under Edit Song Trigger for more information on proximity.\nEdit SFX\nEdits attributes of a sound effect (SFX), such as volume, speed and also allows setting up proximity options.\n\u25cf Group ID: You can give the SFX Triggers you want to edit a Group ID and change them through this field.\n\u25cf SFXGroup/UniqueID: \"SFXGroup\" and \"UniqueID\" can be used to reference the exact SFX you want to edit. You should put the same values you put into the SFX Trigger here.\n\u25cf Duration: How long it should take for the SFX to change to the new settings.\n\u25cf Speed: Changes the speed of the SFX. Note that you have to enable the \"Change Speed\" button for the speed to actually change.\n\u25cf Volume: Changes the volume of the SFX. Note that you have to enable the \"Change Volume\" button for the speed to actually change.\n 125\n\n \u25cf Stop/Stop Loop: \"Stop\" stops the SFX entirely, while \"Stop Loop\" stops the looping of the SFX, so it will stop the next time it reaches the end.\n\u25cf Group ID 1: Used for proximity. This is the Group ID where the distance should be drawn from.\n\u25cf Group ID 2: Used for proximity. This is the Group ID the distance will be measured to. For example, if your \"MinDist\" is 60, the \"VolNear\" volume will be played when the Group ID is within 6 blocks of Group ID 1. Choosing \"P1\", \"P2\", or \"Cam\" from the buttons below turns Group ID 2 into Player 1, Player 2, or the camera center respectively.\n\u25cf VolNear/VolMed/VolFar: Volume near, medium, and far away for proximity. \"VolNear\" means you are within the \"MinDist\" boundaries from Group ID 1, while \"VolMed\" refers to \"Dist2\" and \"VolFar\" to \"Dist3\".\n\u25cf MinDist/Dist2/Dist3: Sets the boundaries for \"VolNear\", \"VolMed\", and \"VolFar\" respectively.\nSee figure 7.33 and table 7.2 under Edit Song Trigger for more information on proximity.\nEvent\nSpawns a Group ID upon a player action. The action can be selected from the top right menu.\n\u25cf Group ID: The Group ID that is spawned when the player does the action.\n\u25cf Extra ID/Extra ID2: You can input a Material ID here for the action to only\napply if you are on that Material ID. For example, if you choose \"Normal Landing\" and enter a Material ID used for a specific a block, you will only activate the Group ID if you land on that block.\n 126\n\n TimeWarp\nSpeeds up or slows down time. This affects everything, including player movement, durations in Triggers, Timers, and so on..\n\u25cf TimeMod: Modifier for the time. The value you input here will be multiplied with the normal time, so less than 1 will slow the time down and above 1 will speed time up.\nCamera Mode\nAllows switching between Free Mode and Normal Mode for camera. In Free Mode, the borders for Ship, Ball, UFO, Wave, Spider, and Swing are removed.\n\u25cf Edit Camera Settings: Allows you to edit how the camera follows the player in Free Mode. \"Easing\" changes how the camera starts and ends its movement, while \"Padding\" modifies how close the player has to be to the top or bottom of the screen for the camera to start following.\n\u25cf Disable GridSnap: Normally the camera center will snap to the closest grid space. With this option enabled, the snapping will not happen.\nSetup MG\nMoves the Middleground.\n\u25cf Offset Y: Moves the Middleground up or down. Input a positive value to move it up, and enter a negative value to move it down.\n\u25cf Easing: Easing options change the way the Middleground starts and ends its movement.\n\u25cf Move Time: Duration until the Middleground finishes its movement.\n127\n\n BG/MG Speed\nModifies the speed at which the Background and Middleground follow the player.\n\u25cf Mod X/Mod Y: Modifies the X-axis speed and Y-axis speed respectively. The value you input here will be multiplied with the default speed, with 0 stopping the movement entirely.\nCounter Label\nDisplays Item IDs, Timers, or Points.\n\u25cf ItemID: The Item ID that should be displayed. The value of Item IDs can be changed with Pickup Triggers, Time Triggers or Collectables depending on what option you choose.\n\u25cf Time Counter: Functions as a Timer. You need a Time Trigger to use this Timer.\n\u25cf Seconds Only: The Timer only displays the seconds.\n\u25cf MainTime: Also functions as a Timer that displays the exact game time.\n\u25cf Points: Points can be configured in the \"Edit Special\" page of Collectables.\n\u25cf Attempts: Displays the current attempt the player is on.\n\u25cf Left Align/Right Align: Aligns the ID to the left or right border respectively.\nThe width will change depending on what value it has (for example 8 is wider than 1). By default, the width will be extended the same to the left and right. Choosing \"Left Align\", the width will expand only to the right, while choosing \"Right Align\" will expand only to the left.\n     128\n\n UI Settings\nMarks objects as user interface and puts them on a UI layer which is in front of everything else, including the Ground. The UI layer is permanent and cannot be edited.\n\u25cf Group ID: The objects that get marked as UI.\n\u25cf UI Target: This Group ID is marked as the camera center reference and can\nonly consist of one object.\n\u25cf XRef/YRef: The reference points for aligning the object.\n\u25cf Auto/Center/Left/Right/Top/Bottom: \"Auto\" aligns objects based on the\ncamera edges of the \"UI Target\" object. \"Center\" uses the center of the object as the camera center. \"Left\" uses the object as the left edge of the camera, while \"Right\" uses the object as the right edge of the camera. Similarly, \"Top\" uses the object as the top edge of the camera, while \"Bottom\" uses the object as the bottom edge of the camera.\n\u25cf Relative: The position of the UI will scale with the screen aspect ratio.\n  129\n\n Visibility Link\nThis makes every object in a Group ID visible, as long as any of its objects are on screen. It is useful for larger collection of blocks that go offscreen often. Note that it cannot be toggled throughout the level.\n\u25cf Group ID: The objects you want to be fully visible. This is processed at level load.\nCollision\nSpawns a Group ID when two Collision Blocks collide. One of the two blocks must have the \"Dynamic Block\" activated.\n\u25cf BlockA ID/BlockB ID: Groups of Block 1 and Block 2, one of which has to have the \"Dynamic Block\" option enabled.\n\u25cf Target ID: The Group ID that gets spawned when the blocks collide.\n\u25cf P1/P2/PP: Enabling \"P1\" or \"P2\" allows triggering upon Player 1 or 2\ncolliding with \"BlockB ID\" respectively. Enabling both options allows for triggering when either player collides with it. \"PP\" triggers the Group ID when both players collide with each other in Dual Mode.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n\u25cf Trigger On Exit: The Group ID will be triggered when the blocks do not collide anymore.\n 130\n\n Instant Collision\nInstant Collision Triggers function similarly to Collision Triggers, however it is only checked on Trigger activation if the condition is true or false. Normal Collision Triggers check if the condition is true all the time.\n\u25cf BlockA ID/BlockB ID: Groups of Block 1 and Block 2, one of which has to have the \"Dynamic Block\" option enabled.\n\u25cf True ID/False ID: The Group ID that gets spawned if \"BlockA ID\" and \"BlockB ID\" collide or do not collide respectively in the moment the Trigger is activated.\n\u25cf P1/P2/PP: Enabling \"P1\" or \"P2\" allows triggering upon Player 1 or 2 colliding with \"BlockB ID\" respectively. Enabling both options allows for triggering when either player collides with it. \"PP\" triggers the Group ID when both players collide with each other in Dual Mode.\nCollision State\nSpawns a Group ID when the player enters and exits the block hitbox. Functions as a quicker alternative to Collision Blocks.\n\u25cf State On/State Off: The Group ID that is spawned if the player is colliding with the Collision State hitbox or not colliding respectively.\nCollision Block\nThe blocks used for (Instant) Collision Triggers. If you want two blocks to collide, you will have to mark one of them as \"Dynamic\".\n 131\n\n Player Touch\nToggles or spawns a Group ID if the player clicks while within the block hitbox.\n\u25cf Group ID: The Group ID that gets spawned or toggled when the Trigger gets activated.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n\u25cf Claim Touch: The player will not jump and no rings will spawn. The click can not be buffered.\n\u25cf Spawn Only: Clicking only spawns the Group ID and does not toggle it on or off.\n\u25cf NO Multi Activate: By default, the Group ID will be toggled or spawned every time you click within the hitbox. With this option enabled, you can only toggle or spawn it once.\nOn Death\nToggles or spawns a Group ID when the player dies.\n\u25cf Group ID: The Group ID that gets spawned or toggled when the player dies.\n\u25cf Activate Group: Activates the Group ID. By default, the Group ID will be toggled off. Enable this option if you want to spawn a Group ID or toggle an object on.\n132\n\n Disable/Enable Trail\nDisables and enables the player trail respectively.\nShow/Hide\nShows and hides the player respectively. Hiding the player makes it invisible, but note that you can still see the trail if enabled.\nBG Effect On/Off\nEnables and disables the background particles in Ship, Ball, UFO, Wave.\n      133\n\n End\nMarks an object as the end of the level. The player gets pulled towards it. This Trigger can be used in both Classic and Platformer levels.\n\u25cf TargetPos: The Group ID of the object that should be considered as the position for the end. The Group ID can only consist of one object.\n\u25cf SpawnID: A Group ID that gets spawned when the player reaches the end. This is optional.\n\u25cf Instant: The player will teleport to the end as soon as the object is on screen instead of slowly jumping towards it.\n\u25cf No Effects: Disables the effects that play when you reach the end, such as the effect lines.\n\u25cf No SFX: Disables the SFX that plays when you reach the end. Player Control\nControls behavior of the player.\n\u25cf P1/P2: What player you want to control. Both options enabled or disabled results in both players being affected.\n\u25cf Stop Jump: Stops the player jumping.\n\u25cf Stop Move: Stops the player movement.\n\u25cf Stop Rot: Stops the player rotation.\n\u25cf Stop Slide: Stops the low friction state you are in after being launched by a\nforce block. It does not stop the sliding from slopes or ice blocks.\n134\n\n Options\nSeveral options to change attributes of the level.\n\u25cf Streak Additive: Changes the trail and particles to be blending.\n\u25cf Unlink Dual Gravity: Unlinks the gravity of the icons in Dual Mode. By default, if one icon switches gravity, the other icon will switch gravity as well.\n\u25cf Hide Ground/Hide MG: Makes the Ground and Middleground respectively invisible.\n\u25cf Hide P1/Hide P2: Hides Player 1 or Player 2 respectively. Functions the same like the Hide Trigger.\n\u25cf Disable P1 Controls/Disable P2 Controls: Disables all input for Player 1 or Player 2 respectively.\n\u25cf Hide Attempts: Hides the Attempts counter.\nBPM Guide\nDraws lines in the editor at beats per minute you configure. Helps to make parts sync based on the BPM the song uses.\n\u25cf BPM: Stands for beats per minute. Lines will be drawn based on this number. For example, if you have 60 BPM, a line will be drawn every second.\n    135\n\n \u25cf BPB: Stands for beats per bar. One bar is the space between two BPM lines. The number you input here will split each space into the corresponding sections. For example, if you have a BPM of 60 and a BPB of 2, a line will be drawn every 0.5 seconds.\n\u25cf Duration: How long you want the lines to be drawn.\n\u25cf Speed: Changes the distance between the lines to account for the\ndifferent speeds.\n\u25cf Disable: Hides the lines.\nGradient\nCreates a gradient between two colors. You can change the way the gradient looks by rotating the Gradient Trigger.\n\u25cf Vertex Mode: Draws the gradient between 3 or 4 points which get connected. By default, the gradient can only be a square with defined top, bottom, left, and right boundaries. Using \"Vertex Mode\" allows the gradient to have more interesting shapes.\n\u25cf U/D/L/R: Used to draw the gradient if \"Vertex Mode\" is disabled. The variables refer to the Group IDs of target objects set as up, down, left, and right respectively. These variables work as boundaries for the gradient, so you do not have to set all.\n\u25cf BL/BR/TL/TR: Used for the \"Vertex Mode\" boundaries. The variables refer to the Group IDs of target objects set as bottom left, bottom right, top left, and top right respectively. Note that putting 3 of those variables is enough to draw the gradient in \"Vertex Mode\".\n\u25cf Blending: How the gradient behaves with colors beneath it.\n\u25cf ID: Can be used to reference gradients. For example if you want to disable\na gradient later on.\n136\n\n \u25cf Disable All: Disables all gradients. You can disable only a single gradient by using its \"ID\" and choosing the \"Disable\" option.\n\u25cf Preview Opacity: The opacity the gradient has in the editor preview. Gravity\nChanges the gravity force.\n\u25cf Gravity: Modifies the gravity. A value below 1 makes the player lighter, while a value above 1 makes the player heavier.\n\u25cf P1/P2/PT: The gravity only affects Player 1 or Player 2 respectively. \"PT\" only affects the player that touches the Trigger.\nTeleport\nTeleports the player to a set location.\n\u25cf Target GroupID: The Group ID the player teleports to. The Group ID can only consist of one object.\n\u25cf Gravity: The gravity the player should have after finishing the teleportation. 137\n  \n \u25cf Normal: Normal gravity after teleporting.\n\u25cf Flipped: Flipped gravity after teleporting.\n\u25cf Toggle: The gravity flips to the opposite, depending on what gravity you\nare when teleporting. You flip from normal to flipped and from flipped to\nnormal.\n\u25cf Smooth Ease: The camera follows smoothly to the new position of the\nplayer.\n\u25cf Save Offset: The offset the player has to the Trigger center when\nactivating it is saved and applied to the target object, resulting in a slightly\noffset teleport.\n\u25cf Ignore X/Ignore Y: Does not teleport on the X-axis or Y-axis respectively.\n\u25cf Instant Camera: The camera instantly snaps to the new position.\n\u25cf Snap Ground: The Ground snaps to the new position.\n\u25cf Redirect Dash: Rotates Dash Orb effect to match teleport exit rotation.\nOnly for Platformer levels.\n\u25cf Static Force: You exit the rotation based on the rotation of the target, with\na force applied.\n\u25cf Force: The force the player should have when exiting the teleport. The\nforce is applied in the direction of the target object rotation.\n\u25cf Redirect Force: The force the player should have when exiting the\nteleport. The force is applied in the direction of the target object rotation\nand an input force.\n\u25cf Min/Max: Limits the exit force. If you leave this value at 0, no limit will be\nset.\n\u25cf Mod: Modifies the input force value. The speed you have will be this value\nmultiplied with the speed you have when teleporting.\n138\n\n Shader\nShader Triggers edit how the other Shader Triggers work. You can disable shader effects and limit the layers they affect.\n\u25cf Disable All: Disables all other shaders.\n\u25cf No Player Particles: When using a shader which only affects the player\nlayer, the particles might look weird due to different rendering. This option disables the shader from the particles.\nWith the buttons at the bottom, you can choose the layers affected by the shaders. The blue buttons are the highest and lowest layer that will be affected. The green buttons are the ones in between which will be affected, and the gray ones will not be affected.\nShockWave\nCreates a shockwave effect.\n\u25cf Speed: The speed at which the shockwave will happen. 139\n  \n \u25cf Strength: How strong the shockwave is. The lower the value, the less distorted objects get.\n\u25cf Thickness: The \"thickness\" of each wave. The higher the value, the thicker the wave will be.\n\u25cf WaveW: Wave width. The higher the value, the less distorted it is.\n\u25cf FadeIn/FadeOut: Fades the shockwave in and out. The higher the value,\nthe longer it takes to fade in or out respectively.\n\u25cf TimeOff: Time offset before the shockwave starts, with the value being in\nseconds.\n\u25cf MaxSize: Modifies the max size of the wave. Leaving it at 0 will put it at the\nmax value. The value you put here will be multiplied with the wave size.\n\u25cf Invert: Inverts the shockwave effect to go from outside to inside instead of\ninside to outside.\n\u25cf Inner: Size of the waves in the middle of the shockwave. Option only\navailable with \"Invert\" enabled.\n\u25cf Outer: Size of the waves at the outside of the shockwave. Higher values\nmeans it will take longer to reach the center. Option only available with \"Invert\" enabled.\n  140\n\n \u25cf Target: Chooses a Group ID as the center of the shockwave. The Group ID can only consist of one object.\n\u25cf P1/P2: Makes Player 1 or Player 2, respectively, the center of the shockwave. Option only available with \"Target\" enabled.\n\u25cf Follow: Follows \"Target\". By default, it will only check the position of the target when the Trigger is activated and spawn the shockwave there. With this option enabled, the center will follow the target. Option only available with \"Target\" enabled.\n\u25cf Relative: The shockwave follows the screen movement. By default, it will stay at the position it was triggered at.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the shockwave. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\nShock Line\nCreates a shock line effect.\n\u25cf Speed: The speed at which the shockline will happen.\n\u25cf Strength: How strong the shockline is. The lower the value, the less\ndistorted objects get.\n\u25cf Thickness: The thickness of each line. The higher the value, the thicker the\nwave will be.\n\u25cf WaveW: Line width. The higher the value, the less distorted it is.\n\u25cf FadeIn/FadeOut: Fades the shockline in and out. The higher the value, the\nlonger it takes to fade in or out respectively.\n\u25cf TimeOff: Time offset before the shockline starts with the value being in\nseconds.\n\u25cf MaxSize: Modifies the max size of the line. Leaving it at 0 will put it at the\nmax value. The value you put here will be multiplied with the line size. 141\n\n \u25cf Invert: Inverts the shockline. If considered in a 3D perspective, the highs of the line will become lows and the other way around.\n\u25cf Flip: Flips the line to go from right to left instead of left to right.\n\u25cf Rotate: Rotates the line to go from bottom to top instead of left to right.\n\u25cf Dual: Creates two shock lines from the middle, which go to the left and\nright respectively.\n\u25cf Target: Chooses a Group ID as the center of the shockline. The Group ID\ncan only consist of one object.\n\u25cf P1/P2: Makes Player 1 or Player 2 respectively the center of the shockline.\nOption only available with \"Target\" enabled.\n\u25cf Relative: The shockline follows the screen movement. By default, it will\nstay at the position it was triggered at.\n\u25cf ScreenOff: Offsets the center of the shockline. Negative numbers offset it\nto the left or bottom respectively, while positive numbers offset it to the right or up respectively. Note that the directions depend on what option you choose from the buttons above.\nGlitch\nCreates a glitch effect.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Strength: Strength of the effect. All other values will be multiplied with the\nstrength and adjusted accordingly.\n\u25cf Speed: Speed at which the glitch effects happen. The lower the value, the\nslower the effects.\n\u25cf SliceHeight: During the glitch effect the screen will be sliced, which refers\nto the higher blocks getting offset on the X-axis.\n\u25cf MaxSliceXOff: Max offset on the X-axis that the objects can be sliced.\n142\n\n \u25cf MaxColXOff/MaxColYOff: Max distance offset for the color on the X-axis and Y-axis respectively.\n\u25cf Relative: The shockline follows the screen movement. By default, it will stay at the position it was triggered at.\nChromatic\nChromatically splits the colors.\n\u25cf TargetX/TargetY: How far the colors will split on the X-axis and Y-axis respectively. You have to enable the \"Use X\" and/or \"Use Y\" option for the distance to apply.\n\u25cf FadeTime: Time for the effect to apply fully. Chromatic Glitch\nChromatically splits the colors while adding a wave effect and glitch lines.\n\u25cf Speed: Speed at which the wave effect happens.\n\u25cf Strength: How big the waves are.\n\u25cf LineThickness: Thickness of the glitch lines.\n\u25cf LineStrength: Opacity of the glitch lines.\n\u25cf RGBOff: How far the RGB values are offset.\n\u25cf Duration: Time for the effect to apply fully.\n\u25cf SegmentH: Height of a segment. A segment consists of one wave effect\nand a glitch line.\n\u25cf RelativePos: With this option enabled, the shape of the effect will stay in\nplace no matter the Y height. With it off, the effect will always stay in the center of the screen.\n143\n\n   Pixelate\nPixelates the screen.\n\u25cf TargetX/TargetY: How much the screen will pixelate on the X-axis and Y-axis respectively. You have to enable the \"Use X\" and/or \"Use Y\" option for the distance to apply.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Snap Grid: Snaps the pixels to the grid. Without this option, the pixels will\nsmear a little when the player moves.\n144\n\n Lens Circle\nCreates a lens circle.\n\u25cf Size: Size of the circle. The smaller the number, the more closed the circle is.\n\u25cf Fade: How much the circle fades out. The smaller the number, the less fade there is.\n\u25cf FadeTime: Time for the effect to apply fully. The circle will zoom in or out instead of fading in.\n\u25cf Strength: Opacity of the lens circle.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the lens circle. Negative\nnumbers offset it to the left or bottom respectively, while positive numbers\noffset it to the right or up respectively.\n\u25cf CenterID: Center of the lens circle. The Group ID can only consist of one\nobject.\n\u25cf Tint Channel: Color Channel to use for the lens circle. It will be black by\ndefault.\n\u25cf Easing: Easing options change the way the circle starts and ends its\nmovement.\nRadial Blur\nBlurs the screen radially, so drawing a circle around the center with a given radius.\n\u25cf Size: Size of the blur. In other words, how much it is blurred per distance from the center.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Intensity: Opacity of the blur.\n145\n\n \u25cf Ref Channel: Uses a Color Channel to reference the fade color. By default, the fade will go towards the Background Color.\nTable 7.3: \"Ref Channel\" behavior.\n\u25cf Screen OffX/Screen OffY: Offsets the blur center. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\n\u25cf Fade: The smaller the fade value, the more blocks will blur out. You can compare this setting to the \"Fade\" setting in the Lens Circle Trigger, where it is easier to visualize.\n\u25cf Easing: Easing options change the way the circle starts and ends its movement.\n    No Ref Channel\nRef Channel\n  The red object has blur applied. As you can see, the blur color fades towards the Background Color, which looks weird on a yellow Background.\nHere we set the yellow Color Channel as the \"Ref Channel\", which makes the blur fade towards yellow.\n       146\n\n \u25cf Target: Uses a Group ID as the center the blur from. The Group ID can only consist of one object.\n\u25cf EmptyOnly: The blur will only be drawn to pixels that are empty. Table 7.4: \"EmptyOnly\" behavior.\nMotion Blur\nBlurs objects based on the X-axis, Y-axis, or a Center Group ID.\n\u25cf TargetX/TargetY: Amount of blur that will be applied to the X-axis and Y-axis respectively.\n\u25cf Ref Channel: Uses a Color Channel to reference the fade color. By default the fade will go towards the Background Color. See table 7.3.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Fade: The smaller the fade value, the more blocks will blur out. You can\ncompare this setting to the \"Fade\" setting in the Lens Circle Trigger, where\nit is easier to visualize.\n\u25cf Follow Ease: Used for the \"TargetID\" option, which follows the object's or\nplayer's movement to reference the blur. \"Follow Ease\" eases the movement, resulting in less or more blur upon movement.\n    Without EmptyOnly\nWith EmptyOnly\n       147\n\n \u25cf Intensity: Opacity of the blur.\n\u25cf DualDir: Blurs in both directions instead of only one. By default, \"TargetX\"\nwill only blur left and \"TargetY\" will only blur down.\n\u25cf EmptyOnly: The blur will only be drawn to pixels that are empty. See table\n7.4.\n\u25cf TargetID: Uses a Group ID or the player's movement as the reference for\nthe blur. If the Group ID or player does not move, there will be no blur. On quick movements, there will be a lot of blur. If a Group ID is used, it can only consist of one object.\nBulge\nBulges the screen.\n\u25cf Bulge: How much the screen will bulge.\n\u25cf Radius: How large the bulge circle is.\n\u25cf Screen OffX/Screen OffY: Offsets the center of the bulge. Negative\nnumbers offset it to the left or bottom respectively, while positive numbers\noffset it to the right or up respectively.\n\u25cf FadeTime: Time for the effect to apply fully. The bulge will zoom in and out\ninstead of fading in.\n\u25cf Target: Uses a Group ID as the center the bulge zooms from. The Group ID\ncan only consist of one object.\nPinch\nPinches the screen. Works in the opposite way of the Bulge Trigger.\n\u25cf TargetX/TargetY: How much the screen gets pinched on the X-axis and\nY-axis respectively. The smaller the number, the smaller the pinch.\n 148\n\n \u25cf Screen OffX/Screen OffY: Offsets the pinch center. Negative numbers offset it to the left or bottom respectively, while positive numbers offset it to the right or up respectively.\n\u25cf Radius: The radius of the circle.\n\u25cf Modifier: Modifies all values. All values will be multiplied with the value you\nput here.\n\u25cf FadeTime: Time for the effect to apply fully. The pinch will zoom in and out\ninstead of fading in.\nGray Scale\nAdds a grayscale filter to the screen.\n\u25cf Target: Percentage of grayscale that is applied. For example, with 0.5 the screen will tint 50% gray.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Tint Channel: Tints the screen in a Color Channel instead of gray.\n\u25cf UseLum: Refers to luminosity, which is a different way to convert color to\ngrayscale. Luminosity forms a weighted average to account for human\nperception. The formula for luminosity is 0.21*R + 0.72*G + 0.07*B.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\nSepia\nAdds a sepia filter to the screen.\n\u25cf Target: Percentage of sepia that is applied. For example, with 0.5 the screen will tint 50% sepia.\n\u25cf FadeTime: Time for the effect to apply fully.\n149\n\n Invert Color\nInverts the screen colors.\n\u25cf Target: Percentage of how much color inversion will be applied. For example, with 0.5 the screen will be 50% inverted.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf R/G/B: Percentage of the red, green, and blue value respectively. For\nexample, the color white has the RGB values 255, 255, 255. If you put the R slider to 0.5, it will multiply 255 with 0.5, which is 127.5. Now, the new color would be 127.5, 255, 255, which is a brighter blue color. Note that the color values are inverted due to the Trigger.\n\u25cf EditRGB: Allows editing the RGB values with the sliders above.\n\u25cf TweenRGB: If you are in the inverted color state with EditRGB values, and\nwant to change to different RGB values the switch will be instant. With this\noption enabled, they will transition smoothly to the new RGB you set.\n\u25cf ClampRGB: Limits the values to 1 so that they cannot go past that value.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\n150\n\n Table 7.5: Example of Invert Color Trigger options.\n     \"R/G/B\" with 1, 1, 1\n\"R/G/B\" with 2, 1, 1\n\"R/G/B\" with 2, 1, 1 and \"ClampRGB\"\n   Normal transition to the inverted color. Same with \"EditRGB\" enabled or disabled.\nThe transition to red will be quicker, resulting in an overall red tint. Only with \"EditRGB\" enabled.\nThe same result as using 1, 1, 1. The transition is still quicker for the red color, however the result is not tinted. \"ClampRGB\" limits the values between 0 and 1.\n      Hue\nShifts the screen hue.\n\u25cf Degrees: How many degrees the color should shift.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Easing: Easing options change the way the colors start and end their\ntransitions.\n151\n\n Edit Color\nEdits the color of the screen.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf CR/CG/CB: Stands for color red, green and blue. Tints the screen in the\ncorresponding color, with 1 being no tint. The smaller the value, the more\nof that color is used.\n\u25cf BR/BG/BB: Brightness red, green and blue. Works like the \"Brightness\"\nslider in the \"HSV\" menu when editing colors.\nSplit Screen\nSplits the screen in identical sections.\n\u25cf TargetX/TargetY: How many sections the screen gets split in the X-axis and Y-axis respectively. The number you input here gets one more added, so with \"TargetX\" at 1 you split the screen in 2 sections. You have to enable the \"Use X\" and/or \"Use Y\" option respectively to split the screen.\n\u25cf FadeTime: Time for the effect to apply fully.\n\u25cf Easing: Easing options change the way the movements start and end\ntheir transitions.\nEnter Effects\nChanges how blocks enter and/or exit the screen.\n\u25cf Target Enter Channel: Input a Enter Channel ID and assign an Enter Channel ID to objects. The Enter Effect will only affect the objects with the same Enter Channel ID. By default, all blocks will be affected.\n\u25cf Enter Only/Exit Only: The effect will only be displayed when the objects enter or exit the screen respectively.\n152\n\n Table 7.6: Enter Effects.\n     Effect\nExplanation\nExample\n The objects do not scale in and out, but they still fade in and out.\n  Objects enter the screen by moving down from the top and fading in. Objects exit the screen by moving up and fading out.\n  Objects enter the screen by moving up from the bottom and fading in. Objects exit the screen by moving down and fading out.\n  Objects enter the screen by appearing from behind the blocks and moving to the right. Objects exit the screen by moving to the left and fading out.\n  Objects enter the screen by moving in from the right and fading in. Objects exit the screen by disappearing behind the blocks and fading out.\n             153\n\n       Objects enter the screen by scaling up and fading in. Objects exit the screen by scaling down and fading out.\n  Objects enter the screen by scaling down and fading in. Objects exit the screen by scaling up and fading out.\n  Objects enter and exit the screen in a chaotic movement, fading and out respectively.\n  Objects enter the screen by the top half moving down, and the bottom half moving up. They also appear from behind the blocks and move to the right and fade in. Objects exit the screen by splitting in half, with the top moving up and the bottom moving down while moving to the left and fading out.\n  Objects enter the screen by the top half moving down and the bottom half moving up. They move in from the right and fade in. Objects exit the screen by splitting in half, with the top moving\n           154\n\n      up and the bottom moving down while disappearing behind the blocks and fading out.\n Objects enter the screen by the top half moving down and the bottom half moving up while fading in. Objects exit the screen by splitting in half, with the top moving up and the bottom moving down while fading out.\n  Objects enter the screen by the top half moving up and the bottom half moving down while fading in. Objects exit the screen by splitting in half, with the top moving down and the bottom moving up while fading out.\n  Objects do not fade in and out and also do not have an Enter Effect.\n         155\n\n Move/Rotate/Scale/Fade/Tint Enter\nLets you create custom Enter Effects, similar to the default ones above. Due to these having many of the same settings, we will be explaining them all first and only mention specific ones below. Note that one block is equal to 30 for all of these.\n\u25cf Length: Distance from the screen borders where the effect is applied.\n\u25cf Offset: Offsets the screen borders. Enter a positive value to offset it to the\nright, and a negative value to offset it to the left.\n\u25cf Enter Channel: Used similarly to Group IDs. The objects you want to have\nthe Enter Effect can be set with \"Enter Channel\" under \"Extra2\" in \"Edit\nGroup\".\n\u25cf Effect ID: Specific ID that can be referenced later, for example in Stop\nEnter Effect Triggers.\n\u25cf Enter Only/Exit Only: The effect is only applied on screen entrance or exit respectively.\n\u25cf Easing: Modifies how the objects start and end their transitions.\n    156\n\n For Move Enter, we have these unique settings:\n\u25cf MoveDist: Distance the objects move.\n\u25cf MoveAngle: Angle at which the objects will move. 0 is up, 90 right, 180\ndown, 270 left, and so on.\n\u25cf XY Mode: You can enter X and Y values like in the normal Move Trigger\ninstead of choosing a direction.\nFor Rotate Enter, we have these unique settings:\n\u25cf Rotation: The degrees you want the objects to rotate. Enter a positive value to rotate clockwise, and enter a negative value to rotate counter-clockwise.\nFor Scale Enter, we have these unique settings:\n\u25cf ScaleX/ScaleY: The size the objects scale in the X-axis and Y-axis respectively.\nFor Fade Enter, we have these unique settings:\n\u25cf Opacity: The opacity the objects will fade to when they are near the screen edge.\n 157\n\n For Tint Enter, we have these unique settings:\n\u25cf Color Channel: The color you want to tint the objects in.\n\u25cf %: The percentage you want to tint the color. For example, if you want to\ntint a black object white and set \"%\" to 0.5, the object will turn gray.\n\u25cf Main Only and Secondary Only: Some objects have a Base Color and\nDetail Color, which is seen in the \"Edit Object\" menu. These options only\nchange the these colors respectively.\n\u25cf HSV: Instead of tinting the color of a different Color Channel, you can\nsimply tint the same Color Channel and change the \"HSV\" values of it.\nStop Enter\nStops an Enter Effect. You can stop it by referencing its Enter Channel or its Effect ID.\n158\n\n 8. Custom Objects\nAs mentioned earlier, you can create your own sets of Custom Objects, which can be used across different levels. Custom Objects are in the last tab in the \"Build\" category.\nFrom left to right, the buttons indicate moving a Custom Object design up and down a position, adding a new Custom Object, and deleting an existing one. To add a Custom Object, first create the design. For example:\n    159\n\n Now select all of the objects in your design, and click the \"+\" button to add them as a Custom Object. Your design should appear as a new button in the Custom Objects tab, as seen in figure 8.3.\nYou can now select the Custom Object and place it in the editor whenever you wish. Custom Objects can consist of up to 1000 objects, and you can add up to 200 unique Custom Objects. Select a Custom Object and click the \"\u2013\" button to delete it, as shown in figure 8.4. Note that this action cannot be undone.\n    160\n\n 9. Channel System\nWorking with Rotate Gameplay Triggers can be tricky, especially when you change directions often and want to use many Triggers. See the example in figure 9.1. Normally Triggers are read from left to right, but this can lead to issues in the example. How should the editor know when these Triggers should be activated? This is handled by using the Channel System. Here, we cover a short example on how to use Channels well.\nIn this example, we want the player to go in a circle across all sides and pulse the background in a different color when jumping over a Spike. When playtesting in the editor, you will find that the player does not change rotation when reaching the top left Rotate Gameplay Trigger. This is because the Trigger gets activated first and is immediately overridden by the Trigger in the bottom left. To fix this, we have to change the order in which the Triggers are read.\n    161\n\n Rotate Gameplay Triggers have a \"Change Channel\" option, which puts the player on a different Channel when that Trigger is activated. By default, the player, all Triggers, and all Gameplay Objects are on Channel 0, resulting in everything getting activated from left to right.\nIn our example, we want to activate the Rotate Gameplay Triggers in the following order: bottom right, top right, top left, and bottom left. To achieve this, we change the Channel of the player after reaching the bottom right Trigger, as seen in figure 9.2.\nAfter reaching the Trigger, the player is on Channel 1 instead of 0. While on the right side of the square, we want to activate the right Pulse Trigger and the top right Rotate Gameplay Trigger. To achieve this, we have to put them on the same Channel as the player.\nTo put objects on a different Channel, first select them and click \"Edit Group\". In the bottom right of the menu, you will find a textbox titled \"CH\". This refers to the Channel of the objects. As seen in figure 9.3, you can input \"1\" in \"CH\" to put them on the same Channel as the player.\n    162\n\n   We will now activate the first and second Pulse and Rotate Gameplay Triggers in the correct order. When reaching the second Rotate Gameplay Trigger, we want to put the player on a different Channel again. If we do not do this, the top left Rotate Gameplay Trigger is activated at the same time as the second one, resulting in unwanted behavior. Similar to figure 9.2, we now change the Channel of the player to 2 by using the \"Change Channel\" option in the Rotate Gameplay Trigger.\n  163\n\n We repeat this for all Triggers. We change the Triggers that we want to activate to the Channel the player is currently on, and we change the Channel of the player whenever we reach a new Rotate Gameplay Trigger. See figure 9.5 for the final settings for our example.\nChannels should be used for Speed Changers as well, to ensure that the sync does not behave weirdly when having rotated or reversed gameplay. When playtesting the music in the editor, you will see that the line now changes directions accordingly and at the right position. If you have several Triggers on one Channel, they will be read in the direction of the arrow. You can playtest the music and see the direction in which the line goes to see the order in which the Triggers or Gameplay Objects will be activated.\n   164\n\n 10. Keyframe System\nThe Keyframe System allows you to create precise animations using movement, rotation, and scaling with a single Trigger. This is done with several keyframes, which can be freely modified in turn.\nWe will be going through all the options by creating an example. Assume we want to animate a cube moving in and jumping over Spikes. We will first create the cube we plan to animate and assign a Group ID to it, as well as the Spikes the cube will interact with, as seen in figure 10.2.\n    165\n\n The cube has Group ID 1 assigned to it. We will now place a Keyframe Trigger to understand how basic movement using keyframes works. Place one of these Triggers, click \"Copy+Paste\" to duplicate it, and move the copied Trigger some blocks to the right. The Triggers will draw a green line between them, as seen in figure 10.3. The line indicates that they are connected and are part of the same animation.\nThe Keyframe Triggers by themselves are not enough to create the animation. You need to configure a Keyframe Animation Trigger as well. Assign a Group ID to your first Keyframe Trigger, and input your Group IDs in the Keyframe Animation Trigger, as seen in figure 10.4. The Animation Group ID refers to the Group ID your first Keyframe Trigger has. The Target ID refers to the objects that get animated. The Parent ID is optional and is used to reference the center of the target objects for rotation and scaling. By default, all objects will use their own center. The second page of the Keyframe Animation Trigger modifies several animation options. We will be using some of them later. For more information regarding the settings, check its subchapter in the Triggers chapter.\n    166\n\n   When playtesting, the cube should now move the same distance to the right as the distance between the two Keyframe Triggers. We can now add more Keyframe Triggers and change their positions, rotations, and sizes, and the cube will follow all of them. However, creating precise animations with only the Keyframe Triggers is difficult, as we do not have any reference points. To change this, we will use the \"Preview Art\" option in the Keyframe Triggers.\nFor the Keyframe Triggers to preview our cube, we have to assign a Parent Group ID to the cube. This Parent Group ID works as a reference point for the Keyframe Triggers. All movement, rotation, and scaling will use the Parent Group ID as the center. Our cube should scale and rotate around its own center, so we will add a new object to our cube, as seen in figure 10.5. This object also follows the animation. To mark this object as the Group Parent ID, we will click the \"P\" button in the Edit Group menu. Doing so turns the Group ID pink, as seen in figure 10.6.\n 167\n\n     In the first Keyframe Trigger, we can input the Group ID of our cube now. By clicking the Preview Art option, the keyframe will be replaced with our cube objects, as seen in figure 10.7. Note that the Preview Art option does not work without the objects having a Group Parent ID, as the Keyframe Triggers have no center to draw from without it. You can enable the Preview Art option in the other Keyframe Triggers and hide the Group Parent ID object now.\n168\n\n With our keyframes looking like our art now, we have a lot more control over the movements. However, with all the frames showing at full opacity and layering between them inconsistently, doing exact animations is difficult. You can enable the \"Ref Only\" option in Keyframe Triggers for lower opacity, as seen in figure 10.7. The \"Auto Layer\" option fixes our layering issues. This option draws the most recent keyframe at the highest layer, so you always have it completely visible.\nYou can now create your animation by setting more keyframes at important locations. In our example, this is the beginning of the animation, the position where the cube begins to jump, the movement and rotation during the jump, and the position the cube lands at. You can modify each keyframe position, rotation, and size, as seen in figure 10.8.\n  169\n\n   If you look closely, the jump is not smooth at all. It consists of only straight lines between frames with no curvature. To fix this, enable the \"Curve\" option for the relevant Keyframe Triggers, which results in a much smoother animation, as seen in figure 10.9.\n  170\n\n When playtesting, you will notice that the animation still looks weird. The movement speed between the frames is inconsistent, resulting in the jump being slower than the sliding. The is is because of the \"Time\" option, which checks for the \"Duration\" value. Right now, the \"Duration\" value is 0.5, which means the animation from one keyframe to the next one takes 0.5 seconds. However, we want the duration to change based on the distance of the Triggers. Triggers that are further apart take longer than ones closer to each other.\nWe can achieve this by enabling the \"Dist\" option. The \"Even\" option makes the time between keyframes even, disregarding the distance. Note that the first Keyframe Trigger should always use the \"Time\" option, as the other keyframes marked as \"Ref Only\" will not be considered for the other options otherwise, resulting in rash movements. The Keyframe Triggers should look like this now.\n  171\n\n Depending on how many keyframes you placed, the movement may still look too slow. You can change this by modifying the time variable in the Keyframe Animation Trigger. On the second page, you will find the \"Time Mod\" option, which speeds up or slows down your animation depending on what value you put. A value smaller than 1 will speed the animation up, while a value greater than 1 will slow the animation down. Play around with the \"Time\", \"Even\", \"Dist\", \"Duration\", and modifier settings to find a good balance to create smooth movements.\nWith this, our first animation is complete. Assume that we want to create a second cube jumping over the Spikes from the other side using the same keyframe animation. We first create our second cube and give it a new Group ID. We now want to make a copy of our keyframes. However, using \"Copy+Paste\" does not work, as the keyframes will be connected. We can instead use the \"Dup Anim\" button within the keyframes. By inputting our new Group ID, we are now referencing the new cube. Assign a new Group ID to the first Keyframe Trigger and place a new Keyframe Animation Trigger with all new Group IDs. The result is figure 10.11.\n  172\n\n When playtesting, you will see that the second cube will not jump over the Spikes. Instead, it will follow the exact movement of the first cube. By clicking the \"Reverse Order\" button, the animation is done in reverse like we want. Movement to the right will go to the left instead.\nIf we want to change anything about our cube art, for example adding more details or changing the color, we will see that the Keyframe Trigger art is not updated accordingly. To fix this, click the \"Update Art\" button in any Keyframe Trigger.\nDue to how we set up the keyframes, our rotations will always be in the correct direction. However, you might want to rotate some frames clockwise and others counter-clockwise. You can achieve this by clicking \"CW\" for clockwise or \"CCW\" for counter-clockwise. By default, rotations happen in the closer direction. The \"x360\" option adds an entire rotation before reaching the keyframe.\nWe want to finalize our animation by adding a screen pulse when the cubes land. To do this, we can use the \"Spawn ID\" feature in the Keyframe Triggers. Configure a Pulse Trigger like normal and assign it a Group ID. Input this Group ID into a Keyframe Trigger. The pulse will spawn when the animation reaches that keyframe. Using the \"SpawnDelay\" option can delay the Trigger by a set duration. Alternatively, you can use the \"Prox\" option to spawn the pulse when the cube is close to the keyframe.\n 173\n\n And with that, our animation is finished. Figure 10.12 shows the final setup. You can move the Keyframe Triggers out of the screen now without the animation changing. For an easy way to select all keyframes in an animation, click one of them and click the \"Select All\" button.\n  174\n\n 11. Auto-Build System\nThe Auto-Build System allows you to create designs from a premade template. This makes it particularly useful to speed up block design creation. However, the system can also be used across levels, making it work well for 3D lines, layouts, and more too. To get started, place one of the last 3 objects in the Blocks tab (first tab under \"Build\") in the editor. These are called Smart-Blocks. Afterwards, click \"Edit Special\" to open the following menu:\nWe will be going through all the settings by creating several examples. First, we will use premade templates to achieve some basic designs. Then, we will set up our own templates for more complex designs and use the system to generate random Spike designs.\nWe start by creating a new template. To do this, go to the \"Browser\" tab. It should look like figure 11.2 when you first open it. Click the \"New\" button and enter a name to create a new template.\n  175\n\n     You will see information about our template below the name. \"Defined\" refers to how many different templates we have created. \"Variations\" refers to how many variations our designs have. The \"46\" refers to the default template blocks, which we will use in our first example to create a block design.\n176\n\n Click the \"Browse\" button to see all premade Smart-Block templates, as seen in figure 11.4. By clicking on a template, you can add it to the editor. The amount of templates you add does not matter, but by creating all 46 premade ones, you ensure your template is functional for simple structures. For our example, we will design all templates.\n    177\n\n We can now start creating our design on the template. Blocks with dashed outlines function as references. You fill out the solid outline blocks as if the reference blocks were in your design. See the figure below.\nYou can build your design across different layers. Additionally, you can add details up to 1 block space outside of the Smart-Block. After finishing every design, we have the result in figure 11.7.\n    178\n\n Now that we have finished our design, we want to update our template to include our decoration. Select everything you have created, as well as the Smart-Blocks. Go into the \"Browser\" tab again and ensure you use your template. After doing so, click the blue \"Template\" button on the initial page.\nIf you return to the screen from which we copied the premade templates, our new designs can now be seen, as shown below.\n    179\n\n With that, we have created our first template. We now want to test it by generating the design for custom structures. To do so, build structures using the Smart-Blocks, as seen in figure 11.10. After doing so, select all the Smart-Blocks, open the system's menu from \"Edit Special\", and click the \"Create\" button. This gives the result in figure 11.11.\nWe can automatically fill any Smart-Block structures with our template design. It can also be used across levels if we wish to reuse it at any point.\n    180\n\n Even though the premade templates worked well for our structures, we are still limited in what we can create. Because of this, we now want to add to our template and expand it with new structures and slopes. Click the \"Create All\" button to paste all of your templates so far. Click \"Paste Template\" to see the first structure we want to expand. As you can see, the template does not create the designs correctly, as seen in figure 11.12. We now recreate our design in the new structures to be correct, as seen in figure 11.13.\n    181\n\n We created these structures like new templates. We now also want to add slopes to our templates. To do this, we can make our own templates to decorate. To create your own templates, use the Smart-Blocks to create the structures you need. With more variations, your result gets more precise.\nYou would usually have to create versions for all rotations of the slopes. However, by enabling \"Allow Rotation\", \"Allow Flip X\", and \"Allow Flip Y\" in the main menu, seen below, one version is enough.\n    182\n\n We can now fill the slopes with our design. Like with the premade templates, we can place details up to 1 block space outside the Smart-Blocks.\nLet us create a new template now with all the new templates added. Like before, go to the \"Browser\" tab and create a new template. Use it, select all designs along with their Smart-Blocks, and click \"Template\". The Auto-Build System will deconstruct our slopes into singular blocks, as shown in figure 10.17. With that, we have finished our second template.\n    183\n\n Templates can have several variations, indicated by a small number on the templates, as seen in figure 11.18. Variations can have different odds of being used, which can create more details. In our third and final example, we want to create a template that generates unique configurations of Spikes on the ground.\nWe first decide what Spike variations we want to use. The best way to achieve this is to create all the variations we want in the editor as follows:\n    184\n\n As you can see, the Spikes always start and end with the same Spikes. We also want our Spikes to be variable in length and only have the corner Spikes at the start and end. To achieve this, we will be using reference blocks. Reference blocks indicate that a variation gets used if another Smart-Block is at the location of the reference block. We can use this to set up our templates, as shown in figure 11.21. The left corner Spike requires another Spike to the right of it, while the right corner Spike requires another Spike to the left of it. (You mark a Smart-Block as a reference by clicking the \"Reference Only\" option, as shown in figure 11.20.)\n    185\n\n For our other Spikes, we require another Spike to the left and the right of each. We can use the reference blocks to indicate this by placing one to the left and one to the right of our Smart-Block. Using the same templates six times for all our Spike variations leaves us with the result shown in figure 11.22.\nWe now create a new template, and update it with the templates we created. The template browser should show our corner Spikes and one of the other six Spikes with a small \"6\" on it.\n    186\n\n You can click on the Spike template to view all variations, as seen in figure 11.24. Right now, none of the variations have the odds to appear. To change this, click all variations and hit the \"Add\" button.\n    187\n\n Doing so has made the odds of each appear below the respective variation. Currently, every variation has a one in six chance. For our example, we want the fifth variation to be rarer than the others and the third to be more likely. To do this, we first deselect variation five and click \"Add\" to increase their odds. After that, we deselect all besides variation three and click \"Add\". This process changes the odds of the selected variations appropriately.\nNow, all the odds should have changed accordingly. We can now place Smart-Blocks and click \"Create\" to generate unique variations of ground Spikes, with each Spike having different odds, the length being variable, and the corner Spikes always at the correct position. Figure 11.26 shows some examples.\n  188\n\n 12. Pause Menu\nThere are various options and buttons that can customize your experience in the editor. These are mostly found in the Pause Menu of the editor, which is found by clicking the button in the top right. It looks like this:\nHere, there are a lot of options (seen as checkboxes) and buttons that may or may not be self-explanatory. In this chapter, a small description of each is provided in case you need help. For clarity, the options are shown inside a blue box, while the buttons are shown inside the red boxes.\nOptions\nThese options, shown in blue in figure 11.1, customize the editor view in specific ways. In other words, they have no actual effect on the level itself, but rather the experience of making it. Here is a short description of each one.\n  189\n\n \u25cf DebugDraw: Draws hitboxes for objects that interact with the player. The hitboxes of blocks are drawn in white, while the hitboxes of obstacles, such as saws and Spikes, are drawn in red. In other words, collision with a red line leads to death.\n\u25cf Hide Invisible: Hides objects that are set to be invisible in the editor. (This only affects objects that are set to \"Hide\" inside Extras of Edit Group.)\n\u25cf Preview Mode: Shows the level close to how it looks in-game when played. This means that you can see how the colors of objects, the Background, Ground, and so on look together while in the editor.\n\u25cf Preview Animations: Shows Animated Objects how they look in-game.\n\u25cf Preview Particles: Shows particles how they look in-game.\n\u25cf Preview Shaders: Shows shader effects how they look in-game.\n\u25cf Show Ground: Shows the Ground. Disabling this is useful if you want to\nplace objects underneath it.\n\u25cf Show Object Info: Shows some information about selected objects. This is\nseen as text in the top left of the editor. The different abbreviations are as follows: \"C\" is Color Channel, \"C1\" is Base Color, \"C2\" is Detail Color, \"G\" is grid position, and \"EL\" is editor layer.\n\u25cf Show Grid: Shows the editor grid.\n\u25cf Select Filter: Lets you use the Group ID and Color Channel filters in the\n\"Delete\" tab to select objects (while in the \"Edit\" tab).\n\u25cf Ignore Damage: Lets you playtest without dying, regardless of the\nobstacles you touch.\n   190\n\n Buttons\nThe buttons seen in red in figure 12.1 perform various actions that are helpful when creating. First are the two buttons in the center at the bottom, which toggle music guidelines and open this guide, respectively.\n\u25cf ReGroup: If you have selected objects with various Group IDs, you can use this to change all the corresponding Group IDs to use the lowest ones not yet used.\n\u25cf Create Loop: After selecting a Trigger setup, you can click this to create a Spawn Loop for you.\n\u25cf Keys: Shows various key bindings that are useful while in the editor.\n\u25cf AlignX/AlignY: If you have various objects selected, they are all aligned\nevenly on the X-axis or Y-axis respectively.\n\u25cf Build Helper: If you select various objects in your level, including Triggers,\nand click this, any already used Group IDs and their references inside Triggers will be distributed to new unused Group IDs. Useful for collaborations where some people may have used overlapping Group IDs.\n\u25cf Copy+Color: Copies the selected objects including all of their Color Channels' starting settings. Useful for copying and pasting across levels. By default, copying and pasting across levels does not include the Color Channel information.\n\u25cf Select All: Selects every object in the level.\n\u25cf Paste+Color: Pastes the objects and Color Channel information after using\n\"Copy+Color\".\n\u25cf Select All Left/Right: Selects all objects to the left or right, respectively, of\nwhere you are in the editor.\n\u25cf Create Extras: This adds outline objects for certain types of blocks, such as\nthe ones that look like rocks.\n\u25cf Unlock Layers: Unlocks all layers that are locked at once.\n 191\n\n \u25cf New GroupX/Y: Assigns new Group IDs to the selected objects, going from left to right or bottom to top respectively.\n\u25cf Reset Unused: Resets all Color Channels that are not used by any objects.\n\u25cf Uncheck Portals: Unchecks all checked Portals. Checked Portals show the\nroof and ground boundaries.\nNot mentioned in this list is the gear in the top right. This is used to customize the editor in various ways. You can, for example, increase the amount of rows or buttons per row for \"Build\" and \"Edit\". This is helpful when working with tabs that have many buttons. Additionally, there are many other options that toggle different things in the editor. If you are unsure what an option does, click the information box (seen as an \"i\" button).\n192\n\n 13. Sharing Your Level\nVerifying\nOnce you are finished with your level, you have to verify it before you can publish it. This means that you have to beat your level by clicking \"Save and Play\" in the Pause Menu. You can also click the play button from the Level Menu (figure 13.1). It must be an attempt from the start of the level, so a Start Position cannot be used. If your level has any User Coins, these must also be collected. Note that you can collect the User Coins on different attempts, as long as all lead to you beating the level. For example, if your level has 2 User Coins, you can collect the first in one attempt, and then the second in another attempt.\nLevel Menu\nAfter successfully verifying your level (and its potential User Coins), head out of the level and go to the Level Menu, seen in figure 13.1. As you can see, it says that the status is \"Verified\" on the bottom right. This means that you are ready to upload your level.\n      193\n\n The other text gives various other details about the level. To the left is the level's length if the Game Type is Classic: 0-10 seconds is \"Tiny\", 10-30 seconds is \"Short\", 30-60 seconds is \"Medium\", 60-120 seconds is \"Long\", and 120+ seconds is \"XL\" (for Extra Long). If the level is Platformer, this will simply say \"Plat.\" since these levels' length cannot be determined easily. In the middle is the starting song, and below that is the version and ID (once shared).\nOn the right are buttons for various actions. First is deleting the local editor level. This action cannot be undone, so only use this if you are certain. Below that is a button that opens this guide. Third is a button to make another editor copy of the level, and finally is a button to move the level to the top of your editor levels (indicated by the arrow). Clicking this will put the level at the top in the list seen by clicking the back arrow in the top left. To organize this list better, you can put your level into a specific folder, indicated by the folder with a \"0\" on the left side of the menu. The information button in the bottom left shows various statistics about your level.\nBefore sharing your level, putting in a title and description at the top is most important. The title of a level cannot be updated once it is shared. You would have to reupload a new copy with a new name. However, the description can easily be changed. Note that writing one is optional.\nUploading\nOnce you have set a title you are satisfied with, click the third big button. This opens the level sharing interface, which is shown below. Here, the name and description is shown at the top. Below that, you can select how many Stars or Moons you want to request. To decide this accurately, we recommend playing levels on the Featured tab and getting an idea of the difficulty of rated levels. Note that you can skip choosing one without any problems later.\n194\n\n   In the top right, indicated by the gear, are some extra settings. Clicking this opens the menu seen in figure 13.3. Here, you can choose whether you want to allow users to copy your level into their editor or not. You can also check \"Requires Password\" to require users to input a password from 4 to 6 numbers long to copy it.\nThere is also an option for \"Unlisted\", which means that your level does not show on any level lists or general search results. This means that it will not show on your profile either. For users to find it, they must search the exact ID. On top of being unlisted, you can also enable \"Friends Only\", which means a user must be your friend and search the exact ID to find it. You can, for example, enable these options alongside \"Allow Copy\" to share a level to a friend you want to collaborate with.\n195\n\n   Once you are happy with all these settings, go ahead and click \"Share Level\". This will upload your level to the servers if there are no issues. On the Level Menu, the ID field will now be updated with your level's ID. This can be shared with others to help them find your level. To see how your level looks on the servers, head back to your list of editor levels seen below.\n  196\n\n Here, click the button in the bottom left (marked in red) to see your published levels. Your recently published level shows at the top. Clicking it takes you to its level page seen below. Here you can play it, see comments and the Level Leaderboards, and more.\nThe two buttons on the left, marked in pink, may be useful in some cases. First is a button that removes your level from the server entirely. The button in the top right of this page only deletes it from your saved levels, but it can still be found by others. Secondly is another copy button, which is always enabled for the creator of a level (regardless of the copying options set earlier). This is useful if you no longer have a local editor copy of your level.\n  197\n\n Updating Levels\nThe easiest way to update an uploaded level is to make edits on the local editor copy. This will change its status from \"Uploaded\" to \"Unverified\", and the version number also says 2 instead of 1. Once done with your edits, go through the process of verifying again, and then share it as you did before. This will automatically update the online level.\nIf you no longer have a local editor copy of the level, copy the online level from the button seen in figure 13.5. This makes a copy with an additional number at the end of the name. If you want to use this copy to update the level, you have to edit the title of this copy to be the exact same as the online level. After that, do your edits and share it as before. This also links the update to the shared level.\nUpdating Descriptions\nAs for updating only the description and not the level content, it is also best to have the exact copy that was uploaded. Once uploaded, the copy will show a new refresh button on the left, marked in red below. This is solely used to update the description. Simply type in your new description and click it.\n  198\n\n If you do not have the exact copy, you have to do the same as when you want to update a level by copying the published level. Unfortunately, the refresh description button will not show up in this case. You will have to verify the level again, type in your new description, and go through the sharing process. Make sure the level name is the exact same as the online level.\nRating\nAfter you have published a level publicly, the displayed Difficulty of the level may update. This is based on community ratings through the bottom right button in figure 13.5. Using this, players can get an idea of the Difficulty of your level. However, this does not mean the level gives any rewards when it is beaten.\nYour level gives rewards if RobTop, the developer of the game, plays it and gives it a certain amount of Stars or Moons. The amount ranges from 1 to 10. Stars are rewarded for Classic levels, while Moons are rewarded for Platformer levels. These show below the Difficulty face on the level page or level lists. Once rated, the Difficulty is locked and community votes are no longer available. These are the Star and Moon values for each Difficulty:\n\u25cf Auto: 1 Star or Moon\n\u25cf Easy: 2 Stars or Moons\n\u25cf Normal: 3 Stars or Moons\n\u25cf Hard: 4 to 5 Stars or Moons\n\u25cf Harder: 6 to 7 Stars or Moons\n\u25cf Insane: 8 to 9 Stars or Moons\n\u25cf Demon: 10 Stars or Moons\n199\n\n Within Demon levels, there is an additional separation into Easy, Medium, Hard, Insane, and Extreme Demons in order of increasing difficulty. This is solely based on community votes on levels already rated Demon by RobTop. Getting a higher Demon rating does not change the reward, only the Difficulty Face shown on the level.\nIf a player beats a Rated level, the amount of Stars or Moons are added to their profile statistics. If the level has User Coins, a rating may also involve verifying these so that they show on a user's profile when collected. This is the case if they are done properly as explained here.\nThere are no specific guidelines to ensure your level gets a rating. It is simply about whether RobTop likes it or not. However, some general tips are:\n\u25cf At least 30 seconds in length\n\u25cf Overall clear gameplay\n\u25cf Decent visuals\n\u25cf Optimized performance\nAdditionally, how much RobTop likes it results in various types of ratings. This is indicated by an additional effect around the Difficulty Face, which is seen below. From left to right, we have Rated, Featured, Epic, Legendary, and Mythic. Each gives 1 more Creator Point than the last, which is a statistic shown on profiles and the Creators Leaderboard to highlight creators.\n   200\n\n One way to increase the chances of your level being rated is by requesting it to a Moderator. Moderators are players that can suggest high-quality levels to RobTop for a rating. They are indicated by a special \"M\" badge on their in-game profile.\nFor more information about the Rating System:\nhttps://www.boomlings.com/GDRating\nFor more information about the Leaderboards:\nhttps://www.boomlings.com/GDLeaderboards\n14. Afterword\nSuggestions\nThis document took a long time to write for us (Viprin and AutoNick). We hope that there is a lot of useful information here to help you create, whether you are new or experienced. However, it is by no means perfect. If you have suggestions for additions or changes, feel free to contact us through social media:\n\u25cf Viprin: Discord, Twitter, and YouTube.\n\u25cf AutoNick: Discord, Twitter, and YouTube.\nSpecial Thanks\nFirst, special thanks to Erdyuri and Spu7Nix for creating the cover. Of course, we also have to give a special thanks to RobTop for creating this amazing editor in the first place. There are extremely few games that can compete in terms of complexity and possibilities. He also provided explanations and support for many parts of this document. Finally, special thanks to you for reading this document. Good luck creating in Geometry Dash!\n           201\n"},{"assistant_initiates":false,"asst_text":"# Descobrindo os Limites Humanos: Relatos Inacredit\u00e1veis de Capacidades e Curas\n\n## Introdu\u00e7\u00e3o\n\nEm um mundo onde a ci\u00eancia avan\u00e7a a passos largos, ainda nos deparamos com hist\u00f3rias que desafiam nosso entendimento sobre o corpo e a mente humana. De habilidades sensoriais extraordin\u00e1rias a recupera\u00e7\u00f5es m\u00e9dicas inesperadas, estes dez casos nos levam a questionar o que realmente sabemos sobre os limites humanos. Estas hist\u00f3rias n\u00e3o apenas nos fascinam, mas tamb\u00e9m inspiram cientistas e m\u00e9dicos a explorar novas \u00e1reas de pesquisa, buscando compreender esses fen\u00f4menos e aplic\u00e1-los em benef\u00edcio da humanidade. Prepare-se para mergulhar no incr\u00edvel mundo das capacidades humanas extremas, curas milagrosas e fen\u00f4menos que ainda buscam uma explica\u00e7\u00e3o cient\u00edfica.","behavior":"degenerate_repetition","conversation_hash":"150b2bf13bf75f64c42b99408aeab566","conversation_redacted":false,"conversation_toxic":false,"country":"Brazil","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Portuguese","model":"gpt-4-0125-preview","n_chars":3531,"n_turns_in_conversation":5,"n_words":545,"source_row_offset":56572,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:21:29 GMT","turn_id":"1a7c23b30a356ef6400d5dac","turn_index":0,"user_text":"criar titulo e introdu\u00e7\u00e3o relacionado a esses 10 t\u00f3picos abaixo\n\n## 1. O Homem que Sentia o Magnetismo Terrestre\n\nUm aventureiro percebe que pode sentir o campo magn\u00e9tico da Terra, orientando-se em florestas densas e desertos sem b\u00fassola. Sua habilidade intrigou cientistas, que estudam seu caso como um potencial passo evolutivo humano.\n\n## 2. A Incr\u00edvel Recupera\u00e7\u00e3o de um Coma Profundo\n\nDepois de meses em coma sem esperan\u00e7a de recupera\u00e7\u00e3o, uma mulher acorda subitamente, falando uma l\u00edngua estrangeira fluentemente\u2014a qual tinha apenas um conhecimento b\u00e1sico anteriormente\u2014e com uma capacidade aprimorada para tocar piano.\n\n## 3. O Jovem com Vis\u00e3o Noturna\n\nNa China, um menino surpreende seus m\u00e9dicos ao demonstrar uma capacidade sem precedentes de ver no escuro. Este \u201csuperpoder\u201d, resultado de uma muta\u00e7\u00e3o gen\u00e9tica, abre portas para entendermos melhor a vis\u00e3o humana.\n\n## 4. Vencendo o C\u00e2ncer com a Mente\n\nUma mulher diagnosticada com um tipo raro e agressivo de c\u00e2ncer decide utilizar a medita\u00e7\u00e3o e visualiza\u00e7\u00e3o como armas principais em sua batalha. Contra todas as probabilidades, seu c\u00e2ncer entra em remiss\u00e3o completa.\n\n## 5. O Atleta de 100 Anos\n\nNa \u00cdndia, um centen\u00e1rio que come\u00e7ou a correr maratonas aos 89 anos, prova que a idade \u00e9 apenas um n\u00famero. Sua hist\u00f3ria inspira pesquisas sobre os limites do corpo humano e a import\u00e2ncia do exerc\u00edcio em todas as idades.\n\n## 6. O Milagre do Gelo\n\nUm homem consegue sobreviver por quase duas horas preso em uma avalanche, mantendo uma temperatura corporal est\u00e1vel em circunst\u00e2ncias que normalmente levariam \u00e0 hipotermia fatal, gra\u00e7as a t\u00e9cnicas de medita\u00e7\u00e3o e controle da respira\u00e7\u00e3o.\n\n## 7. Peso Perdido, Novo Idioma Adquirido\n\nAp\u00f3s perder mais de 70 quilos, um homem relata mudan\u00e7as n\u00e3o apenas f\u00edsicas mas tamb\u00e9m cognitivas, incluindo a aquisi\u00e7\u00e3o s\u00fabita de uma predisposi\u00e7\u00e3o para aprender novos idiomas com facilidade, levantando quest\u00f5es sobre a liga\u00e7\u00e3o entre a sa\u00fade f\u00edsica e a capacidade cerebral.\n\n## 8. S\u00edndrome de Savant Adquirida\n\nAp\u00f3s um acidente de carro, um homem desenvolve a extraordin\u00e1ria habilidade de desenhar paisagens detalhadas de mem\u00f3ria, apesar de nunca ter recebido treinamento formal em arte\u2014um exemplo fascinante de s\u00edndrome de savant adquirida.\n\n## 9. A Curandeira que Enxerga com as M\u00e3os\n\nNa R\u00fassia, uma mulher alega poder \u201cver\u201d doen\u00e7as dentro do corpo humano usando apenas o toque das m\u00e3os. Embora c\u00e9tica, a comunidade m\u00e9dica n\u00e3o pode negar os resultados obtidos em casos sem esperan\u00e7a.\n\n## 10. A P\u00edlula de Fecal Como Tratamento\n\nUm caso extremo de desordem intestinal foi completamente revertido gra\u00e7as a um transplante fecal, um procedimento inovador que envolve a transfer\u00eancia de flora intestinal saud\u00e1vel de um doador para o paciente, demonstrando o imenso potencial do microbioma humano."},{"assistant_initiates":false,"asst_text":"In a world where science progresses rapidly, we still encounter stories that challenge our understanding of the human body and mind. From extraordinary sensory abilities to unexpected medical recoveries, these ten cases lead us to question what we truly know about human limits. These stories not only fascinate us but also inspire scientists and doctors to explore new areas of research in an effort to comprehend these phenomena and apply them for the benefit of humanity. Get ready to dive into the incredible world of extreme human capabilities, miraculous cures, and phenomena that still seek a scientific explanation.","behavior":"degenerate_repetition","conversation_hash":"150b2bf13bf75f64c42b99408aeab566","conversation_redacted":false,"conversation_toxic":false,"country":"Brazil","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Portuguese","model":"gpt-4-0125-preview","n_chars":1307,"n_turns_in_conversation":5,"n_words":198,"source_row_offset":56573,"source_shard":"turns-00018.parquet","timestamp":"Tue, 19 Mar 2024 23:21:29 GMT","turn_id":"f967f8dd771eaf439f77428f","turn_index":1,"user_text":"CONVERTE PRA INGLES \nEm um mundo onde a ci\u00eancia avan\u00e7a a passos largos, ainda nos deparamos com hist\u00f3rias que desafiam nosso entendimento sobre o corpo e a mente humana. De habilidades sensoriais extraordin\u00e1rias a recupera\u00e7\u00f5es m\u00e9dicas inesperadas, estes dez casos nos levam a questionar o que realmente sabemos sobre os limites humanos. Estas hist\u00f3rias n\u00e3o apenas nos fascinam, mas tamb\u00e9m inspiram cientistas e m\u00e9dicos a explorar novas \u00e1reas de pesquisa, buscando compreender esses fen\u00f4menos e aplic\u00e1-los em benef\u00edcio da humanidade. Prepare-se para mergulhar no incr\u00edvel mundo das capacidades humanas extremas, curas milagrosas e fen\u00f4menos que ainda buscam uma explica\u00e7\u00e3o cient\u00edfica."}],"shard":{"index":18,"name":"turns-00018.parquet","rows":78782}}
