{"id":28344409,"url":"https://github.com/alex2276564/smartspawnpoint","last_synced_at":"2025-08-16T16:09:38.588Z","repository":{"id":294039614,"uuid":"985807862","full_name":"alex2276564/SmartSpawnPoint","owner":"alex2276564","description":"A powerful Minecraft plugin that revolutionizes player respawning with region-based, world-based, and conditional spawn points. Features party system, walking spawn points for content creators, and extensive customization options.","archived":false,"fork":false,"pushed_at":"2025-08-02T13:49:09.000Z","size":250,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T15:31:20.550Z","etag":null,"topics":["bukkit","content-creator","custom-respawn","game-mechanics","java","minecraft","minecraft-plugin","paper","paper-plugin","party-system","placeholderapi","plugin","respawn","rpg","spawn-point","spigot","teleportation","worldguard","wynncraft"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alex2276564.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-18T15:13:49.000Z","updated_at":"2025-08-02T13:49:13.000Z","dependencies_parsed_at":"2025-08-02T15:14:36.738Z","dependency_job_id":"479dc98d-a63b-463d-8d8e-dbdff33bb51a","html_url":"https://github.com/alex2276564/SmartSpawnPoint","commit_stats":null,"previous_names":["alex2276564/smartspawnpoint"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/alex2276564/SmartSpawnPoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex2276564%2FSmartSpawnPoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex2276564%2FSmartSpawnPoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex2276564%2FSmartSpawnPoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex2276564%2FSmartSpawnPoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex2276564","download_url":"https://codeload.github.com/alex2276564/SmartSpawnPoint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex2276564%2FSmartSpawnPoint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270735285,"owners_count":24636334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit","content-creator","custom-respawn","game-mechanics","java","minecraft","minecraft-plugin","paper","paper-plugin","party-system","placeholderapi","plugin","respawn","rpg","spawn-point","spigot","teleportation","worldguard","wynncraft"],"created_at":"2025-05-27T10:20:38.964Z","updated_at":"2025-08-16T16:09:38.578Z","avatar_url":"https://github.com/alex2276564.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SmartSpawnPoint 🌟\n\n[![Minecraft Version](https://img.shields.io/badge/Minecraft-1.16.5+-brightgreen)](https://papermc.io/software/paper)\n[![Java Version](https://img.shields.io/badge/java-17+-orange)](https://adoptium.net/installation/linux/)\n[![GitHub Release](https://img.shields.io/github/v/release/alex2276564/SmartSpawnPoint?color=blue)](https://github.com/alex2276564/SmartSpawnPoint/releases/latest)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\n**SmartSpawnPoint** is a powerful and flexible Minecraft plugin that revolutionizes how player respawning works on your server. With region-based, world-based, and condition-based spawn points, you can create immersive experiences for your players that go far beyond the vanilla respawn mechanics.\n\n## ✨ Features\n\n* **Multiple Spawn Types:** Configure fixed, random, or weighted random spawn points\n* **Region-Based Spawns:** Set different spawn points for different WorldGuard regions\n* **World-Based Spawns:** Configure unique spawn points for each world\n* **Conditional Spawns:** Use permissions and PlaceholderAPI to determine where players respawn\n* **Safe Location Finding:** Automatically find safe locations for players to respawn\n* **Waiting Room System:** Reduce lag with asynchronous safe location searching\n* **Party System:** Allow players to form groups and respawn together\n* **Walking Spawn Points:** Special players can respawn at their death location and serve as spawn points for others\n* **Customizable Actions:** Execute commands and send messages on respawn\n* **Highly Configurable:** Extensive configuration options to suit any server's needs\n* **Auto-Update Check:** On server start, the plugin checks for updates. If a new version is available, a notification is displayed in the console\n\n## 📥 Installation\n\n1. **Download:** Download the latest version of SmartSpawnPoint from the [Releases](https://github.com/alex2276564/SmartSpawnPoint/releases) page.\n2. **Install:** Place the `.jar` file into your server's `plugins` folder.\n3. **Optional Dependencies:**\n    - [WorldGuard](https://dev.bukkit.org/projects/worldguard) - For region-based spawn points\n    - [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) - For condition-based spawn points\n4. **Restart:** Restart your server to load the plugin.\n\n## 🛠️ Configuration\n\nSmartSpawnPoint offers extensive configuration options to customize the respawn experience on your server.\n\n[Click to view the default configuration](https://github.com/alex2276564/SmartSpawnPoint/blob/master/src/main/resources/config.yml)\n\n## 📜 Commands\n\nSmartSpawnPoint supports both the full command `/smartspawnpoint` and the shorter alias `/ssp` for all commands (requires `smartspawnpoint.command` permission).\n\n- `/smartspawnpoint reload` - Reloads the plugin configuration (requires `smartspawnpoint.reload` permission)\n- `/smartspawnpoint party invite \u003cplayer\u003e` - Invites a player to your party (requires `smartspawnpoint.party.invite` permission)\n- `/smartspawnpoint party accept` - Accepts a party invitation (requires `smartspawnpoint.party.accept` permission)\n- `/smartspawnpoint party deny` - Declines a party invitation (requires `smartspawnpoint.party.deny` permission)\n- `/smartspawnpoint party leave` - Leaves your current party (requires `smartspawnpoint.party.leave` permission)\n- `/smartspawnpoint party list` - Lists all members in your party (requires `smartspawnpoint.party.list` permission)\n- `/smartspawnpoint party remove \u003cplayer\u003e` - Removes a player from your party (requires `smartspawnpoint.party.remove` permission)\n- `/smartspawnpoint party setleader \u003cplayer\u003e` - Sets a new party leader (requires `smartspawnpoint.party.setleader` permission)\n- `/smartspawnpoint party options` - Configures party options (requires `smartspawnpoint.party.options` permission)\n\n## 🔄 How It Works\n\nAre you still using spawn points from CMI or EssentialsX? Their spawn point systems were designed over a decade ago and haven't evolved much since. Isn't it time for something better?\n\nAre you tired of players always respawning at the server spawn or their bed after death? Don't you think this mechanic is outdated and limiting for modern Minecraft servers?\n\nSmartSpawnPoint revolutionizes player respawning with features like:\n\n### 🗺️ Adventure Map \u0026 Custom Map Support\n\n* Perfect for adventure maps and custom map experiences\n* Create checkpoint-based respawn systems for challenging parkour or puzzle maps\n* Design story-driven respawn experiences that enhance narrative flow\n* Support for map makers who want players to respawn at specific story points rather than beds\n* Ideal for escape rooms, quest maps, and linear adventure experiences where traditional respawn mechanics would break immersion\n\n### 🌍 Region-Based Respawning\n\n* Send players who die in a PvP arena directly to a spectator area\n* Teleport players who die in a dungeon to a recovery zone with healing effects\n* Make players who die in the wilderness respawn at random locations for added challenge\n\n### 🎲 Weighted Random Spawns\n\n* Create multiple possible spawn points with different probabilities\n* Adjust spawn chances based on player permissions or PlaceholderAPI conditions\n* Give VIP players better spawn locations with higher probability\n\n### 👥 Party System\n\n* Allow players to form groups and respawn together\n* Perfect for adventure maps, dungeons, and RPG servers\n* Special \"Walking Spawn Point\" feature for content creators to keep their followers nearby\n\n### 🎬 Content Creator Features\n\n* Give your YouTubers and streamers the ability to create spawn point parties\n* When they die, they respawn at their death location and act as spawn points for their followers\n* Creates amazing opportunities for content creation and community engagement\n\n### 🔄 Asynchronous Safe Location Finding\n\n* The waiting room system prevents lag when finding safe spawn locations\n* Players are temporarily teleported to a waiting area while the plugin searches for a safe location\n* Perfect for random spawn points in unpredictable terrain\n\n### 🎮 Enhanced Gameplay Experiences\n\n* Send players to the Nether as punishment for dying in certain areas\n* Create hardcore-like experiences where players respawn in completely random locations\n* Design custom respawn experiences for different player ranks or achievements\n\n### 🔰 Permission-Based Features\n\nSmartSpawnPoint allows you to create tiered access to features based on player ranks or donation levels. Here's a complete list of permissions that you can assign in LuckPerms:\n\n#### All Available Permissions\n\nCopy these permissions into your LuckPerms editor (`/lp editor`) and assign them to appropriate groups:\n\n```text\nsmartspawnpoint.command\nsmartspawnpoint.reload\nsmartspawnpoint.party.invite\nsmartspawnpoint.party.accept\nsmartspawnpoint.party.deny\nsmartspawnpoint.party.leave\nsmartspawnpoint.party.list\nsmartspawnpoint.party.remove\nsmartspawnpoint.party.setleader\nsmartspawnpoint.party.options\nsmartspawnpoint.party.respawnatdeath\n```\n\n#### Suggested Permission Structure\n\n- **Basic Players** (Default tier):\n\n  ```text\n  smartspawnpoint.command\n  smartspawnpoint.party.accept\n  smartspawnpoint.party.deny\n  smartspawnpoint.party.leave\n  smartspawnpoint.party.list\n  ```\n\n- **VIP Players** (Middle tier):\n\n  ```text\n  smartspawnpoint.party.invite\n  smartspawnpoint.party.remove\n  smartspawnpoint.party.setleader\n  smartspawnpoint.party.options\n  smartspawnpoint.vip\n  ```\n\n- **Premium/Content Creators** (Top tier):\n\n  ```text\n  smartspawnpoint.party.respawnatdeath\n  smartspawnpoint.premium\n  ```\n\n- **Administrators**:\n\n  ```text\n  smartspawnpoint.reload\n  ```\n\nThis tiered permission system creates progression and incentives for player ranks, enhancing both gameplay and monetization opportunities for your server. Players will have a reason to upgrade their rank to access more advanced party features and spawn benefits.\n\nYou can also configure special spawn points or weighted chances in your config based on these permissions:\n\n```yaml\n# Example of VIP-only spawn point\nconditions:\n  permissions:\n    - \"smartspawnpoint.vip\"\n\n# Example of weighted chances for premium players\nweight-conditions:\n  - type: \"permission\"\n    value: \"smartspawnpoint.premium\"\n    weight: 100  # 100% chance for premium players\n```\n\nSmartSpawnPoint isn't just a spawn point plugin - it's a complete respawn management system that opens up endless possibilities for your server!\n\n## ⚠️ Important Notes\n\n1. **Nether and End Teleportation**: If you want to teleport players to the Nether or End dimensions, refer to the examples in the configuration. Make sure to set `require-safe: true` to avoid players spawning in dangerous locations like lava pools in the Nether or void areas in the End.\n\n   **Recommended Y-coordinates:**\n   - **Nether**: Use `min-y: 30` and `max-y: 100` to avoid spawning players on the Nether roof (y=128) or in lava lakes at bedrock level\n   - **End**: Use `min-y: 50` and `max-y: 80` to prevent spawning in the void or too close to the ground where endermen might be aggressive\n\n2. **Region Entry vs Respawn**: SmartSpawnPoint only handles player respawning after death, not entry into regions or worlds. For region entry commands, use WorldGuard flags like `entry-command` or `entry-deny`. For first-join teleportation, consider using Multiverse-Core's `firstspawnoverride` setting.\n\n3. **Compatibility with Other Plugins**: SmartSpawnPoint can potentially work alongside respawn handling from CMI or EssentialsX if properly configured, but it's recommended to disable their respawn handling for the best experience:\n    - For EssentialsX: Set `respawn-at-home: false` in the essentials config.yml\n    - For CMI: Set `respawn.enabled: false` in the CMI config.yml\n\n4. **Safe Location Finding**: The `require-safe` option should be set to `false` for known safe locations to improve performance. Only enable it when spawning in potentially dangerous areas.\n\n5. **Waiting Room Design Considerations**: The waiting room feature is not just a temporary holding area - it's a fallback spawn location where players might remain if:\n\n    - A safe location cannot be found within the configured timeout period\n    - The server restarts during the asynchronous location search\n    - An error occurs during the teleportation process\n\n   ⚠️ **Don't Trap Players!** For this reason, waiting rooms should be:\n\n    - **Fully functional areas**: Players should be able to move around and interact\n    - **Escape-enabled**: Include a way out (NPCs, pressure plates, portals, commands)\n    - **Strategically located**: Consider placing them near cities, markets, or hubs\n    - **Properly protected**: Use WorldGuard to prevent griefing or damage\n    - **Well-designed**: Include basic amenities and clear signage explaining the situation\n\n   🏙️ **Themed Integration**: On RPG servers, consider creating themed \"recovery zones\" that fit your lore while serving as waiting rooms. For example, a temple of healing, a traveler's respite, or a dimensional nexus.\n\n   \u003e If you're using SmartSpawnPoint on a large server with many regions or factions, it's a good idea to theme each waiting room to match the area the player died in.\n\n6. **Action Execution Timing**: Actions (commands and messages) are only executed after a player has been successfully teleported to their final respawn location:\n    - If using the waiting room system, actions will NOT execute while the player is in the waiting room\n    - Actions will only trigger once the player reaches their actual spawn point\n    - This ensures that effects, items, and messages are applied at the appropriate time\n\n7. **Vanilla vs SmartSpawnPoint Respawn Mechanics**:\n    - **Vanilla Minecraft** (without any plugins) follows a strict respawn priority:\n        1. First checks for a valid respawn anchor in the Nether dimension (if properly charged with glowstone)\n            - Respawn anchors only work when placed in the Nether dimension\n        2. Then checks for a valid bed in the Overworld dimension (if not broken or obstructed)\n            - Beds only function as spawn points when placed in the Overworld\n        3. If neither exists or they're obstructed, sends player to the world spawn point (usually near coordinates 0,0 or wherever /setworldspawn was set)\n        4. In the End dimension, players always return to the Overworld spawn regardless of beds or anchors\n\n    - **SmartSpawnPoint** completely transforms this with a more flexible priority system:\n        1. Region-Based Spawns 🥇 (Highest Priority): Checks if player died in a configured WorldGuard region\n        2. World-Based Spawns 🥈 (Secondary Priority): If no region match, checks for world-specific spawn rules\n        3. Fallback to Vanilla (Lowest Priority): Only if no SmartSpawnPoint rules match\n        4. Party System Overrides 🎉: Can override all above rules if enabled and conditions are met\n        5. Weighted Random Logic ⚖️: Dynamically calculates spawn probabilities based on player attributes\n\n   **Respawn Flow Summary:**\n   Player Dies → Check Region Rules → If match, apply region spawn → If no match, check World Rules →\n   If match, apply world spawn → If no match, use Vanilla Logic →\n   Party Respawn overrides all if applicable\n\n   **Important:** For any worlds or regions not configured in SmartSpawnPoint, the plugin will automatically fall back to vanilla respawn behavior. This allows you to selectively enhance only certain areas of your server while leaving others with default mechanics.\n\n   This enhanced flow gives server owners unprecedented control over the respawn experience while maintaining compatibility with vanilla mechanics when desired. Note that for SmartSpawnPoint to work properly, respawn handling should be disabled in other plugins like CMI or EssentialsX as mentioned in note #3.\n\n## 🛠️ Troubleshooting\n\nIf you encounter issues with the plugin:\n\n1. **Check your configuration**: Validate your YAML syntax using [YAMLLint](http://www.yamllint.com/)\n2. **Enable debug mode**: Set `debug-mode: true` in the config to get detailed logs\n3. **Check for conflicts**: Ensure no other plugins are handling respawn events\n4. **Verify dependencies**: Make sure you have the correct versions of WorldGuard and PlaceholderAPI if you're using those features\n5. **Plugin conflicts**: Avoid configuring SmartSpawnPoint respawn mechanics in regions or worlds where plugins like MythicDungeons already manage respawn handling. These plugins have their own respawn systems, which can conflict with SmartSpawnPoint.\n\n   **Party System Compatibility with Dungeon Plugins**: The SmartSpawnPoint party system may interfere with dungeon plugins' respawn mechanics (such as MythicDungeons, DungeonsXL, etc.). If you experience conflicts, disable party respawn in specific worlds or regions where dungeons exist.\n\n   **For MythicDungeons worlds**, disable party respawn like this:\n   ```yaml\n   world-spawns:\n     - world: \"MythicDungeonWorld_0\"\n       type: \"none\"\n       party-respawn-disabled: true\n   ```\n\n   **For region-based dungeon plugins**, create a WorldGuard region (make sure you set appropriate flags for your dungeon system, such as block-break permissions if needed) and configure it like this:\n   ```yaml\n   region-spawns:\n     - region: \"DungeonRegion_0\"\n       region-world: \"DungeonWorld\"\n       type: \"none\"\n       party-respawn-disabled: true\n   ```\n\n   Always test thoroughly after making these changes to ensure your dungeon systems work correctly with SmartSpawnPoint.\n6. **Delayed teleportation**: If you're experiencing issues with other plugins that handle teleportation or respawning, try setting `force-delayed-teleport: true` in the config. This can help resolve timing conflicts by ensuring SmartSpawnPoint's teleportation happens after other plugins have processed the respawn event.\n\n## 📦 Compatibility\n\n- **Minecraft Versions:** 1.16.5 to the latest release\n- **Server Software:** [Paper](https://papermc.io/) (1.16.5 and newer)\n- **Java Version:** Java 16 or higher\n- **Optional Dependencies:**\n    - WorldGuard 7.0.5+ (for region-based spawns)\n    - PlaceholderAPI 2.11.6+ (for condition-based spawns)\n\n## 🆘 Support\n\nIf you encounter any issues or have suggestions for improving the plugin, please create an [issue](https://github.com/alex2276564/SmartSpawnPoint/issues) in this repository.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n[Alex] - [https://github.com/alex2276564]\n\nWe appreciate your contribution to the project! If you like this plugin, please give it a star on GitHub.\n\n## 🤝 Contributing\n\nContributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/alex2276564/SmartSpawnPoint/issues).\n\n### How to Contribute\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/YourFeature`).\n3. Commit your changes (`git commit -m 'Add some feature'`).\n4. Push to the branch (`git push origin feature/YourFeature`).\n5. Open a Pull Request.\n\n---\n\nThank you for using **SmartSpawnPoint**! We hope it enhances your server's gameplay experience. 🎮🌟","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex2276564%2Fsmartspawnpoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex2276564%2Fsmartspawnpoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex2276564%2Fsmartspawnpoint/lists"}