6 Creating a custom gate layout
Kristian Knarvik edited this page 2021-11-07 04:28:45 +01:00

Sections:

Creating a Custom Gate Layout

You can create as many gate formats as you want, the gate layouts are stored in plugins/Stargate/gates/.
The .gate file must be laid out a specific way, the first lines will be config information, and after a blank line you will lay out the gate format. Here is the default nethergate.gate file:

portal-open=NETHER_PORTAL
portal-closed=AIR
button=STONE_BUTTON
usecost=0
createcost=0
destroycost=0
toowner=false
X=OBSIDIAN
-=OBSIDIAN

 XX 
X..X
-..-
X*.X
 XX 

The keys portal-open and portal-closed are used to define the material in the gate when it is open or closed. The material for portal-closed can be most things, including solid blocks. Some materials may act weirdly though. The material for portal-open can be any block the player can partially enter, even things like GLOW_LICHEN. NETHER_PORTAL, END_GATEWAY and END_PORTAL all work.

The usecost, createcost and destroycost keys can be used to set an economy price for gates of this type, different from the cost defined in the config. With economy enabled, all gates without these values set will use the values from the config. If you want to have different costs for different portals, you must create different gate types and set different costs for each one. The toowner key can be used to set whether funds withdrawn for using portals with this gate type should go to the portal's owner.

The key button is used to define the type of button that is generated for this gate. It can be a button (of any type), a type of wall coral (dead or alive), a type of shulker box or a chest.

X and - are used to define block types for the layout (Any single-character can be used, such as #).
In the gate format, you can see we use X to show where obsidian must be, - where the controls (Button/sign) are.

For more complex gate designs, it is possible to add more materials. If you add something like a=GLOWSTONE, a can then be used in the gate layout, just as X is used. See the squarenetherglowstonegate.gate file for an example.

You will also notice a * in the gate layout, this is the "exit point" of the gate, the block at which the player will teleport in front of.

Buttons

The actual buttons cannot be used underwater, but all the other items in the button list can be.

The entire list of button types is as follows: (Click to expand)
STONE_BUTTON
OAK_BUTTON
SPRUCE_BUTTON
BIRCH_BUTTON
JUNGLE_BUTTON
ACACIA_BUTTON
DARK_OAK_BUTTON
CRIMSON_BUTTON
WARPED_BUTTON
POLISHED_BLACKSTONE_BUTTON

CHEST
TRAPPED_CHEST
ENDER_CHEST
SHULKER_BOX
WHITE_SHULKER_BOX
ORANGE_SHULKER_BOX
MAGENTA_SHULKER_BOX
LIGHT_BLUE_SHULKER_BOX
YELLOW_SHULKER_BOX
LIME_SHULKER_BOX
PINK_SHULKER_BOX
GRAY_SHULKER_BOX
LIGHT_GRAY_SHULKER_BOX
CYAN_SHULKER_BOX
PURPLE_SHULKER_BOX
BLUE_SHULKER_BOX
BROWN_SHULKER_BOX
GREEN_SHULKER_BOX
RED_SHULKER_BOX
BLACK_SHULKER_BOX
TUBE_CORAL_WALL_FAN
BRAIN_CORAL_WALL_FAN
BUBBLE_CORAL_WALL_FAN
FIRE_CORAL_WALL_FAN
HORN_CORAL_WALL_FAN
DEAD_TUBE_CORAL_WALL_FAN
DEAD_BRAIN_CORAL_WALL_FAN
DEAD_BUBBLE_CORAL_WALL_FAN
DEAD_FIRE_CORAL_WALL_FAN
DEAD_HORN_CORAL_WALL_FAN

Underwater Portals

There is a default gate type for underwater gates. There are no real restrictions on underwater gate materials, except normal buttons cannot be used since they'd fall off. Using wall coral fans work much better, though CHEST and SHULKER_BOX works too.

Using AIR for a closed underwater gate looks weird, so WATER might be better. If using AIR for the closed gate, you need to make sure it actually contains air when creating it. For partially submerged portals, like ones used for boat teleportation, you need to keep water away from the portal entrance/opening until it's been created.

Economy Support

The latest version of Stargate has support for Vault. Gate creation, destruction and use can all have different costs associated with them. You can also define per-gate layout costs. The default cost is assigned in the config.yml file, while the per-gate costs re defined in the .gate files. To define a certain cost to a gate just add these lines to your .gate file:

  createCost: 5 -- Will cost 5 currency to create
  destroyCost: 5 -- Will clost 5 currency to destroy (negative to get back the spent money)
  useCost: 5 -- Will cost 5 currency to use the stargate
  toOwner: true -- Will send any fees to the gate's owner