The AtePlant Archive

Resources

Everything you need to know when creating adventure maps for the AtePlant Archive.

Rules & Guidelines

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.

Note: Maps can be about anything: parkour, puzzles, ice boat racing, etc.

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.

If the map looks high quality or the creators have enough street cred, it will be given its own world on the server to be built. If the map is not complete within two months of acceptance, the world will be saved, sent to the creators, and then deleted. Extensions are allowed.

Submitting a Completed Map

Use the following fields when submitting a finished map.

FieldDetails
NameNo spaces or special characters.
CreatorsList all creators. All creators must have joined the server at least once.
DescriptionBrief description for the map. This will be shown in the map menu
TagsSubject to change to match existing tags. Max 5.
FlairHow 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.
LobbyDoes 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 NotesClarify the following (If left blank, it will be default to no):
  • Does your map have multiple endings? If yes, your video must show you beating all endings.
  • Is the map singleplayer? If yes, can party members join? This is usually for co-op maps.
  • Is your map in hardcore mode? If yes, how many lives? Using a checkpoint in hardcore costs one life. If you run out of lives, you cannot play the map again for the rest of the day.
  • Is godmode enabled (can the player get hurt)?
  • Is practice enabled?
  • Does it use AteScripts? If yes, provide it here or make a separate post in #support with the script file included.
VideoProvide 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.
Important: If the map is not yet on the server, please post the schematic or world file with coordinates of the build in #support. Mark where you teleport in (if you have a lobby), starting plate, end plates, and any triggers such as teleporters, launch pads, effect blocks with signs, etc. - these will be removed.
Scripting Reference

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.

Note: AteScript is currently in active development. APIs may change between server updates.

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:

FieldDescription
$triggerHow the script is triggered. See Triggers below.
$worldThe 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.

VariableAvailabilityDescription
$playerAll triggersThe player who triggered the script.
$btypeBlock triggersThe 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
$blocationBlock triggersThe block's location. Comparing something to this follows the following naming convention: x,y,z
$itypeItem triggersThe 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 / isnot to check if a value is or isn't equal to something.
Example
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.

Example
/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.

CommandDescription
*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>.

TriggerWhen It FiresExtra Variables
onBlockInteractPlayer left-clicks on a block.$btype, $blocation
onBlockBreakPlayer breaks a block.$btype, $blocation
onItemInteractPlayer left-clicks while holding an item.$itype
onItemPunchPlayer punches while holding an item.$itype
onPlateActivatePlayer steps on a pressure plate.$btype, $blocation
onTeleportPlayer teleports.None

Examples

drb_CyanWool.atescript - Give cyan wool on breaking a specific block
$trigger onBlockBreak
$world DarkerBramble
endif $btype isnot CHISELED_RESIN_BRICKS
/give $player cyan_wool[can_place_on=[{blocks:cyan_glazed_terracotta}]] 1
drb_TeleportRemoval.atescript - Clear items on teleport
$trigger onTeleport
$world DarkerBramble
/clear $player minecraft:purple_wool
/clear $player minecraft:cyan_wool
Tools

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

ToolDescription
TeleportersTeleport 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.
LaunchersGeneral server and client performance optimisations.
Potion EffectsPerformance tweaks and shader support for 1.8.9.

World Settings

ToolDescriptionCommands
Breakable BlocksMajor rendering performance improvements.None
Item BoxGeneral server and client performance optimisations.None
Only SprintPerformance tweaks and shader support for 1.8.9.None
Timer BlockPerformance tweaks and shader support for 1.8.9.None
Trapdoor ClutchPerformance tweaks and shader support for 1.8.9.None
SudokuPerformance tweaks and shader support for 1.8.9./startsudoku [id] [player], /endsudoku [player]
PracticePerformance tweaks and shader support for 1.8.9./forcepractice [player], /forceunpractice [player]