Amiga-Z Wiki

β€œModern tools for old-school communities.”

User Tools

Site Tools


projects:faserip

This is an old revision of the document!


FASERIP Online β€” Game Master & Artist Guide

Last updated: February 2026 β€” v1.0

This page covers everything a Game Master needs to run the game, how to build missions, and a complete guide for artists replacing placeholder graphics with original artwork.


Table of Contents

Game Master Overview

The Game Master (GM) controls the world that players explore. As GM you are responsible for:

  • Populating zones with NPCs (villains, allies, neutrals)
  • Writing and publishing missions for players to undertake
  • Balancing difficulty so both new and experienced heroes are challenged
  • Advancing the story of the city over time

There is currently one GM account per server. The GM flag is set directly in the database:

sqlite3 /var/www/html/amigaz/games/faserip/superhero_mmo.db \
  "UPDATE users SET is_gm = 1 WHERE username = 'yourusername';"

Log out and back in after running that command. The 🎭 GM Tools button will appear in the top-right of the game HUD.


Accessing GM Tools

  1. Log in with your GM account
  2. Create or select a character (you still need one to enter the game world)
  3. Once on the city map, click 🎭 GM Tools in the HUD
  4. A modal window opens with two tabs: Create NPC and Create Mission

GM Tools button location β€” top right of HUD

Tip: You can have the GM Tools modal open while watching the live map. Other players' movements are visible in real time behind the modal.

Creating NPCs

NPCs (Non-Player Characters) are the villains, allies, and bystanders that populate the city. Every NPC has a full set of FASERIP stats just like a player character.

Step by Step

  1. Open 🎭 GM Tools
  2. Make sure the Create NPC tab is active
  3. Fill in all fields (described below)
  4. Click Create NPC

NPC Fields

Field Description Notes
NPC Name The character's name as it appears in-game Keep it memorable. E.g. β€œDoctor Vex”, β€œStreet Thug”
Description Background, appearance, motivation Players may see this when they investigate a building
Fighting Combat skill and martial ability Controls hit chance in melee
Agility Speed, reflexes, acrobatics Affects dodge and initiative
Strength Physical power Determines melee damage and lifting
Endurance Stamina and toughness Used to calculate max Health
Reason Intelligence, problem solving Affects tactical decisions
Intuition Awareness, initiative Higher = acts earlier in combat
Psyche Mental fortitude, willpower Resistance to mental powers
Villain/Enemy Checked = hostile to players Uncheck for allies and neutrals
Zone Which city district the NPC appears in Must match a zone players can visit

FASERIP Rank Quick Reference

Rank # Name Numeric Value Suggested Use
1 Feeble 2 Civilians, minions
2 Poor 4 Street level thugs
3 Typical 6 Average trained criminal
4 Good 10 Experienced street villain
5 Excellent 20 Minor supervillain
6 Remarkable 30 Serious threat
7 Incredible 40 Major villain
8 Amazing 50 Boss-level threat
9 Monstrous 75 Top tier villain
10 Unearthly 100 Near-cosmic power

Example NPC β€” Street Thug

Name:        Street Thug
Description: Low-level criminal. Works for hire. Not bright, but dangerous in numbers.
Fighting:    Poor (2)
Agility:     Typical (3)
Strength:    Typical (3)
Endurance:   Typical (3)
Reason:      Poor (2)
Intuition:   Typical (3)
Psyche:      Poor (2)
Villain:     Yes
Zone:        Warehouse District

Example NPC β€” Doctor Vex

Name:        Doctor Vex
Description: Disgraced chemist turned supervillain. Controls molecular bonds.
             Wears a silver containment suit. Ruthless and calculating.
Fighting:    Good (4)
Agility:     Excellent (5)
Strength:    Good (4)
Endurance:   Remarkable (6)
Reason:      Incredible (7)
Intuition:   Excellent (5)
Psyche:      Remarkable (6)
Villain:     Yes
Zone:        Industrial Zone

Health & Karma Calculation

These are calculated automatically when you save the NPC, but here is the formula for planning:

  • Health = Strength value + Endurance value
  • Karma = Reason value + Intuition value + Psyche value

Example: Doctor Vex has Strength Good (10) + Endurance Remarkable (30) = 40 Health


Creating Missions

Missions give players goals to pursue in the city. A good mission tells a story, creates tension, and rewards effort.

