Update form entry using the Guest Entries plugin
In Craft 3 / Guest Entries 2, you could pull this off without hacking Guest Entries by writing  a module that listens to the beforeSaveEntry event, and sets the id on the entry.

use Craft;
use craft\elements\Entry;
use craft\guestentries\controllers\SaveController;
use craft\guestentries\events\SaveEvent;
use yii\base\Event;
use yii\web\BadRequestHttpException;

// ...

public function init()
{
    // ...

    Event::on(SaveController::class, SaveController::EVENT_BEFORE_SAVE_ENTRY, function(SaveEvent $event) {
        $request = Craft::$app-&gt;getRequest();

        // Get the entry being edited
        $entryId = $request-&gt;getValidatedBodyParam('entryId');
        $currentEntry = Entry::find()-&gt;id($entryId)-&gt;anyStatus()-&gt;one();

        if (!$currentEntry) {
            throw new BadRequestHttpException('Invalid entry ID: ' . $entryId);
        }

        // Populate the guest submission with the entry ID, UID, and content ID
        $event-&gt;entry-&gt;id = $currentEntry-&gt;id;
        $event-&gt;entry-&gt;uid = $currentEntry-&gt;uid;
        $event-&gt;entry-&gt;contentId = $currentEntry-&gt;contentId;
    });
}


Then in your form, add an entryId input set to the hashed entry ID.

&lt;input type="hidden" name="entryId" value="{{ entry.id|hash }}"&gt;


It’s important that you hash the entry ID and use getValidatedBodyParam() instead of getBodyParam() so users can’t repurpose the form to edit any entry on your site.