R.E.P.O.
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
Downloads
6K
Size
610KB

RepoRPG

Formerly Semibot RPG. Same mod, new name. Updating from Semibot RPG: install RepoRPG and uninstall the old "SemibotRPG" package. Your settings (rpgmod.semibotrpg.cfg, same id) carry over as they are, and your account progress, saves and presets are copied from BepInEx/config/SemibotRPG to BepInEx/config/RepoRPG on the first start (the old folder stays as a backup). Everyone in a lobby needs RepoRPG; a player still on Semibot RPG is told to update.

A roguelite RPG overhaul for R.E.P.O. Every run you pick a class, level it up, spend skill and attribute points, collect gear, hunt elite enemies and clear side contracts. Progress is saved with your game save and resets when the run ends.

Requirements

  • BepInExPack (BepInEx-BepInExPack 5.4.2305).
  • MenuLib by REPOModding (REPOModding-MenuLib, 2.6.0 or newer). The mod manager installs it automatically.
  • Remove the deprecated MenuLib by nickklmao (nickklmao-MenuLib) if you still have it. Both use the same id, so only one of them loads. With both installed, RepoRPG writes a warning to the log naming the old one.
  • Without MenuLib the mod still runs as normal (its menu opens with K / View); the log notes that it's missing.

Guide tab

A Guide tab (it replaces Help) explains every feature in plain language: categories on the left, the topic on the right with a one-line summary, short bullets, Tip / Note boxes and "Go to" buttons. Numbers, keys and lists come from the live data (your bindings, the host's settings); the Classes topic lists every class with role, active and synergy partners. Searchable, fully usable with WASD or a controller, and the ? button opens it on the screen you're on.

Team play

  • Team synergies: 38 class pairs (every class has 2-3 partners) get a small bonus while both are alive and within 15 m ([Team] SynergyRange). The HUD shows "Synergy: Name" with both class colours under the contracts; the class page lists each class's partners. A class never pairs with itself and identical partners don't stack; bonuses go through the normal stat code, so the global caps still apply. Table: synergies.json (override like the other data).
  • End-of-level highlights: when every extraction point is done, the host picks up to 4 highlights from a pool of 18 ("Most valuable carried", "Clutch revive", "Pied piper", "Cart MVP", ...) and shows a card for 8 s. It never delays the level change; any key (or Back on a controller) closes it.
  • Revive drama: a death head can call out (V / d-pad left): a ring and a HELP marker with the distance for teammates, 10 s apart, 3 per death. Medics and Undertakers get up to +60% revive XP for a revive within 20 s of the death (less after, none at 90 s).
  • Host settings in [Team], shared with the lobby: Synergies, SynergyRange, Highlights, HighlightCount, HighlightSeconds, CallOuts, CallOutCooldown, CallOutMax, ClutchReviveBonus. Personal: [Controls] CallOutKey, SynergyHud, [Controller] CallOutButton.

Loot and challenge

  • Elite bosses: every 3rd level (from level 3) one monster becomes a named boss ("Rustmaw the Unpaid"): elite tier 3 with 3 modifiers (the elite ones plus boss-only Relentless and Stalwart), tougher with more players (x2 solo to x3.5 with 7-10). Banner + top-right line while it lives. On the kill every player gets their own Legendary (25% a Unique, half set pieces), 30 Scrap and a Boss Heart. [Bosses], names in bosses.json.
  • Gear sets: 8 sets (sets.json), 2- and 4-piece bonuses. Set pieces drop from Rare+ gear (15%) and bosses. The Gear tab shows "Mover's 2/4" with the bonuses, compare shows set bonuses gained / lost, salvaging a set piece asks.
  • Crafting parts: Sinew, Core Shard, Prime Essence, Boss Heart. Monster drops are glowing labels: walk over one to take your own copy. Also from contracts, extractions, 5 dodges, 5 lured / pacified monsters and salvage. Craft on the Gear tab (point at an item, press Craft, or the extra action on its row): reroll a line, raise a stat, upgrade rarity, Epic to Legendary. 3 crafts and 1 rarity upgrade per item. [Loot].
  • Team contracts: one optional contract per level (teamcontracts.json), majority vote in 40 s (Contracts tab, or hold the call-out key). Big rewards; failing costs Scrap (never below 0) or curses the next level (Fragile, Exposed, Marked, Drained). Only the players there for the vote are in it. [TeamContracts].

Host settings in game

The Host tab lists every setting shared with the lobby, grouped, with its description, default and when it takes effect (NOW, NEXT LEVEL, NEXT RUN). The host edits, presses Apply (a summary first), and the values are saved to the host's config and sent to everyone in one versioned message; changes for the next level / run wait until then. Reset per setting or per group; named presets (BepInEx/config/RepoRPG/presets). Clients see it read-only ("Set by host") and get a pop-up when the host changes something. A client's own config is never written; its gameplay waits until the host's settings arrive. A different mod version is caught with a clear message: the client's mod pauses, or the host can remove them ([Lobby] VersionMismatch = Kick).

Controls

Action Keyboard & mouse Controller
Open / close the menu K Hold View / Select
Use your class ability G LB + RB together
Move around the menu Mouse D-pad or left stick
Select / close / switch tabs Click A / B / LB, RB

Everything except the in-menu controller buttons can be rebound in game: open the menu and go to the Controls tab. While the menu is open the game ignores your inputs, so you won't walk around or grab things by accident.

Readable at any resolution. The menu and HUD size themselves to your screen: 720p, 1080p, 1440p, 4K, 16:10, ultrawide 21:9/32:9 and the Steam Deck's 1280x800 all stay on screen and in proportion. Text never gets smaller than a readable minimum (14px at 1080p, more on bigger screens, a bit more on small handheld screens); instead of shrinking further, it wraps, and skill nodes, perk cards, gear rows and ability boxes grow taller (their lists scroll). Controls > Text Size sets 75% to 200% on top of the automatic size (with a controller: select - / + with A). Fit to boxes lets text grow into spare room in boxes, and Reduced effects turns off menu animations and slows HUD refreshes for weak PCs.

Looks like the game. The mod's screens take their colours, text shadow, font and sounds from R.E.P.O. itself: a style probe reads the game's own menus while they're on screen and saves what it finds to BepInEx/config/RepoRPG/vanilla_style.json (readable summary: vanilla_style.md). Every mod screen uses that one style. Nothing from the game is bundled with the mod. If the game's style can't be read (for example after a game update), the built-in style is used and the log says so. Menus open with a short fade, close with Esc or B, and use the game's own hover, click, confirm, back and error sounds.

Notifications (XP gains, level ups, loot, contracts, perks, purchases) stack in the bottom-left corner, directly above your class name and XP meter, newest nearest the meter. Repeated gains merge ("+30 XP – Monsters killed (x3)"), the XP meter pulses when XP comes in, and each type has its own colour. They stay clear of the game's own HUD (and other mods' UI) in that corner. Big announcements (welcome back, refunds, ability use, dodges) stay centred. Settings: Controls > Notifications (on/off, duration, how many at once, and each type), or [Notifications] in the config.

