Resources
Everything you need to know when creating adventure maps for the AtePlant Archive.
Map Making Guidelines
Everything you need to know to create and submit a map for the AtePlant Archive.
Priority 1: Gameplay
The number one priority is that the gameplay is high-effort, fun, and creative. Your map will not be accepted if it does not meet all three of these criteria. These will be judged loosely, especially the fun part.
If your map requires a plugin, datapack, resource pack, or command blocks that are necessary to how the map is played or enjoyed, you must let me know before you start building so I can approve it. If you want me to make a plugin, datapack, or resource pack for your map, just tell me.
Priority 2: Build Quality
The build should be good. This does not mean your map requires a build to be accepted - floating parkour with some pixel art in the sky is totally fine. However, anything that is built should be high quality.
Do not use any existing map on this server as a frame-of-reference for quality.
Submission Template
Is the map complete?
There are no plot worlds on this server, so all building should be done elsewhere.
If your map requires server-side support to create the gameplay (custom plugins, AteScripts, resource packs, command blocks, etc.), provide the following. Make this post in #support - do not send it here.
Submitting a Completed Map
Use the following fields when submitting a finished map.
| Field | Details |
|---|---|
| Name | No spaces or special characters. |
| Creators | List all creators. All creators must have joined the server at least once. |
| Description | Brief description for the map. This will be shown in the map menu |
| Tags | Subject to change to match existing tags. Max 5. |
| Flair | How the map appears in the menu and when you start it. Can be completely different to the name. Spaces, special characters, and colors are allowed, same formatting as colored signs. |
| Lobby | Does it have a lobby? A lobby is the area you are teleported to before the map, with a start plate that begins the map when stepped on. If No, the map starts immediately when you teleport in. |
| Additional Notes | Clarify the following (If left blank, it will be default to no):
|
| Video | Provide a video or clips of you beating the map, spliced checkpoint by checkpoint. If you do not want it public, Provide the video in #support. |
AteScript
AteScript is the server's custom Minecraft scripting language parsed and executed by a server plugin. The AtePlant Archive uses Mutiverse-Core where each map gets their own world; However, DataPacks work on a per-dimension basis. In order to alleviate this issue, AteScript was created to replicate the behaviour of DataPacks while also having the events you find in Spigot API. The compiler for AteScript is public, so you are able to test your scripts on a local server.
Script Structure
Every script file is named after its purpose and ends in .atescript. Each script declares a trigger, a world, and then its logic. The following header fields are required at the top of every script:
| Field | Description |
|---|---|
| $trigger | How the script is triggered. See Triggers below. |
| $world | The trigger must occur in this world. AKA the adventure map it is for. |
Variables
$player is automatically set to the player who triggered the script. Additional variables are available depending on the trigger used. This is clarified in the Triggers section below.
| Variable | Availability | Description |
|---|---|---|
| $player | All triggers | The player who triggered the script. |
| $btype | Block triggers | The block's material type. Comparing something to this follows the Spigot API https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html material naming convention: ACACIA_FENCE_GATE |
| $blocation | Block triggers | The block's location. Comparing something to this follows the following naming convention: x,y,z |
| $itype | Item triggers | The material of the item being held or interacted with. Comparing something to this follows the Spigot API https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html material naming convention: IRON_INGOT |
Logic & Commands
Logic Statements
Use endif to conditionally end the script.
- 1Syntax:
endif <variable> <operator> <value> - 2Use
is/isnotto check if a value is or isn't equal to something.
endif $btype isnot CHISELED_RESIN_BRICKS /give $player cyan_wool 1
Console Commands
Run any command directly on the console by prefixing it with /. Variables like $player are substituted inline.
Also clarify the origin of the command: Use /minecraft:give ... if you are using a base-Minecraft give command, Use /Essentials:give if you are using the EssentialsX give command.
/minecraft:gamemode creative $player
Data Storage
Persist data to a player using the * prefix. Data is stored in persistent data containers and survives across sessions.
| Command | Description |
|---|---|
| *store <field> <value> | Store a value under the given field name on the player. |
| *get <field> | Retrieve a stored value by field name. |
| *delete <field> | Delete a stored field from the player. |
Triggers
Triggers define what event causes the script to run. Set the trigger at the top of the script with $trigger <name>.
| Trigger | When It Fires | Extra Variables |
|---|---|---|
| onBlockInteract | Player left-clicks on a block. | $btype, $blocation |
| onBlockBreak | Player breaks a block. | $btype, $blocation |
| onItemInteract | Player left-clicks while holding an item. | $itype |
| onItemPunch | Player punches while holding an item. | $itype |
| onPlateActivate | Player steps on a pressure plate. | $btype, $blocation |
| onTeleport | Player teleports. | None |
Examples
$trigger onBlockBreak
$world DarkerBramble
endif $btype isnot CHISELED_RESIN_BRICKS
/give $player cyan_wool[can_place_on=[{blocks:cyan_glazed_terracotta}]] 1
$trigger onTeleport $world DarkerBramble /clear $player minecraft:purple_wool /clear $player minecraft:cyan_wool
Tools
All server-specific tools to help with mechanics and helpful mods to make map-making easier. Commands listed are ones you can use in AteScripts. If your map requires a plugin with a different mechanic/function then:
- 1If it is simple, try to make it using an AteScript.
- 2If it is complex, let AtePlant know through dms or #support to see if that idea is possible, and it will be made for you if so.
Block Triggers
| Tool | Description |
|---|---|
| Teleporters | Teleport a player once they step on a block. - Exact Coords: specify the exact coordinates you will teleport to. Default will teleport you to the relative coords from where you stepped on the first teleporters. - Facing: specify the yaw and pitch you will face after teleporting. Default will keep your current facing. - Two-Way Teleporters: it's in the name. - Locked Teleporters: in order to use this teleporter, you must have specific items in your inventory. |
| Launchers | General server and client performance optimisations. |
| Potion Effects | Performance tweaks and shader support for 1.8.9. |
World Settings
| Tool | Description | Commands |
|---|---|---|
| Breakable Blocks | Major rendering performance improvements. | None |
| Item Box | General server and client performance optimisations. | None |
| Only Sprint | Performance tweaks and shader support for 1.8.9. | None |
| Timer Block | Performance tweaks and shader support for 1.8.9. | None |
| Trapdoor Clutch | Performance tweaks and shader support for 1.8.9. | None |
| Sudoku | Performance tweaks and shader support for 1.8.9. | /startsudoku [id] [player], /endsudoku [player] |
| Practice | Performance tweaks and shader support for 1.8.9. | /forcepractice [player], /forceunpractice [player] |