Step by Step

  1. Open 🎭 GM Tools
  2. Click the Create Mission tab
  3. Fill in all fields (described below)
  4. Click Create Mission
  5. The mission will immediately appear for players in the chosen zone when they click on buildings or open the Missions panel

Mission Fields

Field Description Notes
Mission Title Short, punchy name E.g. β€œTrouble at the Docks”, β€œThe Vex Gambit”
Description Full mission briefing This is what players read. Set the scene!
Zone Which district the mission takes place in Players must be in this zone to see it
Difficulty 1 (Easy) to 5 (Extreme) See difficulty guide below
Objectives One objective per line Each line becomes a checklist item
Experience Reward XP awarded on completion See XP guide below

Difficulty Guide

Difficulty Stars Recommended For Suggested NPC Ranks
1 ⭐ Brand new heroes, solo play Feeble to Poor
2 ⭐⭐ New heroes with some experience Poor to Typical
3 ⭐⭐⭐ Experienced heroes or small groups Good to Excellent
4 ⭐⭐⭐⭐ Veteran heroes, team recommended Remarkable to Incredible
5 ⭐⭐⭐⭐⭐ Elite heroes only, major story event Amazing and above

Experience Reward Guide

Difficulty Suggested XP Notes
1 β€” Easy 50–100 Introductory missions
2 β€” Moderate 100–200 Standard missions
3 β€” Challenging 200–350 Requires effort
4 β€” Hard 350–500 Significant challenge
5 β€” Extreme 500–1000 Reserved for major story events

Writing Good Objectives

Objectives should be specific and actionable. Write one per line in the Objectives field.

Good objectives:

Locate the source of the chemical leak
Defeat the security robots guarding the lab
Find and recover the stolen isotope container
Escape before the building detonates

Avoid vague objectives:

Do stuff at the factory     ← too vague
Win                         ← meaningless

Example Mission β€” Difficulty 2

Title:       Trouble at the Docks
Zone:        Waterfront
Difficulty:  2

Description:
  An anonymous tip-off warns of a late-night cargo delivery that isn't
  on any manifest. Coast Guard is stretched thin. It's up to you.
  Dock workers have been acting scared. Something is wrong down there.

Objectives:
  Investigate the suspicious warehouse on Pier 7
  Interrogate the dock foreman
  Defeat the smuggling crew (3–5 thugs)
  Recover the stolen medical supplies

XP Reward:   150

Example Mission β€” Difficulty 4

Title:       The Vex Gambit
Zone:        Industrial Zone
Difficulty:  4

Description:
  Doctor Vex has seized control of the Northside Power Station.
  He's threatening to destabilize the city grid unless his demands
  are met. SWAT is pinned down at the perimeter. You're going in.
  Watch out β€” he's built defensive turrets and has hired backup.

Objectives:
  Breach the power station perimeter
  Neutralize Doctor Vex's mercenary guards
  Shut down the molecular destabilizer (Reason FEAT required)
  Defeat Doctor Vex
  Restore power to the grid before the backup timer expires

XP Reward:   450

Mission Design Tips

  • Layer your objectives. Mix combat (defeat enemies), exploration (find X), and skill-based tasks (Reason FEAT to hack terminal) for variety.
  • Match NPCs to the zone. Waterfront missions should have dock workers and smugglers. Industrial missions should have mercenaries and robots.
  • Use the description to set tone. Players read this before they accept. Make it feel urgent and interesting.
  • Escalate across a series. Start players with Difficulty 1–2 missions and build toward a Difficulty 5 story event.
  • Leave hooks. End descriptions with an unanswered question to encourage follow-up missions. β€œβ€¦but who hired them?”
  • Reward exploration. Create missions in every zone so players have reason to travel.

Zone Reference

Zone ID Display Name Tone Best Mission Types
central_city Central City Civic, high-profile Bank robberies, political threats, public events
warehouse_district Warehouse District Gritty, criminal Smuggling, gang wars, hideout raids
downtown Downtown Urban, civilian-heavy Shopping mall heists, hostage situations
industrial_zone Industrial Zone Dangerous, technical Factory sabotage, chemical threats, robots
waterfront Waterfront Noir, smuggling Drug/weapons smuggling, piracy, dock raids