Controller not detected? Open the menu with K, go to Controls and check the controller line.

  • Xbox controllers (wired, Xbox Wireless Adapter or Bluetooth) are read directly through Windows, so they work even though R.E.P.O. itself ignores controllers. Press any button once after connecting it.
  • Steam Deck: leave Steam Input on (the default "Gamepad" layout). Hold View to open the menu, LB + RB for your ability.
  • On a PC, if Steam Input is turning your controller into a keyboard/mouse for R.E.P.O., set Steam Input for the game to "Default" or "Disabled" (Steam > R.E.P.O. > Properties > Controller).
  • Other controllers (PlayStation etc.) use Unity's input system; the mod switches gamepad support back on for it.

Classes

Ten classes, each with 2 passives, 1 active ability and 3 talent trees of their own. Levels go to 30 within a run.

One player per class. In multiplayer, a class someone else is playing is locked and shows who has it. It frees up when they switch or leave.

Every class has a signature mechanic only it can get, from its passives and its talent trees. Dodge, death saves, enemy sense, healing auras, heal-on-kill and extra jumps also belong to one class each.

Class Signature
Juggernaut Shield Wall: allies within 5m take 10% less damage (up to 31% and 10m with talents, +15% during Iron Wall)
Medic Stabilize: allies in your healing aura who are below 30% HP take 15% less damage (up to 40%)
Scout Momentum: each second of sprinting adds +2% sprint speed, up to 5 stacks (up to 8 stacks of 3.5%)
Hauler Steady Grip: items you hold lose 10% less value when damaged (up to 70% with Power Lift)
Brute Frenzy: kills near you give stacks for 15s: +5% throw strength and weapon damage, +2% speed each (up to 5 stacks of 8%)
Engineer Power Link: allies within 6m regenerate +2 stamina/s (up to 5.5/s within 12m)
Phantom Shadowstep: every dodge gives +20% speed for 3s (up to 35%), and Vanish takes 4s off your ability cooldown per dodge
Survivor Scar Tissue: every hit you take gives 1% damage reduction for the rest of the level (up to 2.5% per hit, 19% total)
Appraiser Appraisal aura: valuables within 8m gain 10% value, once each (Rare+ more; up to 14m)
Warden Mark: enemies hit by Stasis Field take 20% more damage from everyone for 10s (up to 45% for 16s)

Team effects (Shield Wall, Stabilize, Power Link, Mark, appraisal) need the mod on every player. The HUD shows what's active: Momentum stacks, Frenzy, Shadowstep, Scar Tissue, and when a teammate's Shield Wall or Power Link covers you. Caps are host settings under [Rules]: MaxShieldWall, MaxStabilize, MaxScarTissue, MaxMarkDamage, MaxHeldItemProtection, MaxAppraiseBonus.

Class Role Active ability
Juggernaut Tank Iron Wall: take 60% less damage for 6s; Shield Wall gets stronger
Medic Support Nanite Burst: heal yourself and nearby allies
Scout Mobility Overclock Sprint: faster, free sprinting for 8s
Hauler Cargo Power Lift: double grab strength for 12s, and items you hold take 25% less damage
Brute Fighter Shockwave: damage and stun nearby enemies
Engineer Endurance Overdrive: refill stamina, free sprinting for 10s
Phantom Stealth Phase Out: immune to damage for 4s
Survivor Sustain Emergency Patch: heal 30% max HP over 6s
Appraiser Economy Appraisal Scan: track the most valuable loot nearby. Valuables near you gain value automatically
Warden Control Stasis Field: stun and Mark every enemy within 10m

Skill trees

Every class has 3 talent trees of 5 tiers (ranks 5 / 3 / 3 / 3 / 1), each ending in a capstone that defines that build. Every node is exclusive to its class: no effect appears in two classes' trees, and the all-class stats (ability power, cooldown reduction and so on from gear and attributes) never appear in trees at all. Ability nodes improve only that class's own ability. The mod checks this every time it starts (errors go to LogOutput.log), and the host's Debug tab has a Check skill trees button.

Class Tree Theme Capstone
Juggernaut Bulwark Become unkillable yourself. Immovable Object: take 6% less damage and +15% max health
Juggernaut Shield Wall Stand in front so your team doesn't have to. Living Fortress: Shield Wall 6% stronger and reaches 2m farther
Juggernaut Siege Engine Lock down more often and punish whatever hits the wall. Citadel: Iron Wall holds 2 charges, and its stun lasts 1s longer
Medic Triage A bigger, stronger healing aura. Guardian Angel: aura heals 1 more HP per pulse, Stabilize 10% stronger
Medic Biotech Turn Nanite Burst into a team-saving blast. Miracle Worker: Nanite Burst 30% stronger and reaches 20% farther
Medic Lifeline Nobody stays down on your watch. Lazarus Protocol: revived allies get +10 HP, +25% revive XP, Stabilize 5% stronger
Scout Velocity Build Momentum and never let it drop. Unbroken: Momentum lasts 3s after you stop, +8% sprint speed
Scout Acrobatics Take the high road: over gaps, rails and monsters. Double Down: +1 extra jump, +10% jump force
Scout Pathfinder Overclock Sprint, more often and longer. Afterburner: Overclock Sprint lasts 25% longer and fills your Momentum instantly
Hauler Cargo Master Lift anything, from anywhere, for as long as it takes. Crane Arm: +20% grab range, +15% grab strength
Hauler Careful Hands Get every valuable to the truck in one piece. White Glove: items you hold take 10% less damage, Power Lift protects 10% more
Hauler Logistics Bigger, longer, more frequent Power Lifts. Heavy Lifter: Power Lift 30% stronger and lasts 20% longer
Brute Wrecker Every object is a weapon. Wrecking Ball: +25% throw strength, +10% weapon damage
Brute Bloodlust Kill, heal, frenzy, repeat. Rampage: +2 max Frenzy stacks, heal 1 more HP per weapon hit
Brute Quake Harder, wider Shockwaves that start the frenzy. Earthshaker: Shockwave 30% stronger and gives you a Frenzy stack
Engineer Power Grid A stamina pool that never runs dry. Perpetual Motion: +4 stamina/s, 15% less sprint stamina drain
Engineer Power Link Share the grid with your team. Grid Overload: Power Link +2 stamina/s, reaches 3m farther
Engineer Overclock Run the frame hot, as long as you dare. Meltdown: Overdrive lasts 25% longer, cooldown 10% shorter
Phantom Shadow Creep past everything, unseen and untouched. Ghost Walk: +10% dodge chance, +20% crouch speed
Phantom Shadowstep Every near miss pushes you faster. Vanish: each dodge takes 4s more off the cooldown, +5% dodge chance
Phantom Phasing Live between worlds a little longer. Between Worlds: Phase Out lasts 30% longer and heals 5% more
Survivor Resilience Get tougher with every hit you take. Battle-Scarred: +1% Scar Tissue per hit, +6% max
Survivor Last Stand Cheat death, then come back swinging. Cockroach: +1 Last Stand per level, heals 10 HP more
Survivor First Aid A better patch, sooner. Phoenix Protocol: Emergency Patch 30% stronger, cooldown 15% shorter
Appraiser Valuation Make every item worth more. Golden Eye: appraised valuables gain 5% more, Rare+ another 5%
Appraiser Accountant Turn every haul into XP and better gear. Insider Deal: +10% all XP, +3 gear luck
Appraiser Scanner See every valuable in the building. Omniscience: Appraisal Scan tracks 50% more items and reaches 25% farther
Warden Watchtower See them coming, and hunt the elites. All-Seeing: enemy warning 15m farther, Marked enemies take 5% more
Warden Judgment Marked enemies fall fast, and every kill reloads you. Sentence: Marked enemies take 10% more damage for 4s longer
Warden Stasis Bigger, longer freezes. Time Lock: Stasis Field lasts 30% longer and reaches 20% farther

Points: 1 per level plus 1 every 10 levels, 32 at level 30, against 45 ranks per class: enough to finish two trees, or two capstones plus part of the third. Tiers open at levels 1, 7, 13, 19 and 25.

Refund: runs saved with the old trees get every spent skill point back once, to re-spend on the new trees.

Tuning: every node's name, description, values, unlock level and prerequisite is in classes.json (copy classes.default.json to classes.override.json to edit). Ability nodes use the class's own ability stats (active.mods), and ability extras are active.riders (a class stat that adds an action or a buff to the ability).

Attributes

2 points per class level (plus contract and upgrade rewards), 13 attributes in three groups. Each attribute goes to 20 points; past its soft cap, every extra point counts half, so nothing can be stacked into a broken build (20 points = 15 points' worth). Attributes are general: none gives a class signature (those stay in the talent trees).

Group Attribute Per point Soft cap
Combat Throw Strength +3% throw strength 10
Combat Weapon Damage +3% weapon damage 10
Combat Focus +2% cooldown reduction, +3% ability power 10
Physical Vitality +3% max health 10
Physical Endurance +3% max stamina, +0.15 stamina/s 10
Physical Agility +1.2% walk speed, +1.2% sprint speed, +1.5% crouch speed 8
Physical Leap +2% jump force 8
Physical Grip Strength +3% grab strength 8
Utility Reach +2.5% grab range 8
Utility Finesse -2% stamina drain while carrying 10
Utility Stealth +2% less noise 10
Utility Recovery +0.02 HP/s regen, +4% revive XP 10
Utility Fortune +0.5 gear luck, +1.5% bonus currency share 10

Stealth works on the host's monsters: noises made right next to you (your steps, what you carry or drop) reach less far, capped at 40% quieter. Fortune's currency bonus is created on top of your share, so nobody else gets less (capped at 25%). The Attributes tab shows each attribute's current total and exactly what the next point adds. Everything (names, descriptions, values, soft caps) is in rpg.json. Runs saved before this change get all attribute points back.

Gear and loot rarity

Four gear slots: Weapon Module, Plating, Servos and Core. Gear rolls Common, Uncommon, Rare, Epic or Legendary with random stats; Legendaries add a unique effect such as bleeding hits, lifesteal, an extra death save or an extra jump. Gear drops from elites, contracts, extraction points and finished levels. Salvage unwanted gear for XP.

Valuables roll a rarity too, and rare ones are worth up to 3.5x more.

Elite enemies

Some enemies spawn as Champions (1 modifier) or Overlords (2 modifiers): Armored, Regenerating, Swift, Unstoppable, Enraged. They get more common each level, give 2-3x XP and always drop gear.

Contracts

Three team contracts each level, the same for everyone: Exterminate, Elite Hunter, Speedrun, No Casualties, Rescue, Specialist and Haul. Rewards: XP, gear and attribute points.

Extraction XP. The first extraction point in a level gives everyone 30 XP; each one after that gives 75% of the previous (never less than 40% of the first), so levels with many extraction points don't flood you with XP. Host settings: ExtractionXpFirst, ExtractionXpFalloff, ExtractionXpFloor under [XP Sources].

Healing balance

R.E.P.O. has no natural healing, so the mod keeps heals modest and caps them, whatever you stack:

Healing source Cap (host setting)
Your regeneration (all sources) 0.6 HP/s, and only after 6s without taking damage
Healing auras on allies 3 HP per ally every 3s
Heal when an enemy dies near you 20 HP
Heal per weapon hit (lifesteal) 3 HP
Bonus HP on revive 35 HP
Heal when an extraction completes 25 HP

Ability heals (Nanite Burst, Emergency Patch) only get half of your Ability Power bonus. All caps are in the [Healing] section of the config.

Saved runs

RPG progress belongs to the game save it was earned in. Leave the game any way you like (quit to menu, disconnect, close the game, even mid-level) and loading that save brings everything back exactly as it was: every player's class, levels, XP, skill points and skill tree, perks, attributes, gear and inventory, contracts in progress and anything bought in the mod shop.

  • One file per game save: BepInEx/config/RepoRPG/saves/<save name>.json, holding every player of that save by Steam ID. Two saves never share progress, and a new game always starts fresh.
  • Saved automatically: whenever the game saves, a few seconds after anything changes, and when you quit or leave. Each write goes to a temporary file that then replaces the real one (the previous copy is kept as .bak), so a crash can't corrupt it. If a file is ever unreadable, it's set aside as .bad, a warning is logged and that save starts fresh (or uses the .bak).
  • Roguelite rule: when a run ends and the game deletes its save (team wiped / game over), that save's RPG data is deleted too.
  • Multiplayer: the host's game owns the save file. When you join or rejoin, the host sends you your progress (matched by Steam ID, not by slot or join order), and your game sends changes back as you play. Restored classes stay locked to whoever has them. Your game also keeps its own copy (runs/<steamid>/), used only if the host has nothing for you.
  • Menus show "Loading your progress..." until your real data has arrived, so you never see an empty run.
  • The data has a version number, so future updates can upgrade old saves instead of breaking them. Progress from older versions of the mod is brought into the new format automatically the first time a save is loaded.

Perks

Every 5 levels (of your best class this run) you pick 1 of 3 perks. There are 30 and each can be taken once per run, for example: Double Charge (your ability holds 2 charges), Adrenal Loop (kills near you cut your cooldown), Glass Cannon, Bounty Hunter (elites drop extra gear), Haggler (mod shop discount), Field Medic (heal when an extraction completes). Choose them in the Perks tab or from the game's pause menu. The Perks tab also lists all 30 perks with their exact effects, marked as owned, on offer now, or still to come.

RPG Scrap (the mod's currency)

Every player has their own RPG Scrap (rename it, its short name and its badge symbol under [Currency]).

  • Earned as a bonus: whenever the team earns money (extractions, finished levels), the host creates 10% of it as Scrap ($100 of team money = 1 Scrap at 100%) and splits it between everyone in the game. The team's money is never reduced or touched, so the game's shop works exactly as without the mod.
  • Split: evenly by default; the host can switch to ByContribution (half evenly, half by the value of the valuables each player carried out that level).
  • Yours alone: you only spend your own balance, and spending it changes nobody else's. The host can allow gifts (Shop tab) with AllowGifting.
  • Shown next to your XP meter, in the Shop tab and on the class screen; gains appear in the notifications above the XP meter ("+12 Scrap – Valuables extracted").
  • Safe: the host's game keeps every balance (by Steam ID, in the save's RPG file) and checks every purchase and gift, so a modified game can't spend what it doesn't have. Balances come back with the save and are deleted with it when the run ends. Players new to a save start at StartingAmount (default 0).
  • Host settings (shared with the lobby): Percent, SplitMode, StartingAmount, AllowGifting.

Mod shop

While you're in the game's shop between levels, spend your Scrap on:

Item Price
Gear Crate (Uncommon or better) 40
Premium Crate (Rare or better) 100
Reroll a gear item's stats 30
Upgrade a gear item one rarity 80
Reroll perk choices 30
Skill or attribute respec 20

Prices are set by the host ([Shop], set RespecScrap to 0 to make respecs free anywhere). The Haggler perk still gives a discount, applied by the host only for perks it has seen you earn. Purchases outside the shop are refused and the buy button is rate-limited.

Game shop upgrades

The game's own upgrades (Health, Stamina, Sprint Speed, Grab Strength and the rest) now feed the RPG too:

  • They roll a rarity, like valuables, and everyone sees the same one. Using a rarer upgrade gives more mod XP; Rare+ also gives an attribute point, Epic+ a piece of gear, Legendary a perk pick.
  • Each type adds an RPG bonus that stacks for the run, e.g. Grab Strength +3% weapon damage, Sprint Speed +2% cooldown reduction, Map Player Count +3m enemy sense, Health +0.02 HP/s regen.
  • Class favourites count double. Every class has two (Juggernaut: Health and Grab Strength, Scout: Sprint Speed and Extra Jump, Appraiser: Grab Range and Map Player Count...).
  • Hold an upgrade to preview its rarity and exactly what it will give you before you use it.

Game menus

Press K (hold View on a controller) anywhere - the lobby, the shop or a level - to open the mod's menu. The hint at the top (lobby) or bottom centre (shop) shows the key, with a dot when points, perk picks or new gear are waiting. The mod adds nothing to the game's own pause and lobby menus.

Host settings

The host's balance settings (leveling, XP, rules, elites, perks, shop prices) are used by everyone in the lobby. Your own config file is never changed, and your own settings come back when you leave. Controls stay personal.

Performance and compatibility

  • Light on every PC, Steam Deck included. Nothing heavy runs every frame: enemy, valuable and aura checks run a few times a second and share one scene search; game values are read without creating garbage (no GC stutter); HUD text is rebuilt a few times a second; the menu skips Unity's extra GUI layout pass. The mod has no particle effects, projectiles or damage numbers. All its UI is lightweight text.
  • Lean networking. Class, stats, aura and perks are sent when they change and when someone joins (plus a slow safety resend every 30-60s). Never per frame. Progress is batched every few seconds.
  • No save hitches. Saves are written on a background thread, atomically, and batched.
  • Windows and Linux / Steam Deck (Proton). No Windows-only file paths. Xbox-style controllers (including the Deck's built-in controls) are read through XInput, which Proton provides.
  • Plays nicely with other mods. Only prefix/postfix patches, each applied separately, under the unique ID rpgmod.semibotrpg. A few seconds after start the log lists any other mod that patches the same game methods, and warns if one could skip or rewrite them. Network events another mod might also use are ignored with one warning instead of errors. Works alongside Semibot Performance.
  • Mixed lobbies. Display settings (text size, reduced effects, controls) are personal and never synced, so players on different hardware and settings play together normally.

Multiplayer

Everyone in the lobby should install the mod, and the host must. The host runs elites, loot rarity, weapon effects and team XP.

Configuration

BepInEx/config/rpgmod.semibotrpg.cfg - keys, XP rates, level cap, elite chances, inventory size and more.

To rebalance classes or gear, copy classes.default.json or rpg.default.json in BepInEx/config/RepoRPG/ to classes.override.json / rpg.override.json and edit it.

Notes

  • Don't install alongside Semibot Classes (this mod includes it).
  • If a game update breaks a feature, only that feature switches off; check BepInEx/LogOutput.log.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.