Jump to content

10 Screenshots

About aMAZEingPro

aMAZEingPro is a Rust mini-game which allows you and your friends to enjoy amazeingly fun but confusing mazes. Included extension required.
If the download contains extra files, named "READ ME" or "IMPORTANT", please read through since it's important notes for the version you're using.

 

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.
  • NPCs: Grimstons which can make your life easier or harder, depending on the configuration.

 

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&section=mtxitems&requiredtags%5B%5D=Large+Wood+Box",
  "SmallWoodenStorageBoxWorkshopWebsite": "https://steamcommunity.com/workshop/browse/?appid=252490&searchtext=&childpublishedfileid=0&browsesort=trend&section=mtxitems&requiredtags%5B%5D=Wood+Storage+Box",
  "RugWorkshopWebsite": "https://steamcommunity.com/workshop/browse/?appid=252490&searchtext=&childpublishedfileid=0&browsesort=trend&section=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,
      "Grimstons": [
        {
          "Mood": 0,
          "Speed": 3.0,
          "Health": 250.0,
          "Invincible": false,
          "SpawnPosition (0 = Entrance, 1 = Middle, 2 = Exit)": 0
        }
      ],
      "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
      }
    }
  ]
}

 

Grimstons (NPCs)

They're NPCs which join you per each floor (if configured), will share 3 different modes:

  • Angry Grimston: Will hunt you down and damage you with their weapon (recommended you to set one - don't forget the ammo).
  • Annoying Grimston: Extremely innoffensive, yet annoying enough to get in your comfort zone, and push you into traps.
  • Helpful Grimston: It doesn't bother you, just minding his own business, on his way to the end of the maze.

 

{
  "Mood (0 = Angry, 1 = Helpful, 2 = Annoying)": 0,
  "Speed": 3.0,
  "Health": 1.0,
  "ShootRate": 0.15,
  "Invincible": false,
  "Kit": "Test",
  "LockClothing": false,
  "LockInventory": false,
  "LockBelt": false,
  "InventoryItems": [
	{
	  "MinAmount": 500,
	  "MaxAmount": 0,
	  "ShortName": "ammo.rifle"
	}
  ],
  "ClothingItems": [
	{
	  "SkinId": 1216976323,
	  "ShortName": "metal.facemask"
	},
	{
	  "SkinId": 2030079828,
	  "ShortName": "pants"
	},
	{
	  "SkinId": 2030078205,
	  "ShortName": "hoodie"
	},
	{
	  "SkinId": 494043029,
	  "ShortName": "shoes.boots"
	}
  ],
  "BeltItems": [
	{
	  "SkinId": 0,
	  "ShortName": "rifle.ak"
	}
  ],
  "SpawnPosition (0 = Entrance, 1 = Middle, 2 = Exit)": 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.

 

Installation
To properly set up the plugin, please make sure you executed the following steps:

Step 1
Place Humanlights.System.dll in the RustDedicated_Data/Managed folder.

Step 2
Put aMAZEingPro.cs within the oxide/plugins folder.

Step 3
If you want everyone to be able to play the mini-game, use oxide.grant group default aMAZEingPro.play or replace default with admin, vip or any group you want.

 

Dependencies

The plugin currently depends on the following plugins:

The following are optional but highly recommended plugin dependencies:

 

Feedback

If you have any ideas or feedback you wanna give me, please comment down below.

  • Like 3
  • Love 3

User Feedback

1.5m

Downloads

Total number of downloads.

7k

Customers

Total customers served.

105.3k

Files Sold

Total number of files sold.

2.1m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.