The list of all features that OSA/APS++ has included in the base template that are not in other templates.
It includes all features up to the latest release version.
-
Addon API Support.
- Addons can be added to
server/modules/definitions/addons. - Addons can easily be downloaded, installed and published.
- They can add custom entities and gamemodes, aswell as change the server configuration if needed.
- They also have access to
Events, likespawnorchatMessage. - Template comes with some example addons:
- basicChatModeration*: Basic antispam which adds a ratelimit and chat message length limit to chat.
- dreadv1 & dreadv2: Adds V1 and V2 dreadnoughts.
- exampleAddon*: Showcases how addons can add custom definitions and interact with already existing ones.
- labyFood*: Sets the food spawns to the Labyrinth ones.
- * = disabled by default, needs to be enabled.
- Addons can be added to
-
Ingame Chat.
- 'Enter' in game to make and send messages.
- 'Escape' to instantly close the message and clear the message content.
- Messages disappear after 30 seconds, which can be changed with
CHAT_MESSAGE_DURATIONin the configuration.
-
Multi-Colored Text.
- You can now use section signs (
§) to color different segments of rendered text in different colors. - Example:
Hello §37§World§reset§!. SANITIZE_CHAT_MESSAGE_COLORSto escape section signs in chat messages.
- You can now use section signs (
-
Status Effects.
StatusEffects can now be added toEntitys.- They can have a duration, body stats multipliers, and a function that runs every tick as long as the status effect lasts.
- Can be added via
Entity.addStatusEffect(StatusEffect). - Multiple
StatusEffects can stack seamlessly.
-
Split Upgrades.
Entity.define()can now take in an array of definitions as an argument.- If it receives an array of definitions, it applies the following attributes from any not-first definitions:
LABEL: Gets merged with theLABELof previous entries in the definition array by concatenation with-.BODY,SIZE: Values get multiplied with each other.GUNS,TURRETS: Simply gets added as you would expect.
- This means that
SPAWN_CLASSin the config and upgrades in upgrade arrays can now be an array of multiple entities instead of a single one.
-
8 Team Support.
- Also added the following constants:
TEAM_BLUE,TEAM_GREEN,TEAM_RED,TEAM_PURPLE,TEAM_YELLOW,TEAM_ORANGE,TEAM_BROWN,TEAM_CYAN,TEAM_ROOM,TEAM_ENEMIES. - Added the following global methods:
getSpawnableArea(teamID),getTeamName(teamID),getTeamColor(teamID),isPlayerTeam(teamID),getWeakestTeam(). - This is to prevent unreadable magic numbers in code.
- Also added the following constants:
-
SHAPEsupports decimal numbers.- Rotates the shape based on the decimal value.
-
Custom Projectile Colors.
- If your bullet has a
COLOR, it overrides the inherited color.
- If your bullet has a
-
Invulnerability flicker.
- When an entity has
.invulnset to true, it flickers.
- When an entity has
-
Arguments to IO Controllers.
- Allows you to configurate a controller.
CONTROLLERS: [['spin', { speed: 0.1 }]].
-
Entity Definition Attribute:
UPGRADE_COLOR.- Lets you change the color of an entity's upgrade box.
-
Entity Definition Attribute:
UPGRADE_LABEL.- Lets you change an entity's upgrade box label.
-
Entity Definition Attribute:
MIRROR_MASTER_ANGLE.- If enabled, makes the turret's angle not lag behind the main entity's angle.
- Enables uses of visual turrets that don't break visually if they rotate.
-
Entity Definition Attribute:
IGNORED_BY_AI.- Makes
io_nearestDifferentMasterignore you. - Base Protectors and Developer menus have them.
- Makes
-
Entity Definition Attribute:
LEVEL_SKILL_POINT_FUNCTION.- Makes the entity use a custom LSPF then the one in the configuration file.
-
Entity Definition Attribute:
RECALC_SKILL.- Resets the spent skill upgrades as if they just spawned with their current level.
- Runs after
LEVEL_SKILL_POINT_FUNCTION.
-
Entity Definition Attribute:
EXTRA_SKILL.- How many extra skill points the entity gets to spend.
- Runs after
RECALC_SKILL.
-
Entity Definition Attribute:
LEVEL_CAP.- Overrides
LEVEL_CAPin the configuration specifically for that entity.
- Overrides
-
Entity Definition Attribute:
REROOT_UPGRADE_TREE.- Changes the root tank of the player's Upgrade Tree.
-
Gun Definition Attribute:
SHOOT_ON_DEATH.- Makes the gun shoot if the entity it is attached to dies.
-
Gun Definition Attribute:
DRAW_ABOVE.- Makes a gun appear above the player but below top turrets.
-
Gun Definition Attribute:
INDEPENDENT_CHILDREN.- Spawns
TYPEas an independent entity instead of a projectile.
- Spawns
-
Definition Attribute:
BORDERLESS.- Removes shape or gun borders, can be applied to both guns and entities.
-
Definition Attribute:
DRAW_FILL.- Fills a shape or gun when drawn.
trueby default.
-
Added Auras.
- Comes with a new motionType
withMasterand a facilitatoraddAura.
- Comes with a new motionType
-
Extensive Foods.
- All labyrinth Foods.
- All Relic variants of Old Food.
- Sphere, Tetrahedron, Octahedron and Tesseract as Extradimensional Food.
- Still kept the old Alpha/Beta Pentagons and Gems/Jewels.
-
More Gamemodes: Train Wars, Manhunt, Space.
-
Better Controllers, like
io_wanderAroundMap,io_stackGuns,io_spinorio_zoom. -
Props - improved decorative turret system.
- Turrets with
MIRROR_MASTER_ANGLEforced totrue. - Behaves identically to turrets but are less performance-heavy.
- Can be placed on turrets but nothing can be placed on them.
- FOV
ARCvalue inPOSITIONomitted.
- Turrets with
-
Shape kill counter in the death screen.
-
Auto LVL up.
-
Split Health Bars.
-
Auto-Alt, Suicide, Reverse Tank, Reverse Mouse, Inverse Mouse, Spin-Lock.
-
Configurable Welcome Message.
-
General Codebase
- Removed Immediately Invoked Function Expressions.
-
Upgrade Tree Renderer
- Move in all 4 directions with arrow keys.
- Hold 'Shift' to move faster.
- Supports theoretically infinite tiers.
- Visually Upgraded.
- Has tank labels.
-
Configuration
- All settings have a comment above them that explains what they do.
- Certain settings were renamed to be less confusing.
-
Moved animated colors to their own function.
- Also added Lesbian (
29) and Bi (38).
- Also added Lesbian (
-
Small options menu updates
- Lists all key binds and also specifies which ones require tokens.
-
Upgrade Menu Renderer
- Now correctly renders various upgrade amounts.
-
Developer Menu.
- Has been completely reworked.
- Includes Menus for Tools, Food Spawners, Unplayable Entities, Addon Entities, etc.
-
Player Bots
- They now upgrade classes and skill naturally.
- Can be configured with
BOT_XP,BOT_SKILL_UPGRADE_CHANCES,BOT_CLASS_UPGRADE_CHANCES.
-
Token Management
- Your actual token strings go into
.env. - The permissions of your tokens go into
server/permissions.js. - Tokens can have permissions like
infiniteLevelUp.
- Your actual token strings go into
-
Definitions Management
- Split up into numerous other files, all located in
server/modules/definitions. - Entity definitions are in
/groups. - "Facilitators" (makeAuto, combineStats, etc.), constants and gun values are in their own files.
- As a requirement, you can now put
"strings"as references instead ofClass.entityreferences. - Added definition flattening, which would improve performance a bit by applying
PARENT's definitions directly to the definition. - Definition flattening also checks for entities that do not exist.
- Needs
flattenDefintionsto be true in the configuration.
- Split up into numerous other files, all located in
-
combineStats(StatsArray)- Can now accept objects with values in them.
- Example:
combineStats([g.drone, g.summoner, { size: 0.8 }]).
-
Gamemode Configurations
- Gamemode configurations are now different files located in
server/modules/setup/gamemodeconfigs. - Gamemode configs are loaded by
server/modules/setup/config.js. - You can easily combine different gamemodes by loading multiple ones in
GAME_MODESin config. - Also generates the gamemode's name.
- Gamemode configurations are now different files located in
-
Upgrade Tiers
- Instead of manually having to add tiers, you now change
MAX_UPGRADE_TIER,TIER_MULTIPLIER.
- Instead of manually having to add tiers, you now change
-
Default Class Tree
- Up to date (as reasonably possible) with arras.io.
-
Guns now have IDs- Just like
yourEntity.id, you can now getyourGun.id.
- Just like
-
EntityandGunclasses now extend fromEventEmitter.- This specifically means that
Entity.ondeadis removed and instead fires an event for it. Entitycan now fire these events:newStatusEffect,expiredStatusEffect,define,dead.
- This specifically means that
-
PARENT- If only one definition reference is inside
PARENT, it is no longer required for it to be an array. - Example:
PARENT: "genericTank".
- If only one definition reference is inside
-
NECRO- Can be a
SHAPEnumber, or an array of them, which details what kind of shaped foods it can infect.
- Can be a
-
COLOR- Can now support strings.
- Can now use color names like
"red","animatedTrans"or"pureBlack". - Which now allows you to enter CSS color codes like
#F08842. - Can also be an Object which contains HSL modification instructions for a basis color.
- Can be
-1ormirrorto copy their parent's color.
-
ALPHA- Can now be an array of 2 numbers.
- First number defines the maximum alpha (max visibility).
- Second number defines the minimum alpha (min visibility).
-
POSITION(both for guns and turrets)- Can now be an object with the following (all optional) attributes:
- Guns:
LENGTH,WIDTH,ASPECT,X,Y,ANGLE,DELAY. - Turrets:
SIZE,X,Y,ANGLE,ARC,LAYER
-
STAT_NAMES- Can now be an object of key-string pairs with the following attributes:
BODY_DAMAGE,MAX_HEALTH,BULLET_SPEED,BULLET_HEALTH,BULLET_PEN,BULLET_DAMAGE,RELOAD,MOVE_SPEED,SHIELD_REGEN,SHIELD_CAP.
- Can now be an object of key-string pairs with the following attributes:
-
Shiny Sentries are now triangle.
- Not even arras.io has this fixed iirc.
-
Configuration Files.
.jsonfiles are in.jsinstead.
-
Skills now support up to 255 stat points instead of 15.
- Updated the skill upgrades UI renderer to compensate.
-
Siege
- Reworked how wave generation works.
- Spawns friendly bosses.
- Makes Healer branch accessible.
-
Changelogs are now a HTML file instead of a MD file.
-
3rd party packages.
- All NPM packages besides
wshave been optimised away.
- All NPM packages besides
-
Food evolution.
- It brings no real benefits outside of encouraging people to be selfish.
- It brings 2 real downsides of screwing up Underseer-branch and making the code terrible to read.
-
Removed skill bleeding, aswell as other redundant functions.
- They did nothing of value anyway.
-
Removed many settings that have done nothing.
public/lib/gameDraw.jsis now actually used.- Turrets no longer shoot multiple times as fast than intended.
- Entities with 0 body damage don't get assist credit when they happen to ram something as it dies.
- Entities now die if they are dead but are touching a rock.
- Gun.shootSettings no longer is tied to the gun's definition.
- Bots spawn in their team's bases if there are bases.
- Bots fire alt-fire barrels.
- Bots can now use Trapper classes.
- Dominator Game Mode.
- Doesn't kick for invalid tokens, instead just does not give any perms.
- Level Bar now shows max level if you have exactly enough score to reach that level.
- Large
SHAPEs now work.