Buildings available per zone are defined in game.js inside the CITY_BUILDINGS object. Each building has an id, name, type, x/y position, icon, and color. New buildings can be added there by editing the array.


Adding Buildings to the City Map

Buildings are defined entirely in game.js β€” no database or server restart required. You can add as many as you like to any zone by editing the CITY_BUILDINGS object. See the standalone reference page for full details:

β†’ Adding & Configuring City Buildings

Quick Reference

Each building entry looks like this:

{ id: 'my-building', name: 'My Building', type: 'warehouse',
  x: 200, y: 150, icon: 'πŸ—οΈ', height: 120, color: '#3a2a1a' }
Field Description
id Unique identifier β€” no spaces, use hyphens. Must be unique across ALL zones
name Display name shown on hover and in the location panel
type Controls description text shown to players. See type list on the buildings page
x Horizontal position in pixels from the left edge of the map canvas
y Vertical position from the top. The horizontal road sits at y:220, vertical road at x:430
icon Any emoji β€” will be replaced by original art later
height Building height in pixels. Range 60–240 works well
color Hex color for the building face. Dark tones read best on the night-sky background

The map canvas is 900 Γ— 520 px. Buildings are 130 px wide and labels extend 30 px below the base. After editing, just refresh the browser β€” no server restart needed.


Art Replacement Guide

The current game uses emoji and CSS-generated shapes as placeholder art. All of these are designed to be swapped out for original artwork at any time. This section tells artists exactly what to create and at what size.

General Principles

  • All images should be PNG format with transparent backgrounds unless noted
  • Use pixel art or comic book illustration style to match the game aesthetic
  • The game uses a dark color palette β€” art should be designed to read well on dark backgrounds
  • Retina/2x versions are recommended β€” create at 2Γ— size and let CSS scale down

Element Pixel Dimensions

1. Building Icons

Each building currently shows a large emoji (🏦 🏭 βš“ etc.) centred on the building face.

Element Recommended Size Format Notes
Building icon 96 Γ— 96 px (display: ~40px) PNG, transparent One icon per building type. See type list below.
Building icon @2x 192 Γ— 192 px PNG, transparent For retina displays

Building types needing icons:

government    (City Hall)
bank          (Central Bank)
police        (Police HQ)
hospital      (City Hospital)
plaza         (Central Plaza)
residential   (Apartments, towers)
media         (News station)
education     (Library)
warehouse     (Storage buildings)
criminal      (Chop shop, hideout)
villain-lair  (Evil lair β€” make it look ominous!)
transport     (Rail yard, docks)
factory       (Industrial buildings)
utility       (Power station)
science       (Research lab)
underground   (Sewer access)
junkyard      (Scrapyard)
market        (Fish market, shops)
restaurant    (Dining)
office        (Corporate towers)
hotel         (Grand Hotel)
sports        (Stadium)
museum        (City Museum)
docks         (Shipping)
landmark      (Lighthouse)

To swap an icon, in game.js find the building entry and change the icon field from an emoji to an image tag, then update createBuildingEl() to render <img> instead of textContent.


2. Building Facade Texture

The building face (the main rectangle) is currently a CSS gradient. It can be replaced with a tiled or stretched texture image.

Element Recommended Size Format Notes
Building facade tile 130 Γ— 200 px PNG or JPEG Tiled vertically for taller buildings
Window sprite sheet 80 Γ— 60 px (4 frames) PNG, transparent Rows: lit / dim / off / flickering

Each building's facade is rendered at 130 px wide and a variable height defined by the height property in CITY_BUILDINGS (range: 60 px – 240 px).


3. Player Character Avatars

Heroes currently display as the 🦸 emoji. These will be replaced with actual character sprites.

Element Recommended Size Format Notes
Hero avatar (standing) 44 Γ— 44 px PNG, transparent Base display size on map
Hero avatar @2x 88 Γ— 88 px PNG, transparent Recommended source size
Hero avatar (walking, 4 frames) 88 Γ— 88 px per frame PNG spritesheet Future animation β€” 4 frames horizontal
Other player avatar 44 Γ— 44 px PNG, transparent Slightly different pose/colour from self

Avatar colors should distinguish your hero (warm/gold tones) from other players (cool/blue tones) at a glance.

To replace avatars, in game.js find createAvatarEl() and change the el.textContent line to set el.innerHTML with an <img> tag instead.


4. Mini-Map Building Dots

