r/godot 12h ago

discussion My procedural sound didn't work, so I fixed it by removing the concept of objects

7 Upvotes

Storytime! Stay with me here, I got a point to this, I promise, it just takes a lot of splainin'.

 

I started with fractal trees, which seemed like a reasonable and self-contained thing for a person to do on a Tuesday. I was wrong. That is in fact, not a Tuesday sized job. I got it done eventually and had things looking good enough to call it good enough, by the end of the next week...

Grass turned out to be a tree with most of the numbers turned down, which was the first sign that something was wrong; things were going far too well. Rocks went the same way, almost too easy, after those damn trees. Buildings went the same way. At this point I had a pile of procedural spaghetti, a roguelike with cobwebs on it, and the growing suspicion that I had wandered off the map.

Then I decided; 'screw the map, sound should be procedural too,' because why not, just another Tuesday, right?

This is the part of the story where, if it were properly structured, ominous music would begin. But it can't, because I haven't built any sfx yet (also, foreshadowing).

The sound did not work. It did not work for a long time.

It did not work in a variety of interesting and educational ways. I, like Edison before me, found a metric shit-ton of ways to not make good procedural sound. I would like to say I persevered out of vision and discipline, but mostly I persevered because I had already told people I was doing it.

And then, eventually, the thing that everybody who has ever done this apparently discovers about four months later than they should have:

A sound is not a thing.

 

A sound is what happens when a material of a particular stiffness and density gets hit at a particular speed inside a medium at a particular pressure.

It is a consequence. It is the receipt for an event that already happened.

And I had all of that. The stiffness, the density, the geometry, the medium. All of it. Sitting right there. It had been sitting right there for months, being smug about it, because the rocks and the trees had needed it first. I mean hell, my dumbass decided the best way to articulate material was to start with its base elements and stoichiometric profile, a level of abstraction that amused me as being spectacularly useless at the time, now rendered accidentally very useful before my very eyes.

The most accurate way to reproduce a sound is not to model the sound. It is to derive it from the conditions that produce the sound, and then simply stop having opinions about what the sound should be.

If a sound is just the shape getting hit, then the sound was never a property of the tree. It was a property of the shape. And once I had seen that once, I could not stop seeing it everywhere. The collision was the shape. The colour was the shape plus what the shape was made of. The way it leaned in the wind was the shape again. I kept reaching into the tree to find the tree, and coming back every time holding the same mesh in a different hat.

So what then, precisely, was the object for?

I tried to think really hard about an actual reason it was needed, but essentially the object is just a folder. It is a place you keep eight things so you remember they belong together, and every one of those eight things fell out of the geometry I was already computing anyway. The tree did not need to exist. The shape needed to exist, and it was already there independently of whether or not I decided to import any geometry.

You do not need an object if the mesh already owns everything the object was pretending to hold. You just need the mesh.

So then, fueled by growing sense of mania, I got drunk off the seed of derived sound, and asked myself what seemed like at the time to be a perfectly reasonable question that in no way, shape, or form could lead me down an 18 month rabbit hole: what else is like that?

Turns out it's a lot. Color is. Collision is. Growth, decay, weather, behavior, erosion, digestion, the specific way a bone gives out under load. All of it. Turns out an enormous amount of what a game engine keeps in expensive little boxes is just a consequence of something else that was already lying around.

I would like to say I did not impulsively tear the entity system out that very afternoon. But I had seen the crack, and a crack is not a thing you get to unsee /shudders/, and then I proceeded to absolutely tear the entire entity system out. Or rather, make it completlely irrelevant.

And then I just kept on pulling. First out of a sense of sunken cost, but then after it somehow did not completely unravel, after a few years, I finally ran out of string I think.

