# Migrating to version 0.15 (from 0.14) ###### tags: `docs` - [TODO schema "proxy" accessor deprecated]() - [TODO .auth is gone! no more @colyseus/social built-in]() - [TODO reconnection token]() - [`@colyseus/loadtest` changes]() - [`@colyseus/command` changes]() ## ... - Schema, TypeScript, "proxy" accessors have been deprecated. - Reconnection token ## `@colyseus/loadtest` has been reworked! The loadtest tool has been reworked to allow for more complex scripting, so your loadtest scripts will need to be slightly rewritten, as the new format looks like this: ```typescript import { Client, Room } from "colyseus.js"; import { Options } from "@colyseus/loadtest"; export async function main(options: Options) { const client = new Client(options.endpoint); const room: Room = await client.joinOrCreate(options.roomName, { // your join options here... }); console.log("joined successfully!"); room.onMessage("message-type", (payload) => { // logic }); room.onStateChange((state) => { console.log("state change:", state); }); room.onLeave((code) => { console.log("left"); }); } ``` ## `@colyseus/command` On latest version of `@colyseus/command` (`0.2.0`), instead of providing the state as a generic when extending the `Command`, you now provide your whole `Room` type: ```typescript import { Command } from "@colyseus/command"; export class MyRoom extends Room<State> { // ... } export class MyCommand extends Command<MyRoom> { // ... } ```