The mini-map shows tiny colored rectangles for each building. These can be replaced with small icon sprites.

Element Recommended Size Format Notes
Mini-map building icon 14 Γ— 14 px PNG, transparent Tiny silhouette, one per building type
Mini-map player dot 8 Γ— 8 px PNG or CSS circle Green for self, blue for others

5. HUD Elements

Element Recommended Size Format Notes
Health bar fill texture 1 Γ— 18 px (tiled) PNG Tiled horizontally, replaces CSS gradient
Karma bar fill texture 1 Γ— 18 px (tiled) PNG Tiled horizontally
HUD background panel full width Γ— 80 px PNG or SVG Replaces CSS gradient header
Zone name banner 300 Γ— 36 px PNG, transparent Replaces text-only zone label

6. Street / Road Textures

Roads are currently CSS-drawn rectangles with dashed lines.

Element Recommended Size Format Notes
Road horizontal tile 60 Γ— 38 px PNG Tiled horizontally across full width
Road vertical tile 38 Γ— 60 px PNG Tiled vertically
Intersection tile 38 Γ— 38 px PNG Placed at road crossing point
Road marking (dash) 30 Γ— 3 px PNG, transparent Centre line dash

Roads are rendered inside drawStreets() in game.js. Replace the div background styles with background-image CSS pointing to your texture files.


7. Background / City Atmosphere

Element Recommended Size Format Notes
City sky background 1920 Γ— 520 px JPEG or PNG Dark night city skyline, parallax layer
Ground tile 40 Γ— 40 px PNG Repeating city ground texture
Atmospheric overlay 1920 Γ— 520 px PNG, 30% opacity Fog, smog, or comic halftone effect

The city map background is set via CSS on .city-map-container. Replace the current background gradient lines with background-image: url(…) for your artwork.


8. UI Panels & Modals

Element Recommended Size Format Notes
Location panel background 310 Γ— auto px PNG, 9-slice or scalable Replaces dark gradient box
Modal background 620 Γ— auto px PNG, 9-slice Comic book panel border style recommended
Button normal state 200 Γ— 50 px PNG, 9-slice Replaces CSS gradient button
Button hover state 200 Γ— 50 px PNG, 9-slice Brighter or shifted version
Activity log panel 300 Γ— full height px PNG, tiled vertically Dark sidebar

9. Zone Map Thumbnail (future)

When zone travel is implemented as a full visual screen, each zone will need a preview image.

Element Recommended Size Format Notes
Zone thumbnail 400 Γ— 250 px JPEG Bird's eye illustration of the zone
Zone thumbnail hover 400 Γ— 250 px JPEG Brighter/highlighted version

Replacing Elements β€” General Process

  1. Create your artwork at the recommended size
  2. Upload to /var/www/html/amigaz/games/faserip/public/images/ (create this folder if it doesn't exist)
  3. Edit styles.css to reference the image file instead of the CSS color/gradient
  4. Edit game.js for any elements generated in JavaScript (avatars, building icons, etc.)
  5. Clear browser cache and test (Ctrl+Shift+R)

Folder Structure Recommendation

public/
  images/
    buildings/
      bank.png
      police.png
      hospital.png
      villain-lair.png
      ... (one per building type)
    avatars/
      hero-self.png
      hero-other.png
    ui/
      hud-bg.png
      location-panel-bg.png
      modal-bg.png
      btn-normal.png
      btn-hover.png
    map/
      road-h.png
      road-v.png
      intersection.png
      city-sky.png
      ground-tile.png
    icons/
      minimap-bank.png
      minimap-police.png
      ... (one per building type)

Notes for Future Development

  • When the Ultimate Powers Book integration is added, each power will need a 32 Γ— 32 px icon sprite
  • Combat will eventually need hit effect sprites (explosion, zap, etc.) β€” plan for 64 Γ— 64 px animated PNG or spritesheet
  • Character creation will add a costume builder β€” plan for modular body part sprites at 200 Γ— 300 px per part
  • The city will eventually support building interiors β€” each interior will need a background scene at 900 Γ— 520 px
  • Make battles feel like JRPG style

FASERIP Online is a fan project. Marvel Superheroes and the FASERIP system are the property of their respective copyright holders. All original code and art in this project are independent works.

projects/faserip.1773942327.txt.gz Β· Last modified: by freedomotter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki