Godot GDScript reviewProgramming Training

Godot GDScript review for indie games

Delivery from 1 dayRevisions includedQuality check
Packages
Payment protectionDetails
  • Revisions within the package are free.
  • If you do not respond within 3 days of delivery, the work is accepted automatically.
Order · $35

The money is reserved when you pay and released only once you accept the work.

Godot GDScript review for indie games

Example result

Example for the Standard package

Code review: Python order-import script for a small online shop

What the code does

  1. Reads orders.csv from the shop export.
  2. For each order line, finds the product by SKU in stock.xlsx and subtracts the quantity.
  3. Writes the updated stock back and logs totals to import_log.txt.

The structure is clear and functions are well named. Most issues are about input that does not look the way the script expects.

Bugs and weak spots

#LineSeverityIssue
148HighThe same CSV can be imported twice; there is no check for already processed order IDs. This is the most likely cause of negative stock.
272Highint(row["qty"]) crashes on empty or "2.0" values from refunded orders.
395MediumSKU lookup is case-sensitive: "gt-101" and "GT-101" are treated as different products.
4130MediumThe file is opened without encoding="utf-8", so product names with accents break on Windows.
5201LowBare except: hides real errors and makes the log useless.

Corrected fragments

Issue 1: skip orders already imported

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... existing logic ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

Why: each order is applied once, even if you run the script on the same file again.

Issue 2: read quantity safely

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("Order %s: bad quantity %r, skipped", row["order_id"], raw)
    continue

Why: refunded or partial lines are skipped with a clear note instead of stopping the whole import.

Issue 3: normalise SKUs

sku = row["sku"].strip().upper()

Apply the same .strip().upper() when building the stock dictionary.

Style and readability

  • process() is 90 lines long; split it into read_orders, apply_to_stock, write_report.
  • Replace magic column numbers (row[7]) with header names.

Please test each fix on a copy of your files: we read the code but did not run it.

Client: owner of a tea shop who wrote a 310-line Python script that imports orders from a CSV export into the stock spreadsheet Problem reported: "Sometimes stock goes negative, and the script crashes on some files."

The client and all details are made up.

About this service

GDScript is easy to start with, but indie projects pick up trouble along the way: Godot 3 syntax in a Godot 4 project, node paths that break when the scene tree changes, signals connected twice, physics done in _process and untyped variables hiding bugs. We read your scripts, explain how the nodes and signals talk to each other, and mark the bugs and fragile spots. Corrected fragments use Godot 4 syntax with @export, @onready, await and static typing where it helps.

What is included

  • What you getA written review on the order page: how your nodes and signals work together, issues by importance and corrected GDScript fragments. Premium adds a plan for organising scenes and autoloads as the game grows.
  • Godot 3 to 4 syntaxyield, export and onready updated
  • Node pathsFewer fragile get_node calls
  • SignalsConnected once, in the right place
  • Process vs physicsMovement in the right callback
  • Static typingTypes that catch mistakes early

How it works

  1. 1
    BriefYou paste scripts and the scene tree
  2. 2
    ReadingWe follow nodes and signals
  3. 3
    ReviewYou get issues and corrected GDScript

What we need from you

The GDScript files pasted as text, a screenshot of the scene tree, the Godot version, what should happen and the errors from the Debugger panel.

We will ask you:

  • Which Godot version are you on?
  • Is the game 2D or 3D?
  • Which mechanic does the script handle?
  • What goes wrong in the game?

Compare packages

PackagesBasicGDScript up to 100 lines$15StandardGDScript up to 400 lines$35PremiumUp to 1,000 lines with a scene plan$69
Deadline1 day2 days3 days
Revisions123
Lines of codeup to 100up to 400up to 1,000
Corrected fragmentsYesYesYes
Scene structure planNoNoYes
Order BasicOrder StandardOrder Premium

Payment protection

You pay when you order, but the money is released only for accepted work.

  • Fixed priceThe package price does not change after you pay.
  • The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
  • Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
  • Free revisionsAsk for changes within your brief as many times as the package allows.
  • Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
  • Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
How it works →

Questions and answers

Do you run my code?

No. We read it carefully and reason about how it behaves, but we do not execute it, so test every suggested fix in your own project.

Can you help me port a project from Godot 3 to 4?

Yes, for the scripts you send. We mark every line that changed meaning in Godot 4 and give the new version.

Do you review C# in Godot?

Yes, Godot C# scripts fit too. Tell us which language each file uses.

Packages
Order · $35· 2 days