promotional bannermobile promotional banner

Iskandert's Library

A library of functions used primarily by Iskandert's Team mods

Iskandert-Library — Features Overview

This library contains reusable building blocks used across projects in the Iskandert ecosystem. It focuses on practical gameplay systems (structures, stages, markers, shops/teams) and developer utilities (parsing helpers, transfer bridging, debug tools).

Usage and licensing

The project is released under the MIT License. You are free to use it in your projects (including modifying, redistributing, and using it commercially), as long as the license notice is preserved.

What’s included

Structure system (JSON-driven)

Utilities for defining and placing structures using external JSON definitions:

  • Structure definitions: patterns, block keys, replacement rules, and options like force/overwrite.
  • Config scanning & loading: discovery of structure JSON files and runtime registration.
  • Placement engine: places structures in-world with validation, property application, and optional behaviors (e.g. “place as player”, refresh ticks).
  • Undo history: lightweight per-player placement history with undo support.

Key packages/classes:

  • net.unfamily.iskalib.structure.StructureDefinition
  • net.unfamily.iskalib.structure.StructureLoader
  • net.unfamily.iskalib.structure.StructurePlacer
  • net.unfamily.iskalib.structure.StructurePlacementHistory

Stage system (player / world / team)

A generic “stage” registry designed to gate content and track progression across different scopes:

  • Player stages: persistent per-player stage flags.
  • World stages: global flags stored in world saved data.
  • Team stages: stage flags shared by a team, stored in world saved data.
  • Hooks and listeners: integration points for reacting to stage changes.

Key packages/classes:

  • net.unfamily.iskalib.stage.StageRegistry
  • net.unfamily.iskalib.stage.StageHooks
  • net.unfamily.iskalib.stage.StageActionHooks

Team support (shared balances / membership)

Team management for grouping players and sharing balances:

  • Create/delete teams
  • Manage membership and roles
  • Track and query per-team currency balances

Key packages/classes:

  • net.unfamily.iskalib.team.ShopTeamManager

Shop currency integration hooks

The library stores balances by currency id but does not hardcode a currency catalog. Consumers can provide metadata and suggestions:

  • Currency id listing for command autocompletion and UIs
  • Currency display metadata (translation key, symbol) when available

Key packages/classes:

  • net.unfamily.iskalib.shop.ShopCurrencyHooks

World marker utilities (client-side)

Developer-focused marker rendering and helpers, useful for debugging areas, selections, scans, and automation:

  • Marker rendering for blocks
  • Billboards for positions
  • Runtime sessions (non-persistent) for cleaning/reset behavior
  • Debug command entrypoint for creating/clearing markers

Key packages/classes:

  • net.unfamily.iskalib.client.marker.MarkRenderer
  • net.unfamily.iskalib.client.marker.VanillaWorldMarkerClientHooks
  • net.unfamily.iskalib.marker.MarkerSession
  • net.unfamily.iskalib.command.MarkerCommand

Progressive explosion system (server-side)

A modular, lag-friendlier explosion implementation that can run progressively over time:

  • Elliptical/horizontal+vertical radius explosions
  • Tick-based processing (or instant execution when interval is zero)
  • Optional entity damage and “break unbreakable” mode
  • Central registry of active explosions with stop/introspection helpers

Key packages/classes:

  • net.unfamily.iskalib.explosion.ExplosionSystem

Item string parsing and conversion utilities

Helpers for converting “item argument” strings into ItemStack (and back), matching the shape accepted by /give:

  • Parse minecraft:item_id as well as bracketed component syntax like minecraft:item[component=value,...]
  • Validate user-provided item strings for configs/commands
  • Format an ItemStack into an item-argument string (id + component patch)

Key packages/classes:

  • net.unfamily.iskalib.item.ItemConverter

Transfer bridging (automation compatibility)

Bridges legacy item handlers to NeoForge’s item transfer capability:

  • Wraps IItemHandler as a transactional ResourceHandler<ItemResource>
  • Uses snapshot journals for rollback when possible (IItemHandlerModifiable)

Key packages/classes:

  • net.unfamily.iskalib.transfer.LegacyItemHandlerResourceHandler

Debug helpers and commands

Small, focused utilities intended for development and troubleshooting:

  • Hand/item dump helpers
  • Debug commands for marker/stage workflows

Key packages/classes:

  • net.unfamily.iskalib.debug.HandItemDump
  • net.unfamily.iskalib.command.IskaLibDebugCommand
  • net.unfamily.iskalib.command.StageCommand

The Iskandert's Library Team

profile avatar
  • 2
    Followers
  • 11
    Projects
  • 3.4M
    Downloads

More from UnfamilyView all