Skip to main content
Module

x/enviromodder/Documentation.md

MapLock is a module for remapper which is definitely not a nootils clone :)
Go to Latest
File

Banner

Welcome

Welcome to MapLock! This is a package for ReMapper Statments and utils, this is definitely not a nootils clone

This package is meant to be used with ReMapper

installing

in order to install run this in your map directory terminal:

deno install --allow-all -f --reload https://raw.githubusercontent.com/Splashcard04/MapLock/main/setup/MapLock_setup.ts

then just run

MapLock_setup

that will download the files for you, now to import add this to your imports list

import * as ml from './src/exports.ts'

and that should do it for install, It may show an error inside the src folderr, I have literally no idea shy this happens but just close and re-open vsc and you will be good to go.

Updating

to update this package when another release comes out, simply delete the MapLock folder(S) and re - run MapLock_setup and that will give you the latest version!

Environment functions

despawn

import * as ml from './src/exports.ts'

//despawns the left and right pannel of the billie hud using contains
ml.yeet("Contains", [
  "BillieEnvironment.[0]Environment.[2]NarrowGameHUD.[2]RightPanel",
  "BillieEnvironment.[0]Environment.[2]NarrowGameHUD.[1]LeftPanel"
])

Despwan is extremely simple, it just takes the entirety of the bts environment and moves it way out of the player’s sight, essentially despawning the environment object. Small hint - if you want to remove the whole environment just use "Contains"and "Environment" ;)

sun

import * as ml from './src/exports.ts'

ml.sun(
   [0, 10, 30], //position
   [1, 1.5, 1], //scale
   21 //lightID,
   "billie" //environment to use
)

a sun with customizable scale and positon the environment to use could be “billie” which spawns the billie sun or “universal” which uses geometry which requires v3 to light

  • position = array
  • scale = array
  • lightID = integer
  • environment = string

clouds

import * as ml from './src/exports.ts'

ml.clouds(
   [0, 0, 0], //position
   [1, 1, 1], //scale
   [0, 90, 90] //rotation
)

clouds() is really just a dumb way to make clouds in the bts environment tbh but it does make it easier and shorter i suppose

  • position = array
  • rotation = array
  • scale = array

rain

import * as ml from './src/exports.ts'

ml.rain(21) //the light id cuz you can light rain for whatever reason

rain literallyu just makes envrionment specific billie rain

  • lightID = integer

mountains

import * as ml from './src/exports.ts'

ml.mountains(
  0, //height
  0, //y axis rotation
)

mountains spawns the mountains from the billie environment at any y level with customizable y axis rotation

  • height = number
  • rotation = number

laserfeild

import * as ml from './src/exports.ts'

ml.laserfeild(
  0, //height
  21, //minimum lightID
  21, //ammount
  false //allows rotation?
)

NOTE IDmin will be the first light ID a laser is registered to, meaning that if IDmin was 21 and my ammount was 7 my light IDs would be 21, 22, 23, 24, 25, 26, 27, 28. allowRotation allows rotation of -20 - 20 on the x and z axis, IF you want the lasers to be straight up and down, just leave this to false.

  • height = number
  • IDmin = integer
  • ammount = integer
  • allowRotation = boolean

object statments

stars

import * as ml from './src/exports.ts'

ml.stars(
  580, //ammount
  0.2, //individual size
  100, //distance
  0, //time
  100 //duration
)

Spawns a sphere of stars around the player using walls (could cause small ammounts of lag)

  • ammount (the ammount of stars to spawn) = number
  • individual size (the size of each star) = number
  • distance (the distance between eac star) = number
  • time (the time to spawn the stars) = number
  • duration (the duration the stars will last) = number

misc

NoteFilter

import * as ml from './src/exports.ts'

ml.noteFilter(
    0, //time start
    100, //duration
    [//positions to select
        [0, 0],
        [0, 1]
    ],
    {//custom data feild
        _dissolve: [[0, 0], [1, 0.4]]
    }
)
  • time Start = number
  • Duration = number
  • position = array
  • CustomData = basically just like noodle scripting in js idk

player movment

import * as ml from './src/exports.ts'

ml.animatePlayer(
    0, //time
    100, //duration
    [[0, 0, 0, 0], [0, 100, 0, "easeInOutElastic"]]//position animation but please never use this one lol
)

This will move the player, but the exiting part is - no extra parent track needed - this will move the player and the notes together!

  • time = number
  • duration = number
  • position = array

LRnotes

import * as ml from './src/exports.ts'

ml.LRnotes(
    0, //time
    100, //duration
    { //left note customData
        _dissolve: [[0, 0], [1, 0.5]]
    },
    { //right note customData
        _dissolve: [[1, 0], [0, 1]]
    }
)

LRnotes filters the left and the right notes so you can make path animations easier or anything else if you want to,

  • time = number
  • duration = number
  • left note customData = basically just like noodle scripting in js idk
  • right note customData = basically just like noodle scripting in js idk

future

I’m exited to say, that sometime in the future when v3 modcharts are more relevant (v3 allows for geometry lighting) that I will be using a lot more geometry lights making them all compatible, but for now sit tight and listen to the other updates I have planned.

  • all environment support for (almost) all functions. I am planning to utilize geometry to the best of my ability to make some of these avalible for all environments
  • more object functions!!!