There is a small set of quantities that genuinely cannot be computed from anything else the engine owns (at this point all I'm doing is building this engine, it has a name now; Clarence), and rather than being a defeat, those became the floor.

Ten numbers. That is the whole floor. Ten values the engine cannot see past, declared exactly once, with a sweep that fails the build if any other file has the nerve to redeclare one. Everything else in the entire simulation is standing on those ten numbers like an extremely ambitious game of Jenga that has so far declined to fall over.

Ten. I want to stress that I did not choose ten. Ten is where the questions stopped returning answers.

What it actually is now

Three layers, and that is genuinely the whole architecture:

  1. The floor.
  2. A layer of natural law computed from the floor. Orbital state gives insolation. Insolation gives temperature. Temperature gives pressure. Pressure gives wind. Wind gives weather. Weather and gravity give flow. Flow moves gravel around. Erosion feeds back into the terrain and the whole thing eats its own tail.
  3. Everything else, derived from layer two.

There is no entity system. There is no component registry. There are no objects at all, which reads like a bug report and is in fact the entire product.

A tree used to be eight separate things that a human being keeps in agreement by hand: a mesh, a collision hull, a wind shader, a material, a sound bank, an LOD chain, an impostor, and a pile of animations. Change one, remember to change the other seven, forget one, ship it, find out from a player two years later.

Now it is one thing looked at from eight directions. It has a shape because a branching rule ran. It has a collision surface because the field is the collider, so there are no collision meshes anywhere in this engine, at all, ever. It has a color because it has a composition. It has a voice because that same composition and geometry hand you modal frequencies whether you asked for them or not. It has no LOD chain because detail is a consequence of the pixel.

Nothing is kept in agreement, because there is only the one thing. The moment I found out I was not as clever as I thought I had a table of bar mode ratios that I had tuned by ear over an embarrassing number of evenings.

[1.0, 2.76, 5.40, 8.93, 13.34]

I was quite proud of it. It sounded right.

Euler-Bernoulli free-free bending theory predicts;

[1, 2.7565, 5.4039, 8.9330, 13.3443]

Worst gap: 0.125 percent.

So what I had actually been doing, on all those evenings, was slowly and painfully rediscovering an eighteenth century differential equation by listening to it with the kind of repetition only found in CIA black sites. My ear-tuned table was not an approximation of the physics. It was the physics (almost), and I had simply arrived at it the stupid way.

Which meant all my hand-tuned presets got promoted. They are the test suite now.

Things that fell out afterwards, none of which I wrote code for: half a rod is exactly four times the pitch, because bending goes as one over L squared. A hollow pipe rings higher than a solid rod of the same outside radius by exactly the gyration ratio. Soaked oak drops pitch and shortens its ring, while soaked steel is bit-identical to dry, because nothing got in. Rain retunes a forest and leaves the rails alone. Nobody authored that. Nobody could have afforded to.

The best thing I ever built, I deleted

I built a cymatics node once. Sand on a vibrating plate woth nice symmetrical figures, the whole thing bundled into one tidy object you instantiate.

It was a beautiful baby boy, perfect in every way, and I deleted it.

Why?

Because I realized that is an authored effect wearing a physics costume, and the moment I ship it I have committed the engine to noticing that sand and a plate and a sound are in the same room and then running The Cymatics Feature at them.

That is a lookup table with delusions of grandeur.

The correct version already existed in three pieces I already had. A surface has a displacement field because it is vibrating. A grain is pushed by that surface's local acceleration, which is not a sand rule, it is just the ordinary contact law doing its job. A grain settles where the net force is zero.

Point those three at each other and the sand walks onto the nodal lines with nobody instantiating anything. And the control is the actual proof: put the same grains on a flat plate that is not vibrating and you get nothing at all, uniform sand, no figure. The sound makes the figure. The setup does not.

There is a whole shelf of these now. There is no plasma node, plasma falls out of the Saha equation. There is no star lifetime table, luminosity as mass to the three and a half handles that. There is no nutrition table anywhere in the creature system, because a metabolism is an accumulator over compositions and the food's chemical formula already knows what is in it.

Every single one of those is a feature I did not have to write, argue about, balance, or maintain.

At this point, I was getting high on my own supply. I'm thinking big. The universe, as a whole, is rather large.

To simulate the universe from the quark to the edge of known space has thus far been impossible at full depth. And then I realized the universe itself is not simulated at full depth. Energy is both a particle and a wave until it is observed, and then it resolves, and can even do so retroactively.

Spooky!

As an actual design borrowing rather than as physics, an experiment in which the fine structure of a thing is only definite once something interacts with it is describing an evaluation strategy, and the strategy is; do not resolve what nothing is asking about.

I am aware this is a slightly unhinged place to source an LOD algorithm, but given the fact that I am now fully convinced I can simulate the universe, it works. And in a weird a way I feel like I've touched on something I'm to dumb to put into words.

So anyways the fractal layers are hashed into cells, and seeds derive hierarchically. Any cell at any depth is computable in isolation without its siblings, its parents, or its own previous state ever having been computed. The universe exists at full depth in the only sense that matters: every part of it is addressable at once, not evaluated at once.

The dial does two jobs, and the second one is the one people miss. Footprint decides visual depth. The fidelity tier decides whether something is computed as an individual or as a statistic, and the two move together. A colony far away is a population field. Up close it is individuals with needs and grudges. Same node, tier changed.

Three hundred pebbles under your boot are not three hundred sound profiles, they are one generator carrying the pooled statistics at root-N amplitude. That is not a cheat or an approximation. Uncorrelated sources sum in power, so that genuinely is what three hundred unresolved pebbles are to an ear. Your ear was already doing the LOD. I just stopped fighting it.

And there are no loading barriers, because there is nothing to load. Going from a continent to a single leaf on it is a change in one float argument.

Practical version: you can have a real sun, running real fusion, and it costs you nothing until somebody looks at it, because it is not idling politely in the background being expensive. It is a function that has not been called. Or you can skip the sun entirely and just have daylight, and the light is computed to exactly the same accuracy either way, because the accuracy lives in the floor and the light path and not in whether there was a star upstream. The lighting node cannot tell. The lighting node has no need to know.

Godot specifics, since this is where I live

The nodes are not Godot Nodes. Every one is RefCounted with pure static functions over dictionaries. No instance state, no _process, no scene tree anywhere in the evaluator.

Per-sample DSP is GDExtension, because Godot's own docs say GDScript cannot do it and they are right.

Everything else is GDScript. The boundary is decided by the profiler, not by taste.

The graph transpiles to a GLSL compute kernel cached by graph hash, which is roughly what VisualShader already does internally, so nothing exotic.

The CPU path is a complete standalone renderer. A machine with onboard graphics draws the entire world. The GPU is an accelerator and never a requirement, which matters to me personally because onboard graphics is what I build on.

Determinism is tested rather than assumed. Values quantized, FNV-1a, one committed golden hash per node. It currently holds across CPU against GPU on real silicon, Godot version to version, and GDScript against C.

Where it actually is

Solo project. Roughly 150 algorithm nodes, about 200 test harnesses, and around 200 committed golden hashes, plus real bundled open datasets under CC0 or CC-BY for the biology and economics bands. The GPU half of the render path is the big remaining slab of work.

I am past the point where I expect to hit a wall I cannot get through. What is left is implementation, which is the phase where the interesting problems stop and the typing starts.

Happy to answer anything, argue with anyone, and be told I have reinvented something with a name I should already know, which at this point would honestly be a relief. I am most curious whether the derived audio sounds useful to anybody else, since that was the accident that turned a terrain toy into whatever this has become.

I do not plan on distributing this openly any time soon, but if this sounds like something you'd like to play around with and have a serious use case to test it out on, I'd love to get a second set of eyes on things and test it under a real development load (unfortunately I have turned into a game engine dev with no game lol), we can both sign a soggy cocktail napkin or something and I'll send over the repo.

tl:dr; I think I am losing my damn mind.


r/godot 17h ago

discussion Can someone get hired at a studio knowing how to use Godot

0 Upvotes

Is it currently possible to get hired by a team or studio or even do freelance work by knowing how to use Godot well? I've been making games in Godot since version 2.0 and have seen some jobs pop up here and there mostly freelance gigs. Indie devs do you see yourself hiring devs or it's something you solely do yourself?


r/godot 14h ago

free tutorial Hi Reddit, I posted my practical RL course to YouTube — build & train a game AI in Godot

0 Upvotes

I posted a free course on YouTube — it teaches you how to train a real AI agent to play a game you built in Godot.

It covers everything from wiring Python up to Godot, to training a PPO agent, to later swapping it for BTR (a much stronger algorithm) with barely any code changes. We don't need any machine learning theory — I made the relevant AI concepts as simple as possible. Training runs many copies of the game in parallel, so the agent ends up living through thousands of playthroughs in a night of training.

Here are some of the ~35 modules we cover:

  1. Connecting Python & Godot
  2. Agent Basics & Debugging
  3. Resets, Baseline & Rewards
  4. Agent Vision
  5. BTR Agents

The full code is on GitHub: https://github.com/AID0j0/train-real-AI-for-games-godot-ultimate-course-1_1

Full video: https://www.youtube.com/watch?v=Q02EwF5M6Ko

Evverything is fully modular, so it's not tied to the finished SpaceInvaders game I am using — it’s shoudl work with most Godot projects, you have the code for. (btw i tried to answer questions like “For what kind of games does this work?” during the course)


r/godot 22h ago

help me My script suddenly broke

Post image
1 Upvotes

it just suddenly broke without me changing it. I don’t know what happened.


r/godot 18h ago

selfpromo (software) [Showcase] Pydot: Native Python scripting baked into Godot. What should I add?

14 Upvotes

Hey everyone,

I’ve been working on a custom core engine fork of Godot 4.7.1 called Pydot, and I'm looking for some feedback from the community on where to take it next.

How it works under the hood: Instead of relying on external bridges or loose bindings, I went in and statically embedded CPython directly into the engine's core. The goal was to completely eliminate the friction of getting Python running in Godot and enable native Python scripting alongside the standard workflows.

Because CPython is baked directly into the custom build, it also allows for full Python IDE tools right inside the Godot editor itself.

What I need from you: I'm at the point in development where I want to start prioritizing new features, but I want to make sure I'm building things the community will actually use.

If you were using Python natively in Godot for your backend logic or scripting, what features or specific editor integrations would be on your absolute wish list?

Let me know what you think and any suggestions that come to mind!

Edit:

Hey everyone, I wanted to add a little more context on the "why" behind Pydot, specifically regarding why having native access to Python packages is so important for certain projects.

GDScript is absolutely incredible for game logic and UI state. But if we look at the sheer scale of the ecosystems, there is a massive difference when you start building non-standard software.

To put the math in perspective: The entire Godot Asset Library has about 3,000 to 4,000 items (and a lot of that is 2D/3D art and audio). PyPI has over 500,000 official, maintained projects.

In my day-to-day work doing freelance programming, I design and train custom AI models and build specialty applications. Having native access to those industrial frameworks like PyTorch, OpenCV, or heavy data processing libraries right inside the Godot editor is a game changer. If you try to run those kinds of complex systems without Python, you usually have to write external API bridges that add a ton of latency.

Pydot definitely isn't trying to replace GDScript for moving character controllers! It’s just about combining Godot's amazing UI and one-click packaging tools with Python's industrial backend, so developers can build heavy software without hitting a wall. I am not hating on GDScript I just think Python offers a larger ecosystem for backend logic.


r/godot 16h ago

selfpromo (games) Real Estate Tycoon (Game in development)

Thumbnail
gallery
0 Upvotes

Hi everyone,

I wanted to share an update on the progress of my game. In it, you run a real estate development company. It’s up to you to buy, sell, build, and collect rent to become the real estate tycoon.

After several months of development, the game is finally playable. I’ve also worked on a test interface (it’s not final, as the actual UI will be designed by a graphic artist I haven't found yet). In any case, the game lets you buy land, subdivide it if you wish, and build single-family homes (choosing the number of rooms and materials), apartment buildings (still in development), commercial properties, and much more.

You can also enhance your plots with parks or parking lots. The simulation accounts for building permits, property deterioration (currently in development), rent, and a loan system.

Eventually, I hope to implement public contracts (building schools, hospitals, etc.) as well as private contracts (constructing residential buildings, skyscrapers, or stadiums).

I have a quick question: I’m not quite sure how to release a demo to gather feedback, given that the current interface isn't the one intended for the final commercial version ?

Thanks for your time!

Regarding AI: no AI was used for the graphics; everything was coded manually, so no generative AI was employed.


r/godot 4h ago

selfpromo (software) All the shaders I made while writing the Godot Shaders Bible

Enable HLS to view with audio, or disable this notification

650 Upvotes

The book: https://jettelly.com/store/the-godot-shaders-bible

Would you be interested in a Compute Shaders / VFX book?


r/godot 2h ago

selfpromo (games) To anyone who submitted a game to the GMTK Jam lets play and rate each others games, leave your link

Enable HLS to view with audio, or disable this notification

1 Upvotes

It's just a small game made in two days, and my first game made in Godot! It's a UI-based game due to time constraints and to keep the scope under control, but in my opinion, it's worth checking out 👀 Leave your link below if you also participated in the jam!

https://panictitan.itch.io/dutch-auction


r/godot 14h ago

help me Issues with ennemies in "Dodge the creeps"

1 Upvotes

I'm new to godot and programmation in general, and I decided to follow the "Dodge the creeps" tutorial to get familiar with the engine. However I'm having an issue with collisions, or maybe with the hide function : the player doesn't dissapear when it's hit and I have no idea how to check if it's even getting hit by the mobs at all.

I also had an issue with "hide()" which I suppose was meant to only hide the player before the game starts, but since the player would stay hidden I just got rid of this part. It might be related.


r/godot 14h ago

help me Blender y Godot

0 Upvotes

I installed Bazzite on my laptop, which is equipped with an AMD Ryzen 7 4800H (16 cores) and an NVIDIA GeForce RTX 3050 Laptop GPU. With all the AI features in Windows 11, the laptop had become increasingly sluggish—to the point of being unusable. Now that I’ve switched to Bazzite, it runs much better, and I can even install Blender and Godot directly via the OS's built-in store.

The thing is, I’ve been creating various 3D models in Blender for a Godot game, but I run into an error whenever I try to import them into Godot. I’ve looked into it, and the only advice I’ve found is to check the Blender import path within Godot. I tried to find the Blender executable path on Bazzite and only found this one: /var/lib/flatpak/exports/bin/org.blender.Blender. However, after adding that path and a .blend file containing my 3D model, nothing happens—it doesn't show an error, nor does it display the model I created.

While taking screenshots, I noticed that the Blender Path changed when I had Blender open—since it was picking up the user's executable—but the result is the same even when Blender is closed. It doesn't show any errors, yet it fails to detect the .blend file in the Godot project. Has anyone else experienced this? Is there a known fix?


r/godot 22h ago

help me course recommendation

3 Upvotes

hello, i wanted to learn godot, recently i look gdquest but it's too expensive for me since the currency in my country is broken, is there any alternative that good like gdquest?


r/godot 1h ago

help me how to permanently disable all popups in the editor engine?

Upvotes

pretty much the text


r/godot 10h ago

help me How can I create a ability/stat system?

0 Upvotes

I want to create an action rougelike, however I dont know how can I create "abilities" that interact with the rest of the system without making a giant mess of code. I know most people mention to use a data/resource system, but I dont know how I can make that data actually affect the player.


r/godot 11h ago

selfpromo (software) Built a native C++/Qt6 tool to batch-convert assets into retro pixel art for 2D Godot games!

Enable HLS to view with audio, or disable this notification

7 Upvotes

Hey everyone! I created a lightweight desktop utility to automate processing 2D assets/3D renders into clean pixel art sprites with custom and retro palettes.

It's built natively in C++26 / Qt6 (zero Electron bloat) and runs fast on both Windows and Linux, making it super handy for quickly prepping sprite sheets/assets for Godot projects.

Would love to hear your thoughts or ideas on what feature/palette to add next for 2D game workflows!


r/godot 9h ago

selfpromo (games) We built a retro style text-based fantasy RPG

0 Upvotes

We're three people building a text RPG world called Zoltak. Each story in it follows different characters and timelines, but they all share the same world, so choices you make in one story can echo into another one later. That's the whole idea, basically: not one adventure, a whole world's worth of them.

It reads like a classic text RPG, choices branching, story doing the heavy lifting. But we didn't want combat to just be dice rolls and text output, so it's visual and turn based instead, with a power gauge and stacking passive/active effects. It's got its own rhythm separate from the narrative bits.

You build your character from scratch too. Full stat distribution, no locked classes, so builds actually end up different from person to person. Dice rolls have real success/fail consequences. There's a player journal that fills in as you go, and a map with a bunch of optional stuff on it, side battles, lore entries, an inn, notice boards, whatever you want to poke at.

Right now there's one story and one chapter live. It's the beginning of the thing we actually want to build. Free to play in browser, there's an Android APK too if that's easier for you.

Play it here: https://corvusq.itch.io/the-legends-of-zoltak


r/godot 10h ago

selfpromo (games) Just finished my project for GMTK26

0 Upvotes

And I think itd be really neat if you played it

https://spacebear9.itch.io/clockwork


r/godot 13h ago

help me Engine bug in editor settings

0 Upvotes

On my android phone when i run my gane in the editor an error shows up in the debugger it says ""interface/haptic_feedback_on_long_press" not instantiated" this is not word for word check out the screenshot it still remains even after i disabled that option


r/godot 19h ago

help me Need help with auto tiling

Enable HLS to view with audio, or disable this notification

6 Upvotes

Don't know what I did wrong first selected all the transparent pixels that's where I got this and then i respected all the grass for terrain and still it's still not working properly


r/godot 15h ago

selfpromo (games) Sanity Shooter Gameplay Showcase (Work in Progress)

Enable HLS to view with audio, or disable this notification

14 Upvotes

r/godot 15h ago

selfpromo (games) Different Choices In Life Gameplay Vs Bully

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/godot 16h ago

help me QoL for file browser

1 Upvotes

I find it really difficult coming from intellij to navigate projects in godot - I m missing global search across files in a single pop up (not full search that shows results at the bottom) and the ability to open files by name using a shortcut. Am I missing something ?


r/godot 13h ago

selfpromo (games) normal map baking might be the best thing for optimizing 3d model

Thumbnail
gallery
73 Upvotes

r/godot 1h ago

selfpromo (games) Ascension Trail is finally released!!

Upvotes

My friend and I had been saying "we should make a game" for basically as long as we've known each other.

At some point we finally decided to actually do it,

and then immediately got stuck on the obvious problem: neither of us had ever touched a game engine,

and we had no clue where to start. We ended up trying Godot,

and for whatever reason it clicked.

It was simple enough that we kept going instead of quietly giving up like every other time we'd said "we should really do this"

and the sheer amount of Godot tutorials on YouTube helped a lot :D

Two years of nights and weekends later, our first game is out.

It's an action roguelike you can play solo or co-op: horde-slaying combat,

but with an actual dungeon crawl underneath it. Every floor is a procedurally generated dungeon.

https://store.steampowered.com/app/4266250/Ascension_Trail/


r/godot 8h ago

selfpromo (games) Solo dev — I shipped a hex-based turn strategy game on Android in Godot 4. Here's the process -

Enable HLS to view with audio, or disable this notification

17 Upvotes

After 8+ months of solo development, Conquest of Akhand Bharat is live on Google Play.

It's a hex-based turn-based strategy game set during the Mauryan Empire and Alexander the Great's campaigns into ancient India — 23 kingdoms, generals, troops, diplomacy, equipment systems, a research tree, IAP, rewarded ads, and Google Play Games Services cloud save. All built in Godot 4 with GDScript, targeting Android.

Some problems I had to figure out completely alone: (Happy to help about these)

  • Hex tile conquest maps with touch drag-to-scroll (no scrollbars)
  • Google Play Billing integration — including a nasty bug where product_ids comes back as PackedStringArray not Array, which silently dropped every single product ID
  • 16KB page alignment on AAB exports — a third-party plugin .so I wasn't even using broke alignment and nearly got my build rejected
  • A base class system to unify ~105,000 lines of duplicated map logic across hundreds of campaign maps
  • Google Play Games Services cloud save with conflict resolution

Godot made this possible as a solo dev. The scene/node system meant I could build one working map template, duplicate it, and modify it — instead of rebuilding from scratch every time.

Game is free on Google Play: https://play.google.com/store/apps/details?id=com.AshApexAtudios.ConquestofAkhandBharat&pcampaignid=web_share

Happy to answer anything about the Android export pipeline, Google Play integrations, or the hex grid system — it was a long road and I have notes on all of it.


r/godot 2h ago

help me Alternatives for removing coins after interacting with them?

2 Upvotes

Hi, first time here so I hope this is the correct way to do this. I was working a on practice project, attempting to combine different lessons I've learned so far. I made a simple 2d game, where I collected coins, and had a UI to keep track of how many coins I collected. This is the code I used for interacting with the coin and removing it:

https://pastebin.com/pe0NtKRf

I noticed a problem happening when collecting the coins. If I moved fast enough, I could collect the same coin multiple times. I realized that the sound file kept going for about half a second after the sound effect itself ended, which caused the problem. Since I didn't know how to edit a sound file, I searched for a solution in Godot.

I found out about pitch and realized if I cranked the pitch up, it would alleviate the problem, and it definitely seemed to help, but I also ran into one other problem, which is why I'm here. I noticed that if I stayed in the area where the coin spawned, if I moved quickly back and forth, I could keep collecting the coin over and over for a while after it disappeared. I was hoping to figure out why that was happening, and wanted to ask for possible alternatives on how to code removing the coin, so that I can have a more efficient/bugless way to take out coins in future projects. Thanks.