Skip to content

CBodirsky/AssetRush

Repository files navigation

Asset Rush

A data‑driven trading prototype built on top of a tycoon framework.

Asset Rush is a systems‑focused Roblox prototype exploring deterministic pricing, data‑driven item definitions, real‑time UI synchronization, and server‑authoritative inventory management. The project sits on top of a lightweight tycoon framework and layers a fully custom market system, display system, and inventory system on top.

This repository contains the core logic behind the trading economy — not the full game — and is intended as a portfolio showcase of engineering patterns, architecture, and system design.

Project Overview

Asset Rush simulates a small, fast‑moving marketplace where item prices fluctuate on fixed intervals. All servers generate identical prices using deterministic seeds, eliminating the need for cross‑server communication. Players can buy and sell items, watch prices rise and fall in real time, and manage a slot‑based inventory.

This repo includes:

Deterministic pricing engine

Epoch‑aligned timer system

Data‑driven item definitions

Real‑time display and UI updates

Server‑authoritative inventory system

Integration with an inherited tycoon framework

Experimental prototypes and scaffolding for future features

It intentionally excludes:

Assets

UI

Models

Place files

Proprietary content

Only the logic is included.

Architecture Overview Code

src/ Server/ Core/ -- inherited tycoon framework + bootstrap InventorySystem/ -- slot-based inventory MarketSystem/ -- pricing, timers, item metadata API/ -- server endpoints for client UI Client/ DisplaySystem/ -- model injection, price labels, timers

Core Concepts

Data‑driven design: Items, prices, intervals, and display metadata live in structured tables.

Deterministic randomness: All servers generate identical prices using epoch‑aligned seeds.

Separation of concerns: Pricing, display, inventory, and player lifecycle are isolated modules.

Extensibility: Systems are modular and easy to expand (new items, strategies, intervals, etc.).

Market System Deterministic Pricing

The pricing engine uses:

epoch (aligned to interval boundaries)

itemId hashing

strategy‑based distribution shaping

This ensures:

all servers produce identical prices

no cross‑server locking is required

prices feel dynamic but predictable

Key files:

ItemManager.lua Generates deterministic prices per item and per group.

PriceSeedStrategy.lua Strategy-based price shaping (uniform, steady, bipolar).

TimerManager.lua Epoch-aligned refresh scheduling.

ItemDefinitionsList.lua Metadata for all items (min/max, strategy, display info).

TimerIntervals.lua Centralized refresh intervals.

GlobalPriceStore.lua Optional DataStore persistence (not required for determinism).

TimerLockPrototype.lua Early experiment with cross-server locking (deprecated).

Inventory System

A server‑authoritative, slot‑based inventory system that tracks:

itemId

purchase price

rarity flags

timestamps

max slot limits

Key file:
InventoryService.lua

This system is intentionally simple but fully extensible for future upgrades (e.g., housing, expansions, rebirth bonuses). Display System

The display layer dynamically assembles TradeStands and item visuals based on metadata, and updates UI elements in real time.

Highlights:

Injects item models into the world

Sets name and price labels

Flashes green/red on price changes

Updates countdown timers

Uses Formatting utilities for consistent currency display

Key files:

InjectModels.lua Places item models and updates price labels.

PanelBuilder.lua Builds TradeStand models from definitions.

TimerDisplays.lua Updates countdown timers.

Formatting.lua Currency formatting utilities.

Core Framework (Inherited)

The project uses a lightweight tycoon framework for:

spawn ownership

unlockable components

rebirth/reset logic

player lifecycle

component-based behaviors via CollectionService tags

These files are not the focus of the repo but are included for context.

Key files:

Tycoon.lua Core tycoon instance logic (inherited).

PlayerManager.lua Player data, leaderstats, gamepasses (inherited).

Server.lua Bootstrap and tycoon assignment.

ProductHandler.lua Placeholder for future monetization.

Experimental / Prototype Code

The repo includes early experiments that were replaced by better designs. These are included intentionally to show engineering reasoning.

TimerLockPrototype.lua — attempted cross‑server locking using MemoryStore

Replaced by deterministic pricing

These files demonstrate your ability to iterate, test ideas, and pivot to simpler, more reliable solutions. Technical Highlights

Deterministic pricing across all servers

Epoch-aligned timers for predictable refresh cycles

Strategy-based price shaping using math functions

Data-driven item definitions for easy expansion

Real-time UI synchronization with TweenService feedback

Server-authoritative inventory with slot limits

Clean client/server API boundaries

Integration with an existing framework without breaking architecture

Purpose of This Repository

This repo is a portfolio showcase of:

system design

modular architecture

deterministic algorithms

clean Lua engineering

integration with existing frameworks

thoughtful iteration and refactoring

It is not a full game release and intentionally omits assets and proprietary content.

About

Roblox trading game prototype, applying deterministic pricing, data-driven item definitions, real-time UI synchronization, and server-authoritative inventory management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages