Route guide

Nova replaces the traditional eggids/nestids system with route conditions.

To get started with route conditions, locate and uncomment this import at the top of resources/scripts/routers/routes.ts:

// [*] Uncomment the import below if you want to use conditions!
// import { isNest, isEgg, and, or } from '@/lib/nova/conditions';

How to use them?

Typically, whenever you're instructed to add a line such as:

eggids: [12, 34],
eggid: 12,

You instead add:

condition: isEgg(12, 34),
condition: isEgg(12),

The same is true for nests. Instead of adding nestid/nestids, use isNest(...).

If you want to combine multiple conditions together, it's very easy to do so. For example, to show a route only on servers with a nest ID of 1 and an egg ID of 2:

condition: and(isNest(1), isEgg(2)),

Likewise, to show a route on servers with a nest ID of 1 or with an egg ID of 2:

condition: or(isNest(1), isEgg(2)),

Custom conditions

If you want to create your own conditions, it is very easy to do so. Conditions are functions that take in no arguments and which return a boolean.

You can use any React hooks in a condition. For example, to show a route only on servers whose name starts with an 'A', you could use the following condition:

const onlyAs = () =>
  ServerContext.useStoreState((state) => state.server.data?.name)?.startsWith(
    "A",
  ) ?? false;

Then you can add this condition onto any route:

condition: onlyAs,