Skip to content

flowrix-io/florr_clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

890 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

florr.io clone

A browser-based multiplayer survival game inspired by florr.io.

License notice: As of July 2026 this project is licensed under the GNU General Public License v3.0 or later (previously ISC). If you distribute this software or a modified version of it, you must do so under the same license and make the corresponding source code available.

Quick start

Requires Node.js 22+

npm install
npm run build   # builds cpp, webpacks the client, compresses bundle
npm start       # compiles the server and runs dist/server.js

Open https://localhost:3000.

Scripts

Script Purpose
npm run build Build cpp module, bundle client (production), compress bundle
npm run build:server TypeScript compile of the server only
npm run build:client TypeScript compile of the client only
npm start Build server and run dist/server.js
npm run dev Webpack dev watch
npm run dev:server Run server under ts-node-dev

Biomes

The world is divided into biomes (ocean, desert, jungle, etc.) with their own mobs, rarities, and scaling. Biome maps are created in MapEditor.html and loaded from JSON (see map.json, example_biome_map.json).

Rarities

common, uncommon, rare, epic, legendary, mythic, ultra, super, unique and apex.

Features

  • Multiplayer via raw WebSockets, with cross-server portals for transferring between server instances(server transfer disabled in default map)
  • Biome system with per-biome mob pools, spawners, and scaling
  • Petal crafting across the rarity ladder
  • Guilds & squads, chat, and a leaderboard
  • PvP arena with dedicated spawner and rendering
  • Bots for populating servers
  • Daily streak rewards and a tutorial flow for new players
  • Map editor (MapEditor.html) for authoring biome layouts
  • Persistence via custom JSON database
  • HTTPS support (drop cert.crt / cert.key at the project root)

Chat commands

Players:

  • /help — list available commands
  • /list_all, /list_common, /list_uncommon, /list_rare, /list_epic, /list_legendary, /list_mythic, /list_ultra, /list_super, /list_unique — list mobs of the given rarity

Chat accepts limited inline HTML: <b>, <i>, <u>, <span style="color:…">, <blink>.

Admin

Flag a user as admin by setting "admin": true on their record in dist/inventory.json (or the SQLite row). Admins can run server commands from chat with /admin <cmd> or /cmd <cmd>. Non-admins attempting admin commands get "Command does not exist". All admin invocations are logged server-side.

Server console / admin commands

Typed on the server's stdin, or via /admin in chat:

  • save / save <playerId> — persist player progress
  • list-players, list-sockets — enumerate connections
  • spawn <mobType> <rarity> [x y] — spawn a mob (e.g. spawn hornet legendary 1000 2000)
  • spawn_special_mobs — spawn ultra/super/unique tiers
  • set_max_enemies <n> — cap concurrent enemy count

Mob types include: bee, hornet, mantis, ladybug, soldier_ant, leafbug, bush, target_dummy, item_spawner. See src/mobs.ts for the current list.

Project layout

src/
  server.ts, server/        # server entry + managers (players, enemies, guilds, squads, bots, cross-server)
  game.ts, player.ts        # client game loop and player state
  graphics/                 # rendering (flower, enemies, panels, minimap, effects)
  petals.ts, petal_action/  # petal configs and per-petal behaviors
  mobs.ts, enemy.ts         # mob definitions and AI
  inventory.ts, shop.ts     # inventory, crafting, shop
  chat.ts, guildMenu.ts     # chat and guild UI
  map_data.ts               # biome/map loading
  database.ts               # JSON persistence
  ws_client.ts, ws_server.ts, signaling.ts  # networking
cpp/                        # native physics module (built with make)
assembly/                   # AssemblyScript sources
assets/                     # images and SVGs
scripts/                    # build helpers (e.g. compressbundle.js)
MapEditor.html              # standalone biome map editor

Stack

TypeScript, Canvas 2D, Socket.IO + ws, Express, better-sqlite3, Webpack

Set up production server

Make sure you have PM2 installed Paste update_aws.sh contents into terminal

Update production server

Run "/admin update" in server chat

License

Copyright (c) 2026 sussybite8888

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for the full text.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Versions of this project prior to the relicense were distributed under the ISC License.

Releases

Packages

Contributors

Languages