Rewtromon is a Rewtro game that loads 2 creatures QR-Cards and let them auto-battle. The creature graphics, sounds, and moves data are stored in the QR-Card itself. There is no monsters database so you can freely hack create and share your Rewtromon creatures and share them as you want!
It can be used as a sample if you want to learn how to load QR data within a Rewtro game.
These are the official Rewtromon creatures stats. You can find their JSON files in the carts directory.
File | ID | Name | Type | Move 1 | Move 2 | Move 3 | Move 4 |
---|---|---|---|---|---|---|---|
JSON | 001 | STAMPADIAN | E Earth |
Tree Slice (10dmg / T 15dmg) |
Cross Out (10dmg / F 5dmg) |
Eraser (10dmg) | Reroll (+5HP) |
JSON | 002 | ROGUE | T Thunder |
Bolt Bubble (10dmg / W 15dmg) |
Pierce (10dmg / E 5dmg) |
Waterfall (5dmg) | Snack (+10HP) |
JSON | 003 | JIN | W Water |
Splash (10dmg / F 15dmg) |
Wave (10dmg / T 5dmg) |
Squid Bump (15dmg) | Sadness (Nothing) |
JSON | 004 | DATAMAPS-I | F Fire |
Burning Lie (10dmg / E 15dmg) |
Burnt Proof (10dmg / W 5dmg) |
False Truth (10dmg) | Plan (+5HP) |
Rewtromon creatures are basically Rewtro carts with RWM
header containing a single scene. To set the cart header, set "metadata": { "cartPrefix": "RWM" }
in your QR-Cart JSON file.
"metadata": {
"title": "RWM001 - Stampadian",
"cartPrefix": "RWM",
"cardTitle": "Stampadian",
"cardNumber": "001",
"cardNote": "Play with Rewtromon!"
}
The creature sounds in the standard Rewtro sound format. Sound 1
is the creature verse and IDs 3
, 4
, 5
, 6
are the matching moves sounds.
{
"id": "1",
"wave": "breaker",
"attack": 43,
"sustain": 127,
"decay": 127,
"release": 127,
"frequencyJump1onset": 76,
"frequencyJump1amount": 155,
"frequencyJump2onset": 209,
"frequencyJump2amount": 104
}
The single graphics
image includes the whole creature spritesheet. You can find a GIMP source model here. I suggest you to use the monocolor
format as it uses less bytes.
{
"id": "graphics",
"image": {
"data": {
"_file": "graphics/rewtromon/001-stampadian.png"
},
"format": "monocolor"
}
}
The creature name is in the A
and 1
sprites. Customizable values are:
Attribute | Meaning | Example |
---|---|---|
text |
The uppercase creature name | "STAMPADIAN" |
{
"id": "A",
"textColor": 1,
"text": "STAMPADIAN",
"x": 0,
"y": 0,
"width": 160
},
{
"id": "1",
"textColor": 1,
"text": "STAMPADIAN",
"x": 80,
"y": 64,
"width": 160
}
The creature sprites are B
(back facing) and 2
(front facing). The sprites in the example are usually OK for any creature - just set the its type in both sprites value1
.
Attribute | Meaning | Example |
---|---|---|
value1 |
The creature type (1 for Earth, 2 for Thunder, 3 for Water, 4 for Fire) |
1 |
{
"id": "B",
"graphicsX": 0,
"graphicsY": 60,
"x": 104,
"y": 16,
"width": 32,
"height": 20,
"scale": 2,
"value0": 2,
"value1": 1
},
{
"id": "2",
"graphicsX": 0,
"graphicsY": 40,
"x": 24,
"y": 74,
"width": 32,
"height": 20,
"scale": 2,
"value0": 4,
"value1": 1
}
The creature moves are sprites 3
, 4
, 5
, and 6
. Customizable values are:
Attribute | Meaning | Example |
---|---|---|
animations |
The move animation, if any | See Rewtro sprites documentation |
animation |
The move animation ID to be played | See Rewtro sprites documentation |
value0 |
0 targets the enemy (i.e., attacking), 1 targets itself (i.e., healing) |
0 |
value1 |
Target shake animation duration in (1 = 2 frames). Use 0-26 even numbers | 5 |
value2 |
Health change (negative for attacking, positive for healing) | -5 |
value3 |
Target element for using special health change instead (0 for no special health change, 1 for Earth, 2 for Thunder, 3 for Water, 4 for Fire) |
1 |
value4 |
Special health change (negative for attacking, positive for healing) | -10 |
value5 |
Text displayed when the move is performed. The creature name is automatically prepended | "PACKS A~PUNCH!" |
{
"id": "3",
"graphicsX": 32,
"graphicsY": 240,
"width": 8,
"height": 8,
"animations": [
{
"frames": [
0,
1,
2,
3,
4
],
"speed": 2,
"mode": "once"
}
],
"animation": 0,
"value0": 0,
"value1": 5,
"value2": -10,
"value3": 2,
"value4": -15,
"value5": "ATTACKS WITH~TREE SLICE!"
},{
"id": "6",
"graphicsX": 32,
"graphicsY": 144,
"width": 8,
"height": 8,
"animations": [
{
"frames": [
0,
1,
2,
3
],
"speed": 2,
"mode": "bounce"
}
],
"animation": 0,
"value0": 1,
"value1": 0,
"value2": 5,
"value5": "REROLL FOR~BETTER RESULTS!"
}
You can test your creature sounds and animations temporarily adding these tilemaps
and code
sections to your cart JSON. Remember to remove them before finalizing it!
"tilemaps":[
{ "map":[ "A1B2"], "backgroundColor":8 }
],
"code":[
{
"when":[{"as":"scene","if":[{"itsAttribute":"value5","is":">","_":0}]}],
"then":[
{
"code":[{
"when":[{"if":[{"itsAttribute":"value5","is":"%%","_":2}]}],
"then":[{
"code":[{
"when":[{"ids":"B2"}],
"then":[{"sum":[{"x":[{"_":1}]}]}]
}]
}],
"else":[{
"code":[{
"when":[{"ids":"B2"}],
"then":[{"subtract":[{"x":[{"_":1}]}]}]
}]
}]
}]
},
{"subtract":[{"value5":[{"_":1}]}]}
]
},
{
"when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":0}]}],
"then":[
{"flags":"A","remove":true,"playAudio":[{"_":"3"}]},
{
"code":[
{
"when":[{"id":"B"}],
"then":[
{
"spawn":[{"ids":[{"_":"3"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
},{
"as":"scene",
"set":[{
"value5":[{"id":"3","attribute":"value1"}]
}],
"multiply":[{
"value5":[{"_":2}]
}]
}
]
},{
"when":[{"id":"2"}],
"then":[{
"spawn":[{"ids":[{"_":"3"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
}]
}
]
}
]
},
{
"when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":50}]}],
"then":[
{"flags":"A","remove":true,"playAudio":[{"_":"4"}]},
{
"code":[
{
"when":[{"id":"B"}],
"then":[
{
"spawn":[{"ids":[{"_":"4"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
},{
"as":"scene",
"set":[{
"value5":[{"id":"4","attribute":"value1"}]
}],
"multiply":[{
"value5":[{"_":2}]
}]
}
]
},{
"when":[{"id":"2"}],
"then":[
{
"spawn":[{"ids":[{"_":"4"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
}
]
}
]
}
]
},
{
"when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":100}]}],
"then":[
{"flags":"A","remove":true,"playAudio":[{"_":"5"}]},
{
"code":[
{
"when":[{"id":"B"}],
"then":[
{
"spawn":[{"ids":[{"_":"5"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
},{
"as":"scene",
"set":[{
"value5":[{"id":"5","attribute":"value1"}]
}],
"multiply":[{
"value5":[{"_":2}]
}]
}
]
},{
"when":[{"id":"2"}],
"then":[
{
"spawn":[{"ids":[{"_":"5"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
}
]
}
]
}
]
},
{
"when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":150}]}],
"then":[
{"flags":"A","remove":true,"playAudio":[{"_":"6"}]},
{
"code":[
{
"when":[{"id":"B"}],
"then":[
{
"spawn":[{"ids":[{"_":"6"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
},{
"as":"scene",
"set":[{
"value5":[{"id":"6","attribute":"value1"}]
}],
"multiply":[{
"value5":[{"_":2}]
}]
}
]
},{
"when":[{"id":"2"}],
"then":[
{
"spawn":[{"ids":[{"_":"6"}]}],
"set":[{
"scale":[{"as":"that","attribute":"value0"}],
"flags":[{"_":"A"}]
}]
}
]
}
]
}
]
},
{
"when":[{"as":"scene","if":[{"itsAttribute":"timer","is":"==","_":200}]}],
"then":[
{"set":[{"timer":[{"_":-1}]}]}
]
}
]
Once you're happy with your creature JSON file, place it in the carts/
directory, open the SDK page, select QR-Card: Default format from the combo box, and hit the print icon on your creature JSON file. It will download the card SVG
file to be opened, pimped, and printed with your favorite SVG editor (I suggest you Inkscape).
Make sure to have the the Jost free font (Jost-500-Medium.otf) installed.