About aMAZEingPro
aMAZEingPro is a Rust mini-game which allows you and your friends to enjoy amazeingly fun but confusing mazes.
Features
The plugin currently features the following:
- Extremely customizable.
- Asynchronous maze creation.
- Batch maze creation & destruction.
- Configurable maze sizes.
- Maze modes.
- Multiple floors.
- Multiplayer.
- Spectating mode.
- Host & helper player lives & respawning on trap death.
- Rewards: Economics and / or ServerRewards
- Events: Christmas, Halloween, Valentine's Day & Easter modes.
Configurable per floor:
- Posters.
- Traps (landmines, gun traps & bear traps).
- Block tier configurations (twigs, wood, stone, metal, top tier).
- Entrance / exit (reward box) loot configurations.
- Skins for entrance (small) / exit (large) storage boxes and rugs.
- Trap spawn chance amounts.
- Locked doors & gifts.
API
The plugin currently features the following:
(string) CreateBuilding(ulong playerId, string modeJson, Vector3 rootPosition, int seed) // Generates a maze building with the mode configuration and returns the id which can be used to destroy it. (string) CreateBuilding (ulong playerId, Mode mode, Vector3 rootPosition, int seed, bool persistent) // Generates a maze building with the mode configuration and returns the id which can be used to destroy it. (void) DestroyBuilding(ulong playerId, string buildingId) // Destroys a building with the id. (bool) IsHosting(ulong playerId) // Returns true if the player with the ID is currently hosting / playing a game. (bool) IsHelping(ulong playerId) // Returns true if the player with the ID is currently playing or is participating in someone's game. (bool) IsHelpingPlayer (ulong playerId, ulong helpedPlayer) // Returns true if a player is playing in someones' maze game. (bool) IsCooledDown(ulong playerId) // Returns true if the player with the ID is currently cooled down. (int) GetCooldown(ulong playerId) // Returns the amount in seconds of someone's cooldown.
Warning: On plugin reload, the buildings created with the API (along with the running games) are going to be destroyed.
Configuration
The config comes with a few handy links, quick to access when you wanna make changes, like change the skins of small / large storage box, or need the item short-names and block tier indicators.
{ "ItemsListWebsite": "https://www.corrosionhour.com/rust-item-list/", "LargeWoodenStorageBoxWorkshopWebsite": "https://steamcommunity.com/workshop/browse/?appid=252490&searchtext=&childpublishedfileid=0&browsesort=trend§ion=mtxitems&requiredtags%5B%5D=Large+Wood+Box", "SmallWoodenStorageBoxWorkshopWebsite": "https://steamcommunity.com/workshop/browse/?appid=252490&searchtext=&childpublishedfileid=0&browsesort=trend§ion=mtxitems&requiredtags%5B%5D=Wood+Storage+Box", "RugWorkshopWebsite": "https://steamcommunity.com/workshop/browse/?appid=252490&searchtext=&childpublishedfileid=0&browsesort=trend§ion=mtxitems&requiredtags%5B%5D=Rug", "BlockTiers": "0 = Twigs, 1 = Wood, 2 = Stone, 3 = Metal, 4 = Top Tier", "GrimstonMoods": "0 = Angry, 1 = Helpful, 2 = Annoying", "WelcomeCommand": "maze", "InfoCommand": "maze.info", "PlayCommand": "maze.play", "LeaveCommand": "maze.leave", "KickCommand": "maze.kick", "InviteCommand": "maze.invite", "InviteAcceptCommand": "maze.accept", "InviteDeclineCommand": "maze.decline", "ModesCommand": "maze.modes", "LeaderboardCommand": "maze.lead", "ResetModesCommand": "maze.resetmodes", "MaximumInvites": 5, "DefaultHeight": 250.0, "BatchKillCount": 15, "BatchCreationRowCount": 5, "EnableLogging": true, "UseNPipesSignText": false, "EnablePlayerNoclip": false, "EnablePlayerNoclipLerp": true, "PlayerNoclipLerp": 4.0, "PlayerNoclipSprintMultiply": 3.0, "Themes": { "Auto": true, "Theme (0 = None, 1 = Valentine's Day, 2 = Easter, 3 = Halloween, 4 = Christmas)": 4, "Settings": { "StockingChanceAmount": 5, "StockingChanceTimes": 2, "ScarecrowChanceAmount": 5, "ScarecrowChanceTimes": 2, "RustigeChanceAmount": 5, "RustigeChanceTimes": 2 } }, "GroupCooldowns": { "admin": 0, "vip": 25, "default": 120 }, "Modes": {} }
Modes
To set up a mode with one or more floors, it must look something like this:
{ "DisplayName": "Easy Run", "DisplayDescription": "Fun but complicated. Don't give up too easily. There're memes for your enjoyment.", "Size": 15, "Disabled": false, "Group": "default", "EnableInvites": false, "RespawnOnFloorWherePlayerDied": true, "HostMaximumLives": 1, "HelperMaximumLives": 1, "Rewards": { "Currency (0 = Economics, 1 = ServerRewards - balance is divided by 100)": 0, "Completion Depositing Balance": 100, "Door Unlocking Depositing Balance": 5, "Losing Withdrawal Balance": 50, "Leaving Withdrawal Balance": 10 }, "Floors": [ { "EnableLanterns": true, "Posters": { "Urls (Must be an accessible direct download link to an image - PNG or JP[E]G)": [ "https://i.redd.it/cbcz02c3wlv51.jpg", "https://i.redd.it/xhyxowes0gv51.jpg", "https://i.redd.it/y30leeu81lv51.jpg", "https://i.redd.it/qbo7ot73ojv51.jpg", "https://i.redd.it/78v3jj30hjv51.jpg" ], "PosterSpawnChanceAmount": 5, "PosterSpawnChanceTimes": 2 }, "Doors": { "DoorChanceAmount": 10, "DoorChanceTimes": 6, "DoorMaximumAmount": 7, "GiftStorageChanceAmount": 5, "GiftStorageChanceTimes": 2, "GiftStorageSkinId": 0, "WrapGifts": true, "GiftLoot": [] }, "Traps": { "EnableLandMines": false, "EnableGunTraps": true, "EnableBearTraps": false, "EnableFog (Works only if Halloween mode is enabled)": true, "GunTrapAmmoChanceAmount": 5, "GunTrapAmmoChanceTimes": 2, "GunTrapAmmoAmount": 64, "LandMineChanceAmount": 5, "LandMineChanceTimes": 2, "BearTrapChanceAmount": 5, "BearTrapChanceTimes": 2 }, "Blocks": { "RugSkinId": 0, "EntranceWallTier": 2, "ExitWallTier": 2, "WallTier": 1, "WallFrameTier": 1, "FoundationTier": 1, "FloorTier": 2 }, "Loot": { "EntranceSignFormat": "START", "EntranceStorageLoot": [], "EntranceStorageSkinId": 0, "ExitSignFormat": "FINISH\nGood job, {0}!", "ExitStorageLoot": [ { "ShortName": "scrap", "MinAmount": 500, "MaxAmount": 1000 } ], "ExitStorageSkinId": 0 } } ] }
Permissions
Here are all the permissions you can use:
- aMAZEingPro.play: Allows anyone to start a new maze. Invited players do not require this permission.
- aMAZEingPro.admin: Allows anyone to execute [admin command]s.
Commands
Here are all the commands you can use:
- Welcome: /maze by default, will print some information about this plugin, including the commands. It'll open the HUD for aMAZEingCUI if you have it installed.
- Info: /maze.info by default, will print some information the current game the player's playing, including mode information.
- Play: /maze.play by default, [1/2/3 or mazeId (easy, hard, etc.)] will start a game with the specified maze id or index.
- Leave: /maze.leave by default, will make a player or a helper teleport back to where they were. If the same player started the maze, the maze will be destroyed.
- Invite: /maze.invite by default, will invite another player if you're already in a maze. They'll be secretly notified about it, where they can:
- Accept: /maze.accept by default, [none or playerName] will accept a request to help a player to the maze. Accepting without having any input, will accept any games that the player's been requested to.
- Decline: /maze.decline by default, [none or playerName] will decline a request to help a player to the maze. Declining without having any input, will decline any games that the player's been requested to.
- Kick: /maze.kick by default, [playerName] will kick a helper player from a player's game.
- Modes: /maze.modes by default, will print a list of all the maze modes a player can play in.
- Leaderboard: /maze.lead by default, will print a list of all the maze modes with top 5 players best completion times.
- Reset Modes: /maze.resetmodes by default [admin command], will reset the configuration.
Dependencies
The plugin currently depends on the following plugins:
- SignArtist by Whispers88
The following are optional but highly recommended plugin dependencies:
- TruePVE by nivex
- HelpText by Calytic
- ServerRewards by k1lly0u
- Economics by Wulf
- Rust Kits by Whispers88
Feedback
If you have any ideas or feedback you wanna give me, please comment down below.