Skip to content

How Hard Is It?

Estimating the difficulty of a modding task can be deceptive. A result which is easy to describe may still be difficult to produce. With Star Rod’s patch-based workflow, technical difficulty usually depends on how closely the task matches something Paper Mario already does. Replacing or repurposing existing functionality is much easier than building new behavior, which may require a deep understanding of the engine or changes better suited to projects using the decompiled source.

The categories below account for both technical complexity and the amount of work involved.

RatingUsual scope
BeginnerBasic edits to existing assets, often using one of Star Rod’s editors.
NoviceSmall additions to existing content made by copying established patterns.
IntermediateRoutine work for proficient modders, such as creating complete pieces of content.
AdvancedDifficult, time-consuming, or high-effort work coordinating multiple systems and types of content.
ExpertImpressive achievements, rarely completed. Other modders may wonder how you did it.
I want to…The work usually involvesStart with
Change dialogue, a tattle, or menu textEditing or replacing an existing message in String Editor.Your First Change
Change an item’s name, description, or recovery amountEditing its messages and item table entry in Globals Editor.Editing Items
Change a move’s name, description, or FP costEditing its messages and global move entry in Globals Editor.Adding a Move
Replace an existing iconReplacing its PNG or changing the image definition which refers to it.Working with Images
Move, edit, or retexture existing map geometryEditing the map in the Map Editor.Adding and Editing Maps
Change an enemy actor’s HP or defensePatching the relevant fields in its actor data.Scripting a Battle
Adjust an existing actor moveChanging values in an existing attack script.Scripting a Battle
I want to…The work usually involvesStart with
Create new geometry in an existing mapAdding models, colliders, and zones in the Map Editor. Script references may need updating if existing map objects are renamed or reordered.Adding and Editing Maps
Add a block or other entity to a mapAdding a marker in the Map Editor and creating the entity from the map patch. Some entities also need scripts or saved flags.Scripting a Map
Script a basic exit between two mapsAdding the exit trigger and transition script, then setting up the corresponding entry in the destination map.Scripting a Map
Add a friendly NPC which uses an existing spriteAdding an NPC marker, settings, scripts, an NPC structure, and a group-list entry.Scripting a Map
Change the enemies in an existing battle formationEditing the formation while retaining its established table entry.Scripting a Battle
Add a battle formation using existing enemies from the same sectionAdding the formation and assigning it a slot in the section’s formation table.Scripting a Battle
Add a new move for an actorAdapting a mechanically similar attack script and calling it from the actor’s turn script.Scripting a Battle
Add rasters or animations to an existing player or NPC spriteExtending the existing sprite sheet without changing established indices.Adding Sprites
Add a sound effect which uses an existing instrumentAssigning an unused sound ID, defining its program and routing, then rebuilding the sound-effect archive.Adding a Sound Effect
I want to…The work usually involvesStart with
Script a cutscene or complex NPC interactionCoordinating dialogue, movement, camera changes, player control, NPC state, and any flags needed afterward.Event Script Overview
Create a new mapCreating its geometry, then implementing its scripts, entries, exits, and other map data.Adding and Editing Maps
Add an enemy encounter to a mapAdding an overworld enemy NPC import and setting up its encounter data.Scripting a Map
Add a new stageCreating its geometry, then adding its stage structures and table entry to a battle section.Adding and Editing Maps
Add a new enemy actorAdapting the actor data, parts, and battle scripts of a mechanically similar enemy, then adding its sprite and formation.Scripting a Battle
Add an item which behaves like an existing itemAdding its messages, image, item table entry, and any existing battle-item or badge connection it reuses.Editing Items
Change the behavior of an existing moveReplacing its battle script while retaining the global entry and working action sequence.Adding a Move
Add a new spriteCreating rasters, palettes, and animations.Adding Sprites
Add a new instrumentPreparing the WAV, assigning a bank slot, configuring tuning and envelopes, rebuilding the bank, and making it available where it will play.Adding a New Instrument
I want to…The work usually involvesStart with
Create an interconnected series of maps, such as a dungeonCoordinating map geometry, entries, exits, encounters, puzzles, saved state, and every route through the maps.Adding and Editing Maps and Event Script Overview
Add a new bossCreating or heavily adapting an actor with specialized battle mechanics, multiple moves, and battle AI. Setting up an NPC to initate the battle and start a scene afterward.Adding a Boss
Add a battle item, badge, or move with new behaviorCoordinating global entries, messages, images, HUD elements, battle sources, targeting, menu placement, and the badge or command which grants it.Editing Items and Adding a Move
Reskin a partnerEditing its overworld, battle, and pause menu sprites and animations.Adding Sprites
Patch or create a display listWriting graphics commands and managing render state, textures, and the addresses expected by the engine.Nearby display-list sources and Writing Assembly
I want to…Why it is different
Replace Mario’s spritesRedrawing over 500 distinct rasters used across Mario’s nine sprite sheets. See Adding Sprites.
Translate the full gameThousands of messages must be translated and proofread in context, while menus and other interfaces must be adjusted wherever the new strings require different widths or positions.
Create a new chapterA full chapter requires a large body of connected maps, scripts, NPCs, actors, battles, stages, and supporting assets.
Add a new partnerPartners participate in many game systems. Adding new abilities and interactions may require extensive engine-level modifications.
Create a new type of enemy AIThere is no similar enemy NPC implementation to adapt. Its AI state machine must be written in assembly, which requires understanding the enemy structure and how the engine operates on it.
Add a new battle menu categoryThe existing menu, command dispatch, move tables, targeting, and player progression were built around fixed sets of actions.
Change a pause menu, title screen, or save system featuresThese are native engine systems rather than script-driven. Deep understanding of their assembly code is required.
Raise a fixed capacity or change a fundamental ruleThe field or table may have many references throughout the engine which must all be found and updated. Missed cases may produce distant and difficult-to-diagnose errors.

An expert task is not necessarily an engine change. Some receive the rating because of their scale; others have moved beyond a supported content workflow and require original investigation and native patches. The Writing Assembly, Memory Map, and Engine Limits references are useful starting points for the latter.

Before beginning a feature, find the closest example in the project’s src/ or import/ directories and answer these questions:

  1. Does the desired behavior already exist, or only something which looks similar on screen?
  2. Can the change reuse an existing ID or empty slot, or must a fixed table be extended?
  3. Is its data always loaded in one map or battle section, or must it work across overlays?
  4. Does it need new saved state, menu support, or behavior after loading from different entry points?
  5. Can each part be tested separately?

If the feature can reuse a working example within one context, begin with that example and change one part at a time. If it needs new behavior in several permanent systems, treat the investigation itself as part of the work rather than expecting an editor setting to provide the missing connection.