Customizable Teleporters (Sonic 1)
This is an ASM file for Sonic 1 that changes how the teleporter object found in Scrap Brain Zone works. This version uses its subtype data to determine how it behaves, which direction to send Sonic, and how far to send Sonic from the starting location. Credit is not necessary but would be appreciated.

Included with the code is a modified object definition for SonLVL.
Yellow arrows are used to show where Sonic will be moved to.
Direction determines if Sonic moves vertically (up) or horizontally (left).
Distance is how far Sonic is moved times 32.
Ring Requirement determines whether or not the teleporter requires 50 rings to use.
Skip Start Up will skip the start up animation and is used for midpoints when using multiple objects.
Flipping X/Y will reverse the direction.
A distance of 0 will make a curved turn.
Yellow arrows are used to show where Sonic will be moved to.
Direction determines if Sonic moves vertically (up) or horizontally (left).
Distance is how far Sonic is moved times 32.
Ring Requirement determines whether or not the teleporter requires 50 rings to use.
Skip Start Up will skip the start up animation and is used for midpoints when using multiple objects.
Flipping X/Y will reverse the direction.
A distance of 0 will make a curved turn.

There are also modified object definitions for SonED2 but they do not have visual indicators showing where Sonic will be moved to.
Subtype bit field: RSMDDDDD
R: Ring Requirement
S: Skip Start Up
M: Direction
DDDDD: Distance
Subtype bit field: RSMDDDDD
R: Ring Requirement
S: Skip Start Up
M: Direction
DDDDD